IIS-PHP flush 无效解决方法 |
责任编辑:林子
日期:2015/9/17 21:44:48 浏览:1575次
文字大小[大 中 小] |
弄了一天,程序怎么看也没有错,后面找到了是IIS-PHP的配置问题。总解一下分享起来,免得大家又起弯路。
<?php
@ini_set("output_buffering", "Off");
@ini_set('implicit_flush', 1);
@ini_set('zlib.output_compression', 0);
ob_start();
echo "starting...<br/>\n";
for($$i = 0; $$i < 5; $$i++) {
print "$$i<br/>\n";
ob_end_flush();
ob_flush();
flush();
ob_start();
sleep(1);
}
print "DONE!<br/>\n";
?>
确切的说,flush是在IIS FastCGI的默认设置下无效,修改php.ini中的output_buffering = Off也没用。
解决方法如下:
将php.ini中的output_buffering 设置为 Off
打开文件 C:\Windows\System32\inetsrv\config\applicationHost.config ,注意如果是64位系统,这个文件就必须用64位的编辑软件打开(windows7上的原生64位软件),系统自带的notepad记事本打开也行。找到下面这一段,加入红色的那段代码,也就是php这个handler里面加上responseBufferLimit="0"。
<handlers accessPolicy="Read, Script">
<add name="PHP_via_FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="D:\PHP\php-cgi.exe" resourceType="Either" responseBufferLimit="0" />
|
|
|
本文共收到鲜花×0朵;被砸鸡蛋×
0
个 [觉得本文写得还行送朵鲜花,如果不好砸个鸡蛋] |
说明:本站部分内容收集于网络,如有侵犯您的权益请来信告知,我们会第一时间删除 |
|
|
|
|
|