PHP-CGI开始提供空白页面

我的PHP-CGI开始空白页面没有明显的原因,直到我重新启动的过程。

我想知道为什么。

不幸的是,PHP的“生产”configuration文件默认没有error_log。 我的Nginx错误日志也没有显示与PHP相关的错误。 这可能是一个无望的情况,但我只是为了以防万一。

这是我的设置

  • Nginx 0.8.2
  • PHP 5.2.6-3ubuntu4.1与Suhosin-Patch 0.9.6.2(cli)(内置:2009年4月23日14:37:14)
  • PHP APC 3.0.19-2
  • spawn-fcgi v1.6.2(ipv6) – 来自lighttpd的fastcgi包装

任何想法可能会导致错误?

更新

我想我已经隔离了这个问题。 我一直在使用Monit来自动重新启动PHP,当它开始消隐。 我的PHP错误日志是空白的。

但是我发现如果我禁用了一个名为WP-SuperCache的WordPress插件,我的PHP停止了每10个小时的重置。 到目前为止,我的PHP已连续运行了三天。 有没有人对此有任何build议?

Supercache生成完整的caching版本的页面,以及做一些其他的内部caching,在高负载情况下可能会出现某种时序问题。 我会检查您的caching文件夹,以确保它不包含空白文件。 如果是这样,你可能有一个文件locking问题。 解决这个问题可能会非常棘手,而且可能会要求您打开一个bug ticket,因为这可能是代码本身的一个问题。

不是一个答案,但build议 – 用php-fpmreplacespawn-fcgi它更可定制。

PS。 也许你有特殊的50倍错误页面在nginx.conf中redirect

UPD:今天我遇到了类似的问题,当nginx + php开始提供空白页面。 我的研究表明,无论什么PHP抛出一个例外,它发送空白页面。 可能是某种php.ini指令提供空白而不是错误。 我应该检查日志等… wip。

UPD2:看看你的php.ini中有2个参数,你需要改变才能看到php错误:

error_reporting = E_ALL & ~E_NOTICE display_errors = On 

你有没有试过实际上停止fcgi服务,并重新启动它,而不是重新启动它。 我在重新启动fcgi时发生了类似的奇怪事情

“自发发生的一夜”条款听起来很有趣…是否有可能您的主机开始为所有stream量添加额外的状态标题? 如果是这样,你可能会看到这个错误:

的Joomla! PHP,FastCGI,空白页面和重复标题“状态”

检查请求的响应状态(如curl -i),如果状态不是200,请检查错误页(特别是显示的错误号),确保它们不是设置为可能导致无限循环的redirect。

如果响应状态是200,请检查响应中是否有HTTP标题以外的任何文本。

这是一个常见的问题,你可以做的最好的事情是每晚重新启动spawn-fcgi并观察错误日志。 一个小的python logwatch程序,将重新启动您的PHP可以在这里find。

http://hostingfu.com/article/keeping-your-php-fastcgi-processes-alive