我正尝试在 Fedora 上使用 apache 启动 PHP 站点,但我遇到了有关写入权限的问题。看起来 apache 对某些文件夹没有写权限,但我不明白为什么。
我检查了 httpd.conf,它有组:apache,用户:apache。 然后我做了: chown -R apache:apache www 并为文件夹设置 777 权限,但它仍然显示:
Warning: file_put_contents(/var/www/public/temp.txt) [function.file-put-contents]: failed to open stream: Permission denied in /var/www/public/newtest.php on line 8
请指教。
更新: 顺便说一句,如果我从命令行创建“php newtest.php”,文件 temp.txt 是用组 root 和用户 root 创建的。它只是在浏览器中不起作用。
最佳答案
Warning: file_put_contents(/var/www/public/temp.txt) [function.file-put-contents]: failed to open stream: Permission denied in /var/www/public/newtest.php on line 8
这里有很多不好的东西。
让我们从您确实希望将 httpd 可写文件远离您的代码这一事实开始——当然是在一个单独的目录中,最好完全在文档根目录之外。
chown -R apache:apache www and set 777 permissions to the folders
然后您是否检查过实际的权限是什么?顺便说一句,另请参阅上面的观点 - 如果您让所有人都可以写入您的整个网站,那么您只是在自找麻烦。您当然不能同时更改所有者和权限。
您是否启用了 SELinux? (以 root 身份运行 sestatus)。如果是这样,那么您要么需要禁用它,要么学习如何配置它 - 但我建议您先掌握旧式权限,然后再禁用 SELinux。
C.
关于php - Apache+PHP在unix上写权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2262327/