You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS服务器Apache配置PHP-FPM遇AH01071错误求助

问题分析与解决方法

核心问题根源

两种配置报错的本质都是Apache传递给PHP-FPM的脚本路径不匹配:

  1. 第一种配置中,fcgi://localhost/path/to/docroot 属于错误写法——FCGI目标地址无需附带文档根目录,这会导致PHP-FPM无法识别正确脚本路径,返回「Primary script unknown」。
  2. 第二种配置去掉了目录,但未正确传递脚本路径变量,导致PHP-FPM尝试访问拼接错误的路径//path/to/docroot/index.php,返回「No input file specified」。

正确配置步骤

1. 修正FilesMatch的SetHandler规则

使用标准Unix套接字格式,fcgi地址后无需添加文档根:

<FilesMatch \.php$>
    SetHandler "proxy:unix:/var/run/php-fpm.sock|fcgi://localhost"
</FilesMatch>

2. 添加脚本路径环境变量传递

在虚拟主机配置块(<VirtualHost *:80>或<VirtualHost *:443>)内,添加以下配置,确保Apache将真实脚本路径传递给PHP-FPM:

# 确保与你的虚拟主机DocumentRoot一致
DocumentRoot "/path/to/docroot"

# 传递正确的脚本路径变量(Apache 2.4.10+适用)
SetEnvIf Request_URI "^(.*\.php)$" SCRIPT_FILENAME=/path/to/docroot$1

3. 检查PHP-FPM池配置

打开PHP-FPM池配置文件(通常为/etc/php-fpm.d/www.conf),确认以下参数与Apache一致:

# 用户组与Apache保持相同(一般为apache或www-data)
user = apache
group = apache

# 监听套接字路径需与Apache配置匹配
listen = /var/run/php-fpm.sock

# 套接字权限设置正确
listen.owner = apache
listen.group = apache
listen.mode = 0660

4. 重启服务生效

systemctl restart httpd
systemctl restart php-fpm

验证

访问你的PHP页面(如http://你的域名/index.php),若配置正确页面将正常加载。仍有问题可查看Apache错误日志(/var/log/httpd/error_log)或PHP-FPM日志(/var/log/php-fpm/www-error.log)排查细节。

内容的提问来源于stack exchange,提问作者el sparrow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 02:45:11