本文目录一览:
docker-compose启动php-fpm报错问题
当你的机子关闭了ipv6启动php-fpm会出现:
address family not supported by protocol
鲁莽解决方法用命令 find / -name zz-docker.conf 找到配置文件位置
直接修改listen = [::]:9000 为 listen = 0.0.0.0:9000
官方DockerFIle:
一般正确做法是修改建立新的dockerfile,
sed "s/[::]:/0.0.0.0:/g" zz-docker.conf
(/var/lib/docker/aufs/diff/864a8992572a0791d45316907d130acaff7f61fe878662b3937c49477496d85c/usr/local/etc/php-fpm.d/zz-docker.conf)
另外解决方法就是不用compose,而是建立Dockerfile文件,里面跑ubuntu,nginx等,然后顺便安装phpfpm,相当于一个镜像,这样和外部本机ipv6环境无关啦。
docker在正式线上环境的使用一般是怎样的
1.分别制作好apache,php镜像
2.在新机器安装好docker和compose
3.使用compose管理启动apache和php镜像
docker php-fpm 一直重启问题处理
使用 docker-compose up -d 启动 php-fpm 容器后会发现容器成功启动之后会马上关闭。由于设置了 restart: always 会导致容器再次启动然后关闭
官方 php-fpm : 7.1 镜像,使用自定义的 php-fpm 配置。
php-fpm 配置是从现有生产服务器上复制过来的。配置没有问题。
看log,发现fpm正常启动了,然后马上就退出
跟镜像中自带的 php-fpm.conf 比较发现镜像中使用 daemonize = no ,而我自定义配置中 daemonize = yes 是后台运行的。
那么很明显官方镜像是故意使用 daemonize = no 不让 fpm 在后台中运行,进而阻止容器退出
修改 php-fpm.conf 中如下
daemonize = no