本文旨在解决 Apache2 服务器在使用 `proxy_fcgi` 模块时出现的 "AH01071: Got error 'Primary script unknown'" 错误。通过分析错误原因,并结合实际案例,提供了一种基于 Apache vhost 配置的解决方案,帮助开发者定位并解决此类问题,提升服务器的稳定性和安全性。
在使用 Apache2 作为 Web 服务器,并配置 proxy_fcgi 模块来处理 PHP 请求时,可能会在 Apache 的错误日志中发现如下错误信息:
[proxy_fcgi:error] [pid XXXX:tid YYYYYYYYYYYYY] [client XX.XX.XX.XX] AH01071: Got error 'Primary script unknown'
这个错误通常表示 Apache 无法找到请求的 PHP 脚本文件。这可能是由于多种原因造成的,例如:
一种有效的解决方案是在 Apache 的 vhost 配置文件中添加
步骤 1:编辑 Apache vhost 配置文件
找到并编辑你的 Apache vhost 配置文件。通常,这些文件位于 /etc/apache2/sites-available/ 目录下。
步骤 2:修改
找到处理 PHP 文件的
SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost"
在这个指令块中,添加
SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost"
解释:
步骤 3:保存并重启 Apache
保存修改后的配置文件,并重启 Apache 服务器以使更改生效:
sudo systemctl restart apache2
以下是一个完整的 Apache vhost 配置文件的示例,其中包含了上述的
ServerName example.com DocumentRoot /var/www/example.com Options Indexes FollowSymLinks AllowOverride All Require all granted ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combinedSetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost"
ript unknown" 错误的数量,但并不能完全消除它。恶意扫描和攻击仍然可能尝试访问不存在的文件。通过在 Apache 的 vhost 配置文件中添加