【发布时间】:2014-12-05 11:04:04
【问题描述】:
我在我的 PHP 脚本中启用了zlib.compression。
当我在启用输出缓冲(最大约 200 MB)的情况下提供少量数据时,一切正常。
但是,当我尝试提供更多数据时,我收到 HTTP 500 错误,尽管启用了日志记录并且 PHP 没有记录任何错误,但它确实有效。
PHP 没有设置任何输出处理程序(output_handler 没有值)。
<?php
ini_set('zlib.output_compression', 4096);
@ob_start();
header('Content-Type: application/octet-stream');
readfile('/tmp/bigfile.bin');
@ob_end_flush();
禁用输出缓冲(即没有ob_start() / ob_end_flush()),一切正常。
这里发生了什么?我该如何解决这个问题?
(上面的代码只是一个显示错误的示例;由于各种原因我需要输出缓冲,所以禁用它不是很好;如果可能的话,我更喜欢使用压缩)
【问题讨论】:
标签: php zlib output-buffering http-compression