【问题标题】:php5-fpm crachesphp5-fpm 崩溃
【发布时间】:2015-04-23 16:52:11
【问题描述】:

我有一个运行 debian 的网络服务器 (nginx),php5-fpm 似乎随机崩溃,如果我调用 php 文件,它会回复 504 bad gateway。

当它处于崩溃状态并且我执行 sudo /etc/init.d/php5-fpm 它说它正在运行,但它仍然会给出 504 bad gateway 直到我执行 sudo /etc/init.d /php5-fpm

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

感谢您的建议!

【问题讨论】:

    标签: nginx crash webserver debian php


    【解决方案1】:

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

    关于你的第二个问题。您不应该为此使用无限循环。如果你这样做了,请在循环中插入sleep() 命令 - 否则你的 CPU 会因该循环而过载,数据库也会因查询而过载。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-26
      • 2016-02-24
      • 2012-11-14
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 2012-05-15
      相关资源
      最近更新 更多