PHP为空白页面提供的用户less于1%

我们最近将我们的网站迁移到了清漆后面的负载均衡的apache集群。 从那时起,一小部分用户报告他们不能查看任何页面。 我已经把这个问题缩小了很多。 这个问题在搬迁前并没有出现,旧的基础设施是一个大箱子。

我们在Rackspace Cloud上运行8个使用Rackspace Cloud负载平衡器(Zeus)负载平衡的varnish 3.0后面的apache2实例,以及总共10台服务器(全部为linux)的2个mysql实例。

用户可以查看静态html文件。 用户可以查看静态资产,如图像。 用户不能查看任何php文件,即使是只包含phpinfo()的简单文件。 当负载平衡器被取出图片时,用户不能查看任何php文件。

apache日志显示没有任何的注意,除了在访问日志。 PHP的错误报告被设置为日志,而不是显示,虽然我把它设置为短时间显示,并且用户仍然没有错误的空白页面。 Apache / Varnish / PHP错误日志显示没有任何说明。

服务器是:

  • Ubuntu Maverick 10.10
  • Apache 2.2.16-1ubuntu3.1(mpm-worker)
  • PHP 5.3.3-1ubuntu9.5(用于fcgi)
  • PHP APC正在使用中
  • 应用程序在代码点火器上
  • 清漆是2.1.3,现在是3.0.0 – 两个版本都有问题
  • MySQL是主 – 主设置中的数据库后端,但是由于仅包含phpinfo()的文件的客户端访问问题; 我相信数据库不是问题。

一些configuration的快照:

  • PHP FCGI – http://pastebin.com/6cepWbxp
  • Apache虚拟主机 – http://pastebin.com/FfxhYwSD
  • Varnish VCL – http://pastebin.com/tAcuyfLR
  • 所有运行的apache模块列表 – http://pastebin.com/absHpXm5

我可以提供任何/所有需要进一步debugging的日志,但没有任何关于这个问题的用户注意到,从Apache的典型访问,从PHP没有错误。

我有一种感觉,它可能会涉及到PHP会话存储,虽然我不能确认这一点。

任何深入了解这个问题,非常感谢。 只是重申最后一次,这个问题只影响到一小部分用户。 这个问题已经有5-10人与我们联系过,但是我认为这个数字比那些没有反映过这个问题的人的数量还要多。 这些联系我们的5-10个用户遍布各大洲/国家/地区。

也许这会帮助你:你保持活着吗?

我们在使用mpm-itk的清漆方面遇到了同样的问题,问题是,当mpm-itk被不同的虚拟主机访问时,实际上保持活动状态,他只是终止了连接。 然后,每个普通的浏览器将尝试重新连接,但清漆不在默认configuration中。 随着删除KeepAlive这种行为不可能发生,所以它解决了这个问题。

我知道你没有使用mpm-itk,但也许值得一试。

另一个想法:你可以访问该网站绕过清漆,并试图强制空白页? 所以你可能会发现如果清漆是问题。

事实certificate,由于权限问题,PHP无法login到指定的日志文件,并且显示的错误被禁用。

因此,PHP错误没有显示,或能够被logging – 但空白页面的根本原因是由于一个奇怪的PHP致命错误。