我的PHP-CGI开始空白页面没有明显的原因,直到我重新启动的过程。
我想知道为什么。
不幸的是,PHP的“生产”configuration文件默认没有error_log。 我的Nginx错误日志也没有显示与PHP相关的错误。 这可能是一个无望的情况,但我只是为了以防万一。
这是我的设置
任何想法可能会导致错误?
更新
我想我已经隔离了这个问题。 我一直在使用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