在我安装的 CentOS 7 中,SELinux 默认是启用的。这会阻止 Apache 正确读取标准 /var/www/html 文档根目录中的 PHP 文件(在显示包含 PHP 脚本的网页时,浏览器是空白的)。当我禁用 SELinux 时,页面正常显示。
是否有某种方法可以设置 SELinux 以允许 Apache 从文档根目录访问 PHP 文件?我宁愿不完全禁用 SELinux,因为 CentOS 显然认为它是一个可取的安全添加。
在我安装的 CentOS 7 中,SELinux 默认是启用的。这会阻止 Apache 正确读取标准 /var/www/html 文档根目录中的 PHP 文件(在显示包含 PHP 脚本的网页时,浏览器是空白的)。当我禁用 SELinux 时,页面正常显示。
是否有某种方法可以设置 SELinux 以允许 Apache 从文档根目录访问 PHP 文件?我宁愿不完全禁用 SELinux,因为 CentOS 显然认为它是一个可取的安全添加。
我做的SELinux不多,但你可以试试
这允许 Apache 在该目录中执行 PHP 脚本,并在重新启动后持续存在。
如果您使用 MySQL,您可能必须为此做同样的事情。SELinux:让 Apache 在 CentOS 上与 MySQL 对话可能会有所帮助
运行
audit2allow < /var/log/audit/audit.log
确认 httpd 被 SELinux 阻止(请参阅此链接)。解决方案是使用以下步骤创建和应用策略模块:audit2allow -a -M my_httpd
(将“my_httpd”替换为您喜欢的任何名称)。semodule -i my_httpd.pp
以安装模块。在我按照这些步骤操作之后,Apache 能够毫无困难地在我的服务器上运行 PHP 脚本。重新启动服务器不会破坏更改。
模块文件(my_httpd.te)的内容: