我怎样才能找出为什么我的php5-fpm无法启动?

我得到504网关超时,当我尝试到达我的服务器一个小检查没有发现任何日志在php5-fpm日志,但只是为了确保,我试图重新启动它。 当我试图重新启动它:

sudo service php5-fpm restart 

我得到[fail]但是当我做

 sudo service php5-fpm stop sudo service php5-fpm start 

我没有错误。

如果没有日志,我该如何进行调查? 我能做什么?

你有没有检查你的error_log文件的php-fpm ? 该文件的位置应该在你的php-fpm.conf (在Ubuntuconfiguration中是/etc/php5/fpm/php-fpm.conf,日志文件是/ var / log / php5-fpm / log)中声明,同时检查你的log_level ,如果被禁用(; log_level),请启用它并将其更改为debugging 。 之后,请尝试重新启动php5-fpm服务并检查您的日志。

你也可以尝试在前台模式下运行php5-fpm:

 # php5-fpm -y /etc/php5/fpm/php-fpm.conf 

也许这会让你看到有趣的东西。

标准故障排除程序

  • 检查日志文件。 如果你不知道在哪里检查configuration,或​​者找出一些ps aux | grep php-fpm ps aux | grep php-fpm ,然后执行lsof -p $PID | grep log lsof -p $PID | grep log (如果没有显示,则省略grep)。
  • 99%的时间日志文件会显示你的原因。 如果没有,请在configuration中查找日志logging级别,然后重新尝试。
  • 也许它立即退出,你不能让PID来检查过程。 您也可以尝试在前台启动进程,但这意味着要确定需要使用哪些命令行开关。 通常你只需要把它指向你现有的configuration。
  • 如果日志文件或stdout / stderr(前台输出)都不包含任何线索,那么就需要strace …但这是另一篇文章。

这个笔记帮助了我: https : //bugs.launchpad.net/nginx/+bug/1366651

在我的情况下,更新到nginx> 1.6.1传递给php5-fpm的参数位于fastcgi.conf而不是fastcgi_params中,导致PHP始终返回200(ok),但从不会有任何内容,因为SCRIPT_FILENAME不再设置。

我希望这也能帮助别人。

对我来说,问题是我的php-fpm.conf文件没有使用默认的configuration文件名 – 它被命名为/etc/php5/fpm/php5-fpm.conf vs php-fpm.conf

 php5-fpm -t [26-Jul-2014 22:39:16] ERROR: failed to open configuration file '/etc/php5/fpm/php-fpm.conf': No such file or directory (2) [26-Jul-2014 22:39:16] ERROR: failed to load configuration file '/etc/php5/fpm/php-fpm.conf' [26-Jul-2014 22:39:16] ERROR: FPM initialization failed 

我将conf文件重命名为php-fpm.conf并解决了这个问题。

 sudo mv /etc/php5/fpm/php5-fpm.conf /etc/php5/fpm/php-fpm.conf sudo service php5-fpm restart * Restarting PHP5 FastCGI Process Manager php5-fpm [ OK ] 

我遇到没有日志文件的问题,然后注意到我通过HTTPS而不是HTTP访问URL,该协议还没有在Nginx中设置,所以PHP5-FPM没有获得stream量。

可能帮助某人。

这可能发生在Ubuntu dist-upgrade软件包php5-fpm被卸载,因为PHP 7使用php-fpm代替。 尝试在控制台上运行这个:

 php5-fpm 

如果它不存在,你可能已经使用PHP 7,所以安装

 apt-get install php-fpm 

这将安装php7版本