chmod()操作不允许 - FatFree框架

6

我一直在使用FatFree框架开发一个应用程序,现在我想在服务器上部署它。当我在本地主机上运行时,一切似乎都很正常。

然而,当我将其部署到服务器并尝试访问时,它会给出一个奇怪的错误,如下所示:

Internal Server Error

chmod(): Operation not permitted

#0 /var/www/webapp/inc/main.php:62 Template::serve('front_page.php')
#1 /var/www/index.php:65 F3::run()

我已经将webapp文件夹的权限设置为777,所以应该允许使用chmod()函数。上述内容表明在提供模板文件front_page.php时出现了错误。

我该如何解决这个问题?


是的。实际上,问题是父目录没有权限。它尝试创建一个临时目录,但却无法成功。 - Siddharth
'front_page.php' 位于哪里?并且 webapp 文件夹的权限 777 是否向下级的 inc 文件夹进行了级联? - redDevil
1
777是Web应用程序中非常糟糕的做法,你应该使用755。 - user677656
4个回答

7
为此,您需要使用“-R”递归地授予权限给您的“webapp”文件夹。

5

Siddharth在评论中提到了正确的答案:

F3在提供服务之前将模板编译到temp/目录中。此临时目录需要存在并具有适当的权限。

为了实现这一点,请进入模板文件所在的目录并运行:

mkdir temp/
chown www-data temp

1
是的。但如果您的父目录由www-data具有写权限,则它将自动创建temp/目录。您不必自己创建它。 - Siddharth

2
您可以为 Web 服务器添加对 [fatfree-web-root-dir] 的写入权限。但这样做不安全!
chmod  o+w  fatfree-web-root-dir  # Then web-server can create "temp" folder.

另一种方法:您必须使用Web服务器所有者创建“temp”目录:
mkdir  fatfree-web-root-dir/temp
chown  www-data:www-data  fatfree-web-root-dir/temp
# www-data - in Debian for example

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接