程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> Nginx環境下PHP flush失效的解決方法

Nginx環境下PHP flush失效的解決方法

編輯:PHP綜合

問題

我在一次調試PHP逐行輸出時候,發現ob_flushflush兩個都失效了,通過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_flushflush前,輸出一段達到4k的內容,例如:

echo str_repeat(‘ ‘, 1024*4);

到此,PHP就可以正常通過ob_flushflush逐行輸出需要的內容了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved