dnmp环境下php-fpm以root权限执行

1、问题描述

最近在作链接二维码扫描机心跳链接时,发现二维码扫描机有固定IP,无固定端口,服务器没法主动发送心跳。。。想了不少办法搞定链接,试过swoole,wokerman,都以为不必,最终使用exec()方法模拟ping链接最有效,本地调试好放服务器上发现没法执行,怀疑是无权限,一番找资料后,美滋滋的把一切改好,问题来了,访问各类502.。。。

2、排错

一脸黑线后,开始排错。环境是dnmp,遵循docker初衷,各个服务分离,每一个服务单独运行在独立容器内。进入容器内查找问题,发现命令不全,没法使用sudo命令,这给排错带来了不小的麻烦,只能修改配置文件。修改以前,/etc/local/nginx.conf中user是nginx,改回nginx后依旧报错,继续修改php-fpm,将user和group修改回apache后,再次访问,网页正常访问,exec()该访问不通仍是不通。

nginx报错以下

2019/04/14 18:22:22 [crit] 24#24: *585 SSL_do_handshake() failed (SSL: error:1417D0A0:SSL routines:tls_process_client_hello:length too short) while SSL handshaking, client: 108.178.16.154, server: 0.0.0.0:443
复制代码

php报错以下

ERROR: [pool www] please specify user and group other than root
ERROR: FPM initialization failed
复制代码

在nginx和php没法定位错误的状况下,查看进程

ps -le | grep php-fpm
复制代码

发现全部进程都是以root进程在运行,并没有错误。后来查阅资料发现,

pool是影响这个问题的关键,解决办法是

php-fpm -R
复制代码

输入命令,重启容器,everything be ok!!!!

相关文章
相关标签/搜索