3

我正在尝试在 Fedora 上使用 apache 启动 PHP 站点,但我遇到了关于写入权限的问题。看起来 apache 对某些文件夹没有写权限,但我不明白为什么。

我检查了 httpd.conf,它有组:apache,用户:apache。然后我做了: chown -R apache:apache www 并为文件夹设置了 777 权限,但它仍然说:

警告:file_put_contents(/var/www/public/temp.txt) [function.file-put-contents]:无法打开流:第 8 行 /var/www/public/newtest.php 中的权限被拒绝

请指教。

更新:顺便说一句,如果我从命令行创建“php newtest.php”,则文件 temp.txt 是使用组 root 和用户 root 创建的。它只是在浏览器中不起作用。

4

4 回答 4

4

警告:file_put_contents(/var/www/public/temp.txt) [function.file-put-contents]:无法打开流:第 8 行 /var/www/public/newtest.php 中的权限被拒绝

这里有很多不好的东西。

让我们从您真正希望将 httpd 可写文件远离您的代码的事实开始 - 当然是在一个单独的目录中,最好完全在文档根目录之外。

chown -R apache:apache www 并为文件夹设置 777 权限

之后您是否检查了实际的权限是什么?顺便说一句,也请参阅上面的观点 - 如果您已经让每个人都可以编写整个网站,那么您只是在自找麻烦。您当然不能同时更改所有者和权限。

你启用 SELinux 了吗?(以 root 身份运行 sestatus)。如果是这样,那么您需要禁用它或学习如何配置它 - 但我建议您先掌握老式权限,然后禁用 SELinux。

C。

于 2010-02-14T23:37:08.037 回答
0

我建议将 apache 切换到 mod_itk 作为 mpm 并使用所有者文档根目录的权限运行特定的 vhost 并包含 php 脚本。

于 2010-02-14T22:09:54.000 回答
0

将 chmod 775 设为 newtest.php ;)

于 2010-02-14T19:20:20.470 回答
0

ls -la /var/www/public

只是为了检查:-)

于 2010-02-14T20:31:45.510 回答