gpt4 book ai didi

php - Azure/共享 Web 应用程序/PHP/PhpManager/output_buffering

转载 作者:行者123 更新时间:2023-12-03 00:51:25 24 4
gpt4 key购买 nike

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

该设置保存(绿色勾号),并且在您重新访问配置时仍然保留,但如果您查看 PHP 信息(即使在重新启动实例后),则不考虑 output_buffering 变量,尽管有 php.ini 文件,它仍然显示 4096配置显示“关闭”

我尝试附加到 .user.ini 以及自定义 ini 路径以添加新行;

output_buffering = Off

此更改只会导致 PHP 信息中的 output_buffering 更改为“无值”,但不会导致所需的“关闭”结果。

非常感谢有关禁用此功能的任何指导 - 我已经尝试了多种 ob_flush()lush() 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 中的响应缓冲区。

类似于 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>

关于php - Azure/共享 Web 应用程序/PHP/PhpManager/output_buffering,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38995218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com