php5-fpm崩溃

时间:2013-01-26 21:25:01

标签: nginx crash webserver debian php

我有一个运行debian的网络服务器(nginx)和随机的php5-fpm似乎很糟糕,如果我调用php文件,它会回复504坏网关。

当它处于崩溃状态并且我执行sudo /etc/init.d/php5-fpm它表示它正在运行,但它仍然会给出504坏网关,直到我执行sudo /etc/init.d / PHP5-FPM

我认为它可能与我的一个php文件有关,这个文件处于无限循环中,直到某个事件发生(在mysql数据库中发生变化)或者直到它将被计时。我不知道一般来说这是好事还是我应该在超时发生之前让循环退出。

感谢您的建议!

1 个答案:

答案 0 :(得分:0)

首先看看nginx error.log中的实际错误。我不认为PHP崩溃,只是你的循环正在使用所有可用的php-fpm进程,所以没有任何免费提供来自nginx的下一个请求。这应该会在日志中产生Timeout错误(nginx将等待一段时间用于可用的php-fpm进程)。

关于你的第二个问题。你不应该为此使用无限循环。如果你这样做,在循环中插入sleep()命令 - 否则你将使用该循环和带有查询的数据库重载CPU。

此外,我想在该循环中有一个PHP进程等待事件就足够了。在这种情况下,使用某种类型的信号量(db中的文件或信息)让其他进程知道一个已经在等待该事件。否则你将总是吃掉所有可用的PHP进程。