php - Apache+PHP在unix上写权限

标签 php apache file-permissions

我正尝试在 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/

相关文章:

Android API below 19 等效于 ContentResolver takePersistableUriPermission

c - 如何在 C 中最近创建的文件夹和文件中具有读取权限?

php - 如何使用 mysqli 和 PHP 获取多个值的数据 Categorywise

apache - 每个路径不同的 ssl 服务器配置

python - 使用 Django 作为 Cappuccino 的后端

python - 在 Apache 中使用多个 WSGI 挂载点和 Nginx 反向代理

php - fopen 对具有 777 权限的文件的权限被拒绝

php - 使用字符串调用 php 方法

php - crontab 在运行 php 脚本时找不到所需的 php 文件

php - 需要 SQL 速记 - PHP PDO