找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1286|回复: 0
打印 上一主题 下一主题

Nginx环境下PHP flush失效的解决方法

[复制链接]

2500

主题

2513

帖子

7520

积分

论坛元老

Rank: 8Rank: 8

积分
7520
跳转到指定楼层
楼主
发表于 2018-2-14 05:31:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            问题
我在一次调试PHP逐行输出时候,发现ob_flush和flush两个都失效了,通过phpinfo基本能判断php.ini的设置是正常的。
解决方法
再去看Nginx,发现Nginx中,有如下的设置:
fastcgi_buffer_size 128k;
fastcgi_buffers 8 128k;
问题基本找到了,Nginx会缓冲PHP输出的信息,当达到128k时才会将缓冲区的数据发送给客户端,那么我们首先需要将这个缓冲区调小,比如:
fastcgi_buffer_size 4k;
fastcgi_buffers 8 4k;
并且,必须禁用gzip
gzip off;
然后,在php中,在ob_flush和flush前,输出一段达到4k的内容,例如:
echo str_repeat(‘ ‘, 1024*4);
到此,PHP就可以正常通过ob_flush和flush逐行输出需要的内容了。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
            
            
您可能感兴趣的文章:
  • 在Mac OS的PHP环境下安装配置MemCache的全过程解析
  • 老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
  • 非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
  • win7下搭建nginx+php的开发环境
  • windows server 2008/2012安装php iis7 mysql环境搭建教程
  • PHP环境搭建的详细步骤
  • 图文详解PHP环境搭建教程
  • apache php mysql开发环境安装教程
  • PHP+Apache+Mysql环境搭建教程
  • 在Linux(Ubuntu)下搭建PHP环境的操作步骤
  • PHP环境搭建(php+Apache+mysql)
  • 详解Docker创建php开发环境遇到的权限问题解决方案
  • 简述php环境搭建与配置
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端