Smarty compile_dir权限被拒绝

时间:2011-09-09 12:29:29

标签: php permissions smarty

将php文件从windows移动到linux(centos)后,我开始收到以下权限错误:

ERRNO: 2
TEXT: rename(/tmp/wrtwetuti,/var/www/site1/presentation//compile_dir/ee63ba1108c61f830b5d6155f21b1bcd04684f7e.file.category.tpl.php): Permission denied
LOCATION: /var/www/site1/libs/smarty_3/sysplugins/smarty_internal_write_file.php, line 48, at September 9, 2011, 4:05 am

为了测试目的,将compile_dir chmoded转换为777,问题就消失了。

我想知道是否有人知道它的解决方案。 安装suPHP会解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

compile_dir 假设可由Web服务器(也在您的Web根目录之外)写入。所以你应该:

  • 将其移出您的网络根目录
  • 为网络服务器用户分配所有权
  • chmod to 700

在Windows上安装默认compile_dir的事实也是Web服务器可写的,这对于该操作系统来说是典型的,并不意味着Linux上有一些东西需要修复。

答案 1 :(得分:2)

您可以查看此页面:http://www.smarty.net/docs/en/installing.smarty.basic.tpl “Smarty将需要写入访问权限(Windows用户请忽略)到$ compile_dir和$ cache_dir目录(templates_c /和cache /),因此请确保Web服务器用户帐户可以写入”。

希望这会有所帮助。