測(cè)試環(huán)境 PHP version 5.3.29/5.6.29/7.1.0 Apache/2.4.25 (Win32) mod_fcgid/2.3.9
Apache使用mod_fcgid 配置php出現(xiàn)的問題:在php.ini中配置output_buffering = Off或者output_buffering = 4096 均不能使用ob_flush()和flush()刷出緩沖區(qū)內(nèi)容
在php.ini中設(shè)置緩沖區(qū)output_buffering = 4096 ;開啟php緩沖區(qū)output_buffering = Off ;關(guān)閉php緩沖區(qū)查找官方文檔發(fā)現(xiàn),F(xiàn)cgidOutputBufferSize配置信息如下:mod_fcgid document
Description: CGI output buffer sizeSyntax: FcgidOutputBufferSize bytesDefault: FcgidOutputBufferSize 65536Context: server config, virtual hostStatus: ExternalModule: mod_fcgidApache mod_fcgid模式默認(rèn)為開啟buffer,所以在Apache配置文件httpd.conf 中設(shè)置 FcgidOutputBufferSize 0
測(cè)試要求在瀏覽器中間隔一秒出現(xiàn)一個(gè)數(shù)字: 一次php代碼文件請(qǐng)求涉及兩個(gè)緩沖區(qū):
php緩沖區(qū):php編譯生成的靜態(tài)內(nèi)容首先被php緩沖區(qū)收集,之后再對(duì)外輸出; browser緩沖區(qū):從服務(wù)器過來的內(nèi)容到達(dá)瀏覽器里邊的時(shí)候,首先被瀏覽器緩沖區(qū)收集,收集滿之后再逐漸展示到頁面上; <?php //提前開啟緩沖區(qū),在php.ini中配置output_buffering = 4096; //提前開啟緩沖區(qū),或者在運(yùn)行時(shí)設(shè)置ob_start(); for($i=0;$i<5;$i++){ echo $i,'<br/>'; ob_flush(); //刷出php緩沖區(qū)內(nèi)容 flush(); //刷出瀏覽器緩沖區(qū)內(nèi)容 sleep(1); }新聞熱點(diǎn)
疑難解答
網(wǎng)友關(guān)注