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?
php82的www.conf(项目中的php-fpm.conf) 设置listen = 127.0.0.1:9000覆盖了镜像中docker.conf的设定。似乎使得
nginx的fastcgi_pass php82:9000;无法连接到PHP容器。其他版本的PHP可以连接上似乎是因为PHP镜像内包含了一个
zz-docker.conf其中指定了
listen = 9000覆盖了www.conf(项目中的php-fpm.conf)设定的isten = 127.0.0.1:9000而在
PHP82版本的镜像中,zz-docker.conf似乎不含此参数,于是遵循www.conf的配置监听了127.0.0.1,从而导致nginx无法连接我的临时解决方案是在
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?
dnmp/services/php82/php-fpm.conf
Line 36 in 4b1dbb9