这个简单的脚本在 VM/Azure 上运行的 LAMP 服务器 (Ubuntu) 上运行不会出现问题。但是,当移植到 Azure Web 应用程序 (php) 时,相同的脚本将在 5 分钟后收到 502
或 504
错误,并且不会显示任何输出。如果行数减少到 300 以下(大约 5 分钟时间),它将运行,但只有在脚本结束时所有行才会出现。
有什么想法吗?
ini_set('max_execution_time', 0);
for($i=0;$i<600;$i++)
{
echo 'printing...'.$i."<br>";
ob_flush();
flush();
sleep(1);
}
最佳答案
先生。 Iwasa 找到了解决方案并将其发布在这里:https://learn.microsoft.com/en-us/answers/questions/578408/how-to-make-php-flush-work-on-azure-web-apps.html?childToView=578568#answer-578568 这个问题是由于我决定使用 PHP 8.0 引起的。这将导致使用 Nginx 而不是 Apache(在 Azure Web 应用程序中 - PHP)。 只需将 PHP 8 替换为 7.4 就解决了 5 分钟超时和lush() 不起作用的问题。 希望这对其他人有帮助!
关于php - 如何使 PHPlush() 在 Azure Web 应用程序上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69410378/