Apache2报proxy_fcgi:error AH01071错误的原因及解决方案咨询
错误触发原因
该AH01071报错本质是Apache通过proxy_fcgi模块将请求转发给PHP-FPM处理时,PHP-FPM无法定位到要执行的目标PHP脚本,常见触发场景如下:
- 站点目录或文件权限配置错误,Apache和PHP-FPM的运行用户无脚本的读取、执行权限
- Apache站点配置的
DocumentRoot路径和实际站点文件存放路径不匹配,或重写规则异常,导致转发给PHP-FPM的脚本路径为无效值 - PHP-FPM的套接字监听权限配置错误,Apache进程无法正常和PHP-FPM通信传递请求参数
- 大量恶意扫描请求访问不存在的PHP文件,批量触发该报错
对应解决方法
以下操作均基于Ubuntu 20.04 + Apache 2.4.41 + PHP 8.0.13环境:
修复目录权限
假设你的站点根目录为/var/www/your_site,执行以下命令统一配置权限(Apache和PHP-FPM默认运行用户均为www-data):
chown -R www-data:www-data /var/www/your_site find /var/www/your_site -type d -exec chmod 750 {} \; find /var/www/your_site -type f -exec chmod 640 {} \;
校验Apache站点配置
打开站点配置文件,默认路径为/etc/apache2/sites-available/你的站点配置文件名.conf,确认两项配置:
DocumentRoot参数的值和站点实际存放路径完全一致- PHP解析的Handler配置正确,参考示例:
return (<FilesMatch \.php$> SetHandler "proxy:unix:/run/php/php8.0-fpm.sock|fcgi://localhost" </FilesMatch> )
配置修改完成后执行apache2ctl configtest校验语法,确认无报错后执行systemctl reload apache2生效。
校验PHP-FPM配置
打开PHP8.0-FPM的默认池配置文件/etc/php/8.0/fpm/pool.d/www.conf,确认以下参数配置正确:
user = www-data group = www-data listen.owner = www-data listen.group = www-data
修改完成后执行systemctl reload php8.0-fpm生效。
拦截恶意扫描请求
如果上述配置全部正确仍批量出现该报错,可查看Apache访问日志对应请求的URL,若均为不存在的恶意扫描路径,可配置mod_security模块拦截扫描行为,或添加Apache规则使不存在的PHP文件直接返回404,不转发给PHP-FPM处理即可消除报错。
内容的提问来源于stack exchange,提问作者Summithunter
相关产品推荐
相关产品推荐

