繁体   English   中英

php5-fpm摇篮

[英]php5-fpm craches

我有一个运行debian和php5-fpm的网络服务器(nginx)似乎随机播放,如果我调用php文件,它将以504错误的网关答复。

当它处于崩溃状态并且我执行sudo /etc/init.d/php5-fpm时,它说它正在运行,但是在我执行sudo /etc/init.d/php5-之前,它仍然会提供504错误的网关。 fpm

我在想这可能与我的一个php文件有关,该文件处于无限循环中,直到发生某个事件(mysql数据库中的更改)或直到它超时为止。 我不知道这通常是否是件好事,还是我应该在发生超时之前退出循环。

感谢您的建议!

首先查看nginx error.log中的实际错误。 我不认为PHP会崩溃,只是您的循环正在使用所有可用的php-fpm进程,因此没有免费服务于nginx的下一个请求。 那应该在日志中产生超时错误(nginx将等待一段时间以等待可用的php-fpm进程)。

关于第二个问题。 您不应该为此使用无限循环。 并且如果这样做,请在循环内插入sleep()命令-否则,您将使该循环的CPU以及查询数据库过载。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM