PHP-FPM 服务状态为“停止/等待”但工作程序正在运行?

PHP-FPM 服务状态为“停止/等待”但工作程序正在运行?

启动 php5-fpm 似乎可以工作,但立即检查状态显示它没有运行:

[root@server ~]# service php5-fpm start
php5-fpm start/running, process 4516

[root@server ~]# service php5-fpm status
php5-fpm stop/waiting

即使我能够加载 PHP 页面(这意味着 PHP-FPM 必须正在运行),状态有时会报告为stop/waiting

看来正在运行的进程,但是这些只是工作进程吗?

ps -aux |grep php
www-data  3552  0.0  0.7 338108 14960 ?        S    05:43   0:00 php-fpm: pool www                                                       
www-data  3553  0.0  1.3 338168 27156 ?        S    05:43   0:00 php-fpm: pool www                                                       
www-data  3554  0.0  1.1 337948 23020 ?        S    05:43   0:00 php-fpm: pool www                                                       
www-data  3555  0.0  1.0 334108 20644 ?        S    05:43   0:00 php-fpm: pool www                                                       
www-data  3556  0.0  1.1 337952 23032 ?        S    05:43   0:00 php-fpm: pool www 

我担心主进程无法正常工作。但是 PHP-FPM 日志中没有任何报告。

[root@server ~]# tail /var/log/php5-fpm.log
[03-May-2014 06:19:32] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful

service php-fpm status误报吗?还是主进程确实停止了?

更新:重新启动服务器会导致 PHP-FPM 在启动时启动并显示为正在运行,但发出重新加载或重新启动命令会导致它进入上述状态。在当前情况下,每次更改 php.ini 时我都必须重新启动服务器。服务器是 Ubuntu 14.04

答案1

这是确认的漏洞在 Ubuntu 的 PHP-FPM 中。对我来说,以下内容有帮助:

  1. sudo service php5-fpm stop
  2. ps aux |grep php
  3. kill [list of proccess IDs echoed by the command above]
  4. sudo service php5-fpm start

答案2

我遇到了同样的问题,对我来说,这是 nginx 配置文件中的一个拼写错误。我试图在

/etc/php5/fpm/pool.d/www.conf

使用 : 代替 ;

答案3

当我尝试在 fpm 池目录中添加新的 conf 文件时,我遇到了同样的问题。我没有意识到我对两个文件使用了相同的 .sock 名称。只需验证:

listen = /var/run/[NAME].sock

相关内容