只有一半的页面加载

时间:2013-09-02 08:42:38

标签: php apache cakephp cakephp-2.2

我有一个应用程序(CakePHP 2.2),直到最近一直工作正常,但突然间它开始只提供部分页面。该页面的HTML被截断,但每次都不会在完全相同的位置截断(尽管它大致相同)。

我还有其他人在其他地方对此进行了测试。他们也遇到了同样的问题。

我第一次遇到这个问题时,我重启了服务器&它似乎解决了这个问题,但它再次发生了。这次我尝试重启Apache,而不是整个服务器和它似乎没有解决问题。

我不确定还有什么可以尝试,所以欢迎任何建议。

提前致谢。

更新:我现在也尝试禁用APC,但在此功能被禁用后问题仍然存在。

另一次更新:尝试添加以上内容&在它截断的点之下,它似乎是在距离文件末尾一定距离处截断,因为只有在内容被打破之后添加内容时才会移动近似断点。

又一次更新 ...... 好的,所以我做了更多的挖掘工作在我的生产服务器上计算内容长度似乎有问题。这是我挖掘的输出(剥离日期标题以节省空间)......

内容长度未设置的服务器

如果我取消设置CakeResponse :: _ setContentLength()中的Content-Length标题,整页显示正常,&这是返回的标题......

Connection  close
Server  Apache/2.2.24 (Unix) mod_ssl/2.2.24 OpenSSL/1.0.0-fips mod_bwlimited/1.4
Transfer-Encoding   chunked
X-Powered-By    PHP/5.3.24

内容长度设置

的服务器

如果我没有取消设置Content-Length标题,那么显示的页面会被截断,&响应头是......

Connection  close
Content-Length  2455
Content-Type    text/html; charset=UTF-8
Server  Apache/2.2.24 (Unix) mod_ssl/2.2.24 OpenSSL/1.0.0-fips mod_bwlimited/1.4
X-Powered-By    PHP/5.3.24

标准内容长度的本地计算机

我认为这是标头长度计算,除了在我的本地计算机上,即使没有取消设置Content-Length标头,也会显示完整页面,即使返回的Content-Length是相同的就像在生产服务器上一样......

Connection  Keep-Alive
Content-Length  2455
Content-Type    text/html; charset=UTF-8
Keep-Alive  timeout=5, max=100
Server  Apache/2.2.22 (Unix) DAV/2 PHP/5.3.15 with Suhosin-Patch mod_ssl/2.2.22 OpenSSL/0.9.8x
X-Powered-By    PHP/5.3.15

1 个答案:

答案 0 :(得分:0)

从我可以收集到的,

脚本必须是die,然后在显示芯片代码后停止HTML。

您需要进一步研究CakePHP的代码,并检查逻辑函数是否未意外结束,并且没有可能导致HTML加载的未完成的die函数。