本文目录一览:
- 1、docker-compose启动php-fpm报错问题
- 2、docker php-fpm 怎样启动~呢?
- 3、dockerphp重启php进程被杀
- 4、docker 部署nginx、php-fpm错误记录
- 5、docker php-fpm 一直重启问题处理
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)-dockerphpfpm
另外解决方法就是不用compose,而是建立Dockerfile文件,里面跑ubuntu,nginx等,然后顺便安装phpfpm,相当于一个镜像,这样和外部本机ipv6环境无关啦。
docker php-fpm 怎样启动~呢?
需要保证:Nginx看到的路径要和php-fpm看到的路径一样。 因为Nginx是把路径传给php-fpm的。
曾跳过该坑,出坑方法:找到你的php-fpm.conf,查看里面配置的error_log路径,找到这个error_log, 里面会看到找不到.php的error.
dockerphp重启php进程被杀
1 是的,dockerphp重启php进程可能会被杀
2 因为默认情况下,docker中的容器都是以PID为1的进程启动的,如果php进程被重启,那么PID就会发生变化,这可能会导致容器的进程管理工具(如systemd)无法正确识别该进程,并将其误认为是孤儿进程,从而将其kill掉。-dockerphpfpm
3 解决方法可以采用systemd的notify机制或者使用supervisord等工具来管理php进程,以避免被误杀的情况发生。
同时,也可以在dockerfile中修改CMD或ENTRYPOINT的方式来启动php进程,以确保其PID不会发生变化。
docker 部署nginx、php-fpm错误记录
最近要使用docker部署nginx和php-fpm服务,因为以前部署过无数次的nginx+php-fpm,本以为轻车熟路,很快搞定,但是在这个最熟的环节却出了问题,耗费了小半天的时间,特把解决问题的过程记录如下:(使用docker 部署 nginx,php-fpm的具体步骤网上较多,不再此进行详述了)-dockerphpfpm
问题:docker 部署完成 nginx,php-fpm后,运行服务,出现:recv() failed (104: Connection reset by peer) while reading response header from upstream-dockerphpfpm
多次修改修改无果后,开始自己查找此错误:
证明php-fpm服务已经启动了,但是未知原因php-fpm把链接中断了。怀疑是底层tcp链接问题,使用netstat -s | grep reject,未发现异常链接。想不出啥原因,查看php-fpm error.log未发现有用信息-dockerphpfpm
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