PHP输出缓冲区设置被服务器忽略

我一直在尝试将某些脚本的输出按需刷新到浏览器,但是它们不适用于我们的生产服务器。

例如,我尝试运行“Phoca Change Collat​​ion工具”(在Google上查找),直到脚本执行完毕,我才看到任何输出。

我已经尝试立即刷新缓冲区的其他脚本,可以在任何服务器上正常工作,但使用下面的代码:

echo "something"; ob_flush(); flush(); 

设置“ob_implicit_flush(1);” 也没有帮助。

服务器是在Linux上运行的PHP 5.2.17的Apache 2.2.21。 你可以看到我们的php.ini文件,如果这将有助于: http : //www.smallfiles.org/download/1123/php.ini.html

这不是我们在服务器忽略脚本指令时唯一的问题。 服务器还会忽略超时编码,例如:

 ini_set('max_execution_time', 900*60); 

 set_time_limit(86400); 

脚本总是超时在php.ini默认。

如果脚本在IE或Firefox中执行,似乎并不重要。

试过“ini_set('zlib.output_compression_level','Off');” 并检查它在php.ini文件中是“关”。 代码“apache_setenv('no-gzip',1);” 导致致命的错误,所以尝试上传与“mod_gzip_on否”指令的.htaccess文件。 没有帮助。

尝试运行Apache为fcgi和suphp,但结果相同。

服务器不在安全模式下。

Pullin马头发!

要修复输出缓冲区问题,我需要closures.htaccess文件中的gzip压缩。

为了解决超时问题,我检查了我的Apache日志文件,发现它不是PHP,但在Apacheconfiguration中:超时指定已过期:ap_content_length_filter:apr_bucket_read()失败

不得不增加Apache超时以防止这个问题。 这显然是由于Apache在超时重置之前等待更多的内容到达缓冲区而引起的。