Azure/Shared Web App/PHP/PhpManager/output\u缓冲

Azure/Shared Web App/PHP/PhpManager/output\u缓冲,php,azure,output-buffering,Php,Azure,Output Buffering,正如标题所描述的,我在Azure中有一个使用PHP5.4的共享Web应用程序,以及通过Kudu安装的站点扩展PhpManager。我使用PhpManager将主php.ini文件和变量输出缓冲从默认4096修改为Off 该设置会保存绿色记号,如果您重新访问配置,该设置将保持不变,但如果您在重新启动实例后仍查看PHP信息,则输出缓冲变量不受尊重,它仍然显示4096,尽管PHP.ini文件config显示 我已经尝试在.user.ini和自定义ini路径中添加新行 output_buffering

正如标题所描述的,我在Azure中有一个使用PHP5.4的共享Web应用程序,以及通过Kudu安装的站点扩展PhpManager。我使用PhpManager将主php.ini文件和变量输出缓冲从默认4096修改为Off

该设置会保存绿色记号,如果您重新访问配置,该设置将保持不变,但如果您在重新启动实例后仍查看PHP信息,则输出缓冲变量不受尊重,它仍然显示4096,尽管PHP.ini文件config显示

我已经尝试在.user.ini和自定义ini路径中添加新行

output_buffering = Off
此更改只会导致输出缓冲区在PHP信息中变为无值,但不会得到所需的关闭结果

如果您能提供任何关于禁用此功能的指导,我将不胜感激-我已经尝试了大量的ob_flush-flush-ob_start等方法来强制执行文件,但没有成功

另一方面,我在下面创建了一个单独的脚本,以确保它不是一个代码问题,并且这仍然是一次性输出,而不是根据需要逐步输出

<?php
echo 'Starting...<br/>';
for($i = 0; $i < 5; $i++) {
  print "$i<br/>";
  flush();
  sleep(2);
}
print 'DONE!<br/>';
?>
干杯


T

您可以在根目录的web.config中自定义处理程序映射。如果没有,只需创建一个新的web.config。我们可以利用responseBufferLimit=0禁用IIS中的响应缓冲区

与类似,但我们将使用默认安装的php cgi execute应用程序,并手动创建配置

请在web.config中尝试以下内容:


您可以在根目录的web.config中自定义处理程序映射。如果没有,只需创建一个新的web.config即可。我们可以利用responseBufferLimit=0禁用IIS中的响应缓冲区

与类似,但我们将使用默认安装的php cgi execute应用程序,并手动创建配置

请在web.config中尝试以下内容:

尝试将其设置为0:

output_buffering = 0
从文档中可以看出,此配置参数应为布尔值或整数。当我测试它时,我只能让它按照我使用int时预期的方式运行

输出缓冲布尔/整数

通过设置此选项,可以为所有文件启用输出缓冲 指向“On”的指令。如果希望将缓冲区的大小限制为 特定大小-您可以使用最大字节数而不是“On”, 作为该指令的一个值,例如,输出缓冲=4096。从PHP开始 4.3.5,此指令在PHP-CLI中始终处于关闭状态

另一方面,由于默认值为0,因此我假设将其设置为无效且看不到任何值与将其设置为0相同:-

尝试将其设置为0:

output_buffering = 0
从文档中可以看出,此配置参数应为布尔值或整数。当我测试它时,我只能让它按照我使用int时预期的方式运行

输出缓冲布尔/整数

通过设置此选项,可以为所有文件启用输出缓冲 指向“On”的指令。如果希望将缓冲区的大小限制为 特定大小-您可以使用最大字节数而不是“On”, 作为该指令的一个值,例如,输出缓冲=4096。从PHP开始 4.3.5,此指令在PHP-CLI中始终处于关闭状态

另一方面,由于默认值为0,因此我假设将其设置为无效且看不到任何值与将其设置为0相同:-