启动 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 中。对我来说,以下内容有帮助:
sudo service php5-fpm stop
ps aux |grep php
kill [list of proccess IDs echoed by the command above]
sudo service php5-fpm start
答案2
我遇到了同样的问题,对我来说,这是 nginx 配置文件中的一个拼写错误。我试图在
/etc/php5/fpm/pool.d/www.conf
使用 : 代替 ;
答案3
当我尝试在 fpm 池目录中添加新的 conf 文件时,我遇到了同样的问题。我没有意识到我对两个文件使用了相同的 .sock 名称。只需验证:
listen = /var/run/[NAME].sock