PHP 无法写入 Web 服务器,即使使用 chown

PHP can't write to web server, even with chown

所以我试图在我的 CentOS 7 Apache 服务器上设置 FileRun,但是它说 PHP 没有任何写入权限。我试过使用 chownchmod(都使用 sudo),但这没有任何区别。我找到了重复我刚才说的错误日志,如果你需要的话:

[08-Feb-2017 19:35:50 Europe/London] PHP Warning: file_put_contents(/var/www/html/system/data/temp/cache.translation.english.tmp.php): failed to open stream: Permission denied in /var/www/html/system/classes/vendor/FileRun/Utils/Cache.php on line 17

还有什么我可以尝试的吗?

编辑: 我被要求包括 ls -ltr 的输出,所以给你。这就是我得到的。

(很抱歉将其作为图像提供,但将其粘贴为文本意味着我必须正确设置格式。)

我不能post在这里发表评论,但试试

chown -R apache:apache /var/www/html

另外,如果你说

,它会列出什么
ls -l /var/www

ls -l /var/www/html

文件的所有者或文件的组所有者也必须 be/contain 与列为您网站内容所有者的用户相同。在这种情况下,var/www/html/system/classes/vendor/FileRun/Utils/Cache.php

的所有者

我猜 selinux 正在悄悄地阻止你。

尝试 setenforce permissive 看看它是否神奇地开始工作。

然后阅读这篇短文。

https://www.digitalocean.com/community/tutorials/an-introduction-to-selinux-on-centos-7-part-1-basic-concepts

请尝试:

chown -R apache:apache /var/www/html/

semanage fcontext -a -t httpd_sys_rw_content_t 'data'

然后

setsebool -P httpd_unified 1

重新启动 httpd 和 php-fpm 守护进程。

systemctl restart httpd ; systemctl restart php-fpm

http://your_ip_server

打开浏览器