我如何才能找出为什么我的 php5-fpm 启动失败?

我如何才能找出为什么我的 php5-fpm 启动失败?

当我尝试访问我的服务器时,出现 504 网关超时错误。

经过小检查,没有在 php5-fpm 日志中发现任何日志,但为了确保万无一失,我尝试重新启动它。

当我尝试重新启动它时:

sudo service php5-fpm restart

我明白[fail],但当我这样做

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

我没有收到任何错误。

如果没有日志,我该如何调查?我该怎么办?

答案1

你检查过你的错误日志申请php-fpm? 该文件的位置应在您的php-fpm.conf(在 Ubuntu 中配置为 /etc/php5/fpm/php-fpm.conf,日志文件为 /var/log/php5-fpm/log),还请检查您的日志级别,如果已禁用(;log_level),请启用它并将其更改为调试。之后尝试重新启动 php5-fpm 服务并检查您的日志。

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

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

也许这会向你展示一些有趣的东西。

答案2

标准故障排除流程:

  • 检查日志文件。如果你不知道它在哪里,请检查配置或找出确定的 pid ps aux | grep php-fpm,然后执行lsof -p $PID | grep log(如果它没有显示任何内容,请省略 grep)。
  • 99% 的情况下日志文件会显示原因。如果没有,请在配置中查找日志记录级别,将其提高并重试。
  • 也许它会立即退出,而您无法获取 PID 来检查该进程。您也可以尝试在前台启动该进程,但这意味着要弄清楚您需要使用哪些命令行开关。通常您只需将其指向您现有的配置即可。
  • 如果日志文件或 stdout/stderr(前台输出)都不包含任何线索,那么就该进行 strace 了……不过那是另一篇文章。

答案3

这张纸条对我有帮助: https://bugs.launchpad.net/nginx/+bug/1366651

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

我希望它也能帮助其他人。

答案4

我遇到了这个没有日志文件的问题,然后注意到我正在通过 HTTPS 而不是 HTTP 访问 URL,并且该协议尚未在 Nginx 中设置,因此 PHP5-FPM 没有获得流量。

可能会对某人有帮助。

相关内容