8000 php82监听127.0.0.1导致nginx容器没法连接到php-fpm · Issue #627 · garylab/dnmp · GitHub
[go: up one dir, main page]

Skip to content

php82监听127.0.0.1导致nginx容器没法连接到php-fpm #627

Open

Description

@Nisekoi5

php82的www.conf (项目中的php-fpm.conf) 设置 listen = 127.0.0.1:9000 覆盖了镜像中 docker.conf 的设定。
似乎使得nginx的fastcgi_pass php82:9000; 无法连接到PHP容器。

2026/05/11 01:17:22 [error] 21#21: *3 connect() failed (111: Connection refused) while connecting to upstream, client: 1.1.1.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://172.18.0.2:9000", host: "x.x.x.x"

root@d9e42323d3e9:/usr/local/etc/php-fpm.d# grep -R listen\ =
www.conf.default:listen = 127.0.0.1:9000
www.conf.default:;pm.status_listen = 127.0.0.1:9001
docker.conf:; listen = 9000
www.conf:listen = 127.0.0.1:9000

其他版本的PHP可以连接上似乎是因为PHP镜像内包含了一个zz-docker.conf
其中指定了 listen = 9000覆盖了www.conf (项目中的php-fpm.conf)设定的isten = 127.0.0.1:9000

/usr/local/etc/php-fpm.d # cat zz-docker.conf 
[global]
daemonize = no

[www]
listen = 9000

而在PHP82版本的镜像中,zz-docker.conf似乎不含此参数,于是遵循www.conf 的配置监听了127.0.0.1,从而导致nginx无法连接

/usr/local/etc/php-fpm.d# cat zz-docker.conf 
[global]
daemonize = no

; the [www] ini section below is for backwards compatibility and will be removed in 8.6+
[www]

我的临时解决方案是在DockerFile加了一行,使其监听0.0.0.0,后重新build了镜像后恢复正常
RUN echo 'listen = 9000' >> /usr/local/etc/php-fpm.d/zz-docker.conf

是否应该把项目中的php-fpm.conf统一修改为监听0.0.0.0?

listen = 127.0.0.1:9000

Activity

  1. afu727 commented on May 11, 2026

    @afu727
  2. xrafece commented on Jun 25, 2026

    @xrafece

    我也有相同的问题,google以后的结果也差不多是这个原因。

    几乎就是clone到我的新设备,初始化以后直接启动就会有这个问题。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0