【问题标题】:Azure / Shared Web App / PHP / PhpManager / output_bufferingAzure / 共享 Web 应用程序 / PHP / PhpManager / output_buffering
【发布时间】:2016-08-17 11:19:52
【问题描述】:

正如标题所描述的,我有一个 Azure 中的共享 Web 应用程序,安装了 PHP 5.4 以及站点扩展 PhpManager(通过 Kudu)。我已经使用 PhpManager 将主 php.ini 文件和变量 output_buffering 从默认的 4096 修改为“Off”。

设置保存(绿色勾号),如果您重新访问配置,它仍然存在,但如果您查看 PHP 信息(即使在重新启动实例后),输出缓冲变量不受尊重,它仍然显示 4096,尽管有 php.ini 文件配置显示“关闭”

我尝试将 .user.ini 和自定义 ini 路径都附加到新行;

output_buffering = Off

此更改只会导致 output_buffering 在 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

【问题讨论】:

    标签: php azure output-buffering


    【解决方案1】:

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

    Use a custom PHP runtime on Azure Web App类似,但我们将使用默认安装的php cgi执行应用程序并手动创建配置。

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

    <configuration>
          <system.webServer>
             <handlers>
                <add name="PHP-FastCGI"
                    path="*.php"
                    verb="GET,HEAD,POST"
                    modules="FastCgiModule"
                    scriptProcessor="D:\Program Files (x86)\PHP\v5.4\php-cgi.exe"
                    resourceType="Either"
                    requireAccess="Script" 
                    responseBufferLimit="0" />
             </handlers>
          </system.webServer>
    </configuration>
    

    【讨论】:

      【解决方案2】:

      尝试将其设置为 0:

      output_buffering = 0
      

      从文档中,您可以看到此配置参数需要一个布尔值或整数。当我测试它时,我只能让它按照我使用 int 时的预期方式运行。

      output_buffering 布尔值/整数

      你可以通过设置这个来为所有文件启用输出缓冲 指示“开”。如果您希望将缓冲区的大小限制为 特定大小 - 您可以使用最大字节数而不是“开”, 作为该指令的值(例如,output_buffering=4096)。从 PHP 开始 4.3.5,该指令在 PHP-CLI 中总是关闭。

      另一方面,由于默认值为 0,我假设将其设置为无效的值并看到“无值”与将其设置为 0 相同。:-)

      【讨论】:

        猜你喜欢
        • 2016-01-10
        • 1970-01-01
        • 2012-05-04
        • 1970-01-01
        • 2018-07-18
        • 2012-04-05
        • 1970-01-01
        • 2014-07-07
        • 2012-08-13
        相关资源
        最近更新 更多