如何在 Fedora Apache 中启用执行 php 文件?

如何在 Fedora Apache 中启用执行 php 文件?

我在我的 Linux Fedora 上安装了httpdphp 。v8.2.11

但 Apache 无法执行.php文件。(响应“拒绝访问。”)

我尝试使用chmodshell 命令来启用执行并添加AddType text/html .php .phps文件httpd.conf并重新启动,httpd.service但它还不能执行 php 脚本。

笔记:我可以执行.html文件。

笔记:我尝试设置chomd文件php777虽然我知道这非常危险)但仍然无法执行。

以下是我在错误日志中发现的内容:

AH01071: Got error 'Unable to open primary script: /var/www/backend/index.php (Permission denied)'

我现在能做什么?

答案1

您不需要“chmod 777”将您的权限更改为:

chmod 644 /var/www/backend/index.php

确保所有者和组设置为 Web 服务器用户(通常是 apache 或 www-data)。

chown apache:apache /var/www/backend/index.php

验证包含 PHP 文件的目录是否具有正确的权限。Apache 应该可以访问该目录及其父目录。

chmod 755 /var/www/backend

如果您在 Fedora 上使用 SELinux,它可能会强制执行额外的安全策略。要检查 SELinux 上下文并更正它们,您可以使用 ls -Z 命令和 chcon 命令

ls -Z /var/www/backend
chcon -R -t httpd_sys_content_t /var/www/backend

验证您的 Apache 配置是否允许执行 PHP。在您的 Apache 配置文件(httpd.conf 或包含的文件)中,您应该有以下几行

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

确保这些行没有被注释掉。另外,确保您的虚拟主机配置(如果有)包含带有“index.php”的 DirectoryIndex 指令。

确保 Apache 已加载 PHP 模块。您可以使用以下命令检查 php 模块是否已加载:

apachectl -M

更改文件权限和配置后,重新启动 Apache 以应用更改

systemctl restart httpd

相关内容