docker:基于centos7镜像部署的php-fpm的9000端口无法被nginx访问的问题

在使用Docker部署Nginx与自定义PHP镜像时,因php-fpm监听地址设置为127.0.0.1导致Nginx无法访问PHP的9000端口。通过修改php-fpm配置文件,将监听地址改为0.0.0.0并注释掉allowed_clients限制,成功解决了端口访问问题。

记录下,使用docker部署nginx+php时遇到的一个坑

问题描述:nginx使用的是官方镜像,php是基于centos7镜像基础上构建的,至于为什么不直接使用官方php镜像?因为还要装一些依赖扩展,比如phalcon框架,是一个需要编译的扩展,还有其他很多东西,构建完之后发现nginx无法访问php的9000端口

docker exec -it my-php-container /bin/sh  # 登到php的容器里
telnet 127.0.0.1 9000
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

# 貌似没有问题,但是如果换成容器的ip telnet则有问题
# 同样,宿主机或者nginx也是无法访问该端口

telnet 172.19.0.2 9000
telnet: Connect to address 172.19.0.2: Connection refused

解决办法:修改php的php-fpm.d/www.conf

# /etc/php-fpm.d/www.conf
listen = 0.0.0.0:9000
; listen.allowed_clients = 127.0.0.1

将listen的端口有原来127.0.0.1:9000的绑定改成0.0.0.0:9000的绑定

注释 listen.allowed_clients = 127.0.0.1,保持默认值 any

这样 nginx 就可以访问到php-fpm的9000端口了

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值