欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-03 07:51:30
...

一、问题描述

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

二、排错

一脸黑线后,开始排错。环境是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!!!!

转载于:https://juejin.im/post/5cddaedaf265da037516c8a5