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

AlmaLinux 9.3中Apache无法连接PHP-FPM(127.0.0.1:9000):权限拒绝错误排查求助

AlmaLinux 9.3中Apache无法连接PHP-FPM(127.0.0.1:9000):权限拒绝错误排查求助

我正在AlmaLinux 9.3上配置Apache搭配FastCGI和PHP-FPM,但是遇到了权限拒绝的错误,实在找不到哪里漏了。错误信息如下:

[Mon Mar 25 18:12:33.617487 2024] [proxy:error] [pid 53175:tid 53322] (13)Permission denied: AH00957: FCGI: attempt to connect to 127.0.0.1:9000 (127.0.0.1:9000) failed
[Mon Mar 25 18:12:33.617516 2024] [proxy_fcgi:error] [pid 53175:tid 53322] [client 181.164.62.251:58534] AH01079: failed to make connection to backend: 127.0.0.1

我之前看过一些类似的帖子,通常都是PHP-FPM监听Unix套接字的问题,但这次不是——PHP-FPM确实在127.0.0.1:9000上运行:

[root@localhost ~]# netstat -natp |grep LISTEN
tcp        0      0 0.0.0.0:2200            0.0.0.0:*               LISTEN      20770/sshd: /usr/sb 
tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN      29089/memcached     
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      53791/php-fpm: mast 
tcp6       0      0 :::2200                 :::*                    LISTEN      20770/sshd: /usr/sb 
tcp6       0      0 :::3306                 :::*                    LISTEN      46052/mysqld        
tcp6       0      0 ::1:11211               :::*                    LISTEN      29089/memcached     
tcp6       0      0 :::80                   :::*                    LISTEN      47529/httpd         
tcp6       0      0 :::443                  :::*                    LISTEN      47529/httpd         
tcp6       0      0 :::33060                :::*                    LISTEN      46052/mysqld 

我也能正常连接到这个端口:

[root@localhost ~]# telnet 127.0.0.1 9000
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
^]
telnet> Connection closed.

我认为SELinux应该不会拦截这个连接:

[root@localhost ~]# semanage port -l |grep 9000
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
matahari_port_t                tcp      49000
matahari_port_t                udp      49000

防火墙也应该没问题:

[root@localhost ~]# firewall-cmd --zone=internal --list-ports
9000/tcp
[root@localhost ~]# firewall-cmd --zone=home --list-ports
9000/tcp

我的Apache代理配置如下:

# Proxy declaration
  <Proxy "fcgi://127.0.0.1:9000">
    ProxySet disablereuse=on
  </Proxy>
# Redirect to the proxy
  <FilesMatch \.php$>
    SetHandler proxy:fcgi://127.0.0.1:9000
  </FilesMatch>

PHP-FPM的配置是这样的:

[www]
user = www
group = www
listen = 127.0.0.1:9000
listen.acl_users = apache
listen.acl_groups = apache
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/log/php-fpm/www-slow.log
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = memcached
php_value[session.save_path]    = "localhost:11211"
php_value[soap.wsdl_cache_dir]  = /var/lib/php/fpm/wsdlcache

我肯定漏掉了什么,但就是找不到问题所在。

备注:内容来源于stack exchange,提问作者El Barto

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 13:18:09