运行 CentOS 7 和 apache 2.4,使用 REMI 存储库中的 PHP5.6。我的 wordpress 和 phpmyadmin 似乎可以工作,但是任何包含 phpinfo() 的页面都会导致权限被拒绝进入我的错误日志。
我仔细研究了一下,发现可能暗示了一些事情,比如,如果引用了符号链接,则如果没有特殊参数,chown 和 chmod 的权限更改可能无法完全正确应用。不太确定,但错误日志似乎没有提到符号链接的路径。
错误日志中的消息如下:
PHP 警告:未知:无法打开流:未知中第 0 行上的权限被拒绝 PHP 致命错误:未知:无法打开所需的‘/var/www/html/phpinfo2.php’(include_path=‘.:/usr/share/pear:/usr/share/php’)在第 0 行上的未知中
Apache 以“apache”用户身份运行。php 文件、/usr/share/pear 和 /usr/share/php 的所有者 (apache) 拥有读/写/执行权限
我对 Linux 还很陌生,但我可以尝试获取任何需要的信息来帮助解决这个问题。这目前是一个我可以完全控制的实验室虚拟机。任何帮助都将不胜感激!
编辑 运行 ps axZ 似乎显示了 httpd 正在运行的内容:system_u:system_r:httpd_t:s0 3664 ? S 0:00 /usr/sbin/httpd -DFOREGROUND
然后,我将 /var/www/html 文件的安全上下文与错误日志中提到的目录进行了比较。这些安全上下文是:unconfined_u:object_r:httpd_sys_content_t:s0
因此我使用 chcon 设置用户和类型上下文以匹配已发布的网站目录。我仍然收到相同的错误。我宁愿不关闭 SELinux,因为我正在努力养成保持开启它的习惯。但是,禁用它确实允许 phpinfo() 函数加载。
有任何 SELinux 想法吗?