我在我的 Linux Fedora 上安装了httpd
php 。v8.2.11
但 Apache 无法执行.php
文件。(响应“拒绝访问。”)
我尝试使用chmod
shell 命令来启用执行并添加AddType text/html .php .phps
文件httpd.conf
并重新启动,httpd.service
但它还不能执行 php 脚本。
笔记:我可以执行.html
文件。
笔记:我尝试设置chomd
文件php
(777
虽然我知道这非常危险)但仍然无法执行。
以下是我在错误日志中发现的内容:
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