Apache没有刷新

时间:2011-10-26 16:58:57

标签: php apache flush

我在Linux系统上使用Apache 2.2.1和PHP 5.3.8。

我需要在通话开始时刷新标题,但浏览器会一直等到完整内容发送完毕。

在命令行中,使用“php test.php”一切都按预期工作,但不会在涉及到apache时立即生效。

我尝试了一切。设置output_buffer = Off,zlib.output_compression = Off,禁用mod_deflate,SendBufferSize 512.我在php中也使用了所有不同的flush方法。但正如我所说,在命令行上它工作正常。

以下是响应标题:

  • 2011年10月26日星期三16:37:07 GMT
  • 服务器Apache / 2.2.21(亚马逊)
  • X-Powered-By PHP / 5.3.8
  • 连接关闭
  • 转移编码分块
  • Content-Type text / html;字符集= UTF-8

我删除了每个模块,除了这些:

  • LoadModule authz_host_module modules / mod_authz_host.so
  • LoadModule ldap_module modules / mod_ldap.so
  • LoadModule log_config_module modules / mod_log_config.so
  • LoadModule setenvif_module modules / mod_setenvif.so
  • LoadModule mime_module modules / mod_mime.so
  • LoadModule dav_module modules / mod_dav.so
  • LoadModule autoindex_module modules / mod_autoindex.so
  • LoadModule dir_module modules / mod_dir.so
  • LoadModule alias_module modules / mod_alias.so
  • LoadModule rewrite_module modules / mod_rewrite.so

我希望有人可以帮助我

2 个答案:

答案 0 :(得分:1)

很可能Apache正在刷新,但是即使在收到初始刷新数据之后,浏览器也会决定继续缓冲(而不是开始渲染)。

来自documentation

  

flush()可能无法覆盖您网络的缓冲方案   服务器和它对任何客户端缓冲没有影响   浏览器

除了浏览器特定的黑客之外,没有什么可以做的,比如发送大量的空白(几年前我不得不诉诸),让浏览器“重新考虑”。

答案 1 :(得分:0)

您应该尝试使用其他content-type或不使用content-type发送该页面。在我们的服务器中,我们遇到了类似的问题,我们发现当mod_security是html时,content-type会阻止刷新。