ob_flush 不适用于新的 apache 配置

Posted

技术标签:

【中文标题】ob_flush 不适用于新的 apache 配置【英文标题】:ob_flush not working on new apache configuration 【发布时间】:2016-01-18 10:20:54 【问题描述】:

我最近从 Amazon Elastic Beanstalk 迁移到我自己的 ubuntu 14.04 lts 服务器。除了使用ob_flush 并继续进行处理的一页之外,所有内容都顺利移植。这是代码块:

 <?php 
 //put string of page ----> $string
 ob_end_clean();
 header("Connection: close");
 ignore_user_abort(true); // optional
 ob_start();
 echo ($string);
 $size = ob_get_length();
 header("Content-Length: $size");
 ob_end_flush(); // Strange behaviour, will not work
 flush();            // Unless both are called !
 session_write_close(); // Added a line suggested in the comment
 // Do processing here
sleep(10);
//do stuff
echo "something";

我希望打印 $string 的内容,而不是 $string 的内容,然后打印“something”。在这个 sn-p 中,“something”仍然会打印出来。我已禁用 mod_pagespeed(当前已启用),并确保 gzip 和缓冲区输出设置为关闭。

Here 是我的php.ini 文件(我在场外拥有它,因为它未删节并且可能与问题无关)。我也怀疑这可能与我的 apache 配置文件有关,您可以看到 Here。最后,如果这与我的问题有关,here is a link 我的 pagespeed 配置。当我调用该函数时,错误日志显示没有错误,另外我对服务器具有 root 访问权限。谢谢你帮我解决这个问题!

杰克·西尔维斯特

【问题讨论】:

【参考方案1】:

我认为您混淆了 ob_get_contents 和 ob_end_flush 请参阅:http://php.net/manual/en/function.ob-start.php。

【讨论】:

所以你说我必须 echo 调用 ob_get_contents(),然后调用 ob_end_flush?

以上是关于ob_flush 不适用于新的 apache 配置的主要内容,如果未能解决你的问题,请参考以下文章

Apache 2.4 - 简单的反向代理 - 不适用于多个条目

Expo LAN 配置不适用于新的 React Native 项目

apache tomcat 9.x 不适用于 eclipse 和 Java 10.0.1

子域不适用于 www

PHP curl 不适用于 Windows 和 Apache

Xaml实时编辑不适用于自定义解决方案配置