如何找出我的 php5-fpm 无法启动的原因?

Lia*_*nat 9 linux php php-fpm

当我尝试访问我的服务器时,我收到 504 网关超时。

一个小的检查没有在 php5-fpm 日志上找到任何日志,但为了确保,我尝试重新启动它。

当我尝试重新启动它时:

sudo service php5-fpm restart
Run Code Online (Sandbox Code Playgroud)

我明白了[fail],但是当我这样做的时候

sudo service php5-fpm stop
sudo service php5-fpm start
Run Code Online (Sandbox Code Playgroud)

我没有错误。

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

jam*_*zed 17

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

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

# php5-fpm -y /etc/php5/fpm/php-fpm.conf
Run Code Online (Sandbox Code Playgroud)

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

  • 就我而言,此命令启动了 php5-fpm,而“service php5-fpm start”则没有启动。谢谢! (2认同)

Ale*_*bes 5

标准故障排除流程:

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