我在 Apache 上使用 php 8.0 fpm 和 proxy_fcgi。
Server version: Apache/2.4.58 (Ubuntu)
我有一个 PHP 脚本,需要大约 20 秒才能执行... 我想要一个显示完成百分比的进度条。 我正在使用 javascript 函数与 PHP 端的 flash() 和 ob_flush() 结合使用来修改进度条。
$Flush_String=str_repeat(".", 4100);//for php flush purposes...
echo "<script type='text/javascript'>Update_Progress($percent,\"$text\")</script>";
echo "<script type='text/javascript'>document.getElementById(\"nothing_div\").innerHTML=\"$Flush_String\";</script>";//for flush purposes...
ob_flush();
flush();
但是,apache 似乎正在自行缓冲...
我尝试将其包含在我的 Apache 配置文件的 VirtualHost 部分中
<Proxy "fcgi://localhost/" enablereuse=on flushpackets=on max=10>
</Proxy>
但这让我的服务器抛出一些奇怪的 proxy_fcgi:error
有人对在 Apache2 上使用 php-fpm 成功刷新有什么建议吗?
还有其他创建进度条的策略吗?
谢谢
好的,根据Utmost Creator的评论,我这样做了:
header('Content-Encoding: none');
(ob_implicit_flush()、flush()、ob_flush() - 不适用于远程服务器)
进度条现在工作正常......
但是我会继续尝试一些东西,因为这个解决方案似乎有点变化无常,因为有时像
session_start();
这样的东西会破坏解决方案......
谢谢!