服务器上现有一个在运行的项目是用docker部署的,我现在要在这个服务器上部署我的应用,我的应用运行环境是php,我看服务器上已经安装了nginx的容器,并且有程序占用了php默认的9000端口,所以我的操作如下:
1. 创建php容器,将容器添加到与nginx容器同一个网络下“qflow”,将容器6000端口映射到宿主机,并将php配置文件挂载到宿主机(已提前拷贝到宿主机指定目录)
docker run -idt --name=myphp --network=qflow -v /var/www/html:/var/www/html -v /data/php/www.conf:/usr/local/etc/php-fpm.d/www.conf -v /data/php/php.ini:/usr/local/etc/php/php.ini -p 6000:6000 --restart=on-failure:3 -d php:7.4-fpm
2. 修改php的默认端口后重启容器
3. 修改nginx配置文件,重启php的容器后再重启nginx的容器
4. 发现访问站点html文件成功,但访问php文件报502错误,检查nginx容器日志发现报错,提示拒绝访问
(1)检查的思路是首先查看nginx容器和php的容器是否在一个网络环境并且能够通信
(2)查看php-fmp是否正常运行
(3)检查防火墙,容器端口是否正常映射
5. 首先检查了两个容器的ip是在一个网络内的,
并且测试两个容器是否可以通信,发现是可以ping通,而且防火墙是关闭的
6. 再检查php-fpm进程,发现是有在跑的,并且我也进入php容器运行php文件发现是没有问题的,我按照一些网友给的建议调整了php.ini 的memory_limit 、php-fpm.conf 中max_children和max_requests,重启容器后还是没能解决
谁能发现是哪里的问题?
标签:问题,www,容器,fpm,宿主机,哪里,nginx,php From: https://www.cnblogs.com/qianniuzhaohua/p/18076724