![Apache 无法运行某些 PHP 脚本](https://linux22.com/image/754928/Apache%20%E6%97%A0%E6%B3%95%E8%BF%90%E8%A1%8C%E6%9F%90%E4%BA%9B%20PHP%20%E8%84%9A%E6%9C%AC.png)
我对这个东西很陌生php-fpm
,但我决定要尝试一下。我最近迁移到了 Centos 8,并随之迁移到了 Apache 2.4。
我有许多使用 PHP 的虚拟主机,它们运行良好,直到我将 更改为mod_mpm_prefork
。mod_mpm_event
这导致许多网站崩溃。
php_
一个站点,我通过查找并销毁文件中对值的任何引用成功使其正常运行.htaccess
,因为 PHP 不再作为模块运行。我认为其他站点也应该如此。
在所有其他网站上,我都会收到 500 服务器错误。即使我尝试了一个简单的脚本,例如:
Hello
<?php
die('goodbye');
我所得到的只是一个屏幕和一个 500 服务器错误。
当我查看文件时error_log
,没有发现任何有用的信息:
获取 /index.php HTTP/1.1” 500 - “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Firefox/78.0”
当我尝试访问非 PHP 文件时,它运行良好。
据我所知,与设置相关的配置设置位于conf.d/php.conf
:
<IfModule !mod_php5.c>
<IfModule !mod_php7.c>
SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
<FilesMatch \.(php|phar)$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>
</IfModule>
</IfModule>
如果我注释掉这一SetHandler
行,页面就可以工作,当然不需要 PHP。我真的不知道如何检查这一行是否正确。
我确信修复很简单,但是我如何才能找到 500 错误的原因,以及没有运行 PHP 脚本可能是什么情况?