当前位置:论坛首页 > Linux面板 > 讨论

【待反馈】宝塔apache如何关闭缓冲实时输出?

发表在 Linux面板2024-12-8 16:54 [复制链接] 3 180

最近在做大模型的中转,但流式输出一直无法起作用。测试发现是服务器宝塔的问题,我本地也是apache,但一点问题没有。
测试代码:


  1. <?php
  2. while (ob_get_level() > 0) {
  3.     ob_end_clean();
  4. }
  5. ini_set('output_buffering', 'off');
  6. ini_set('zlib.output_compression', 'off');
  7. header('Content-Type: text/plain');
  8. header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
  9. header('Pragma: no-cache');
  10. header('X-Accel-Buffering: no');

  11. echo "Testing streaming...\n";
  12. for ($i = 1; $i <= 5; $i++) {
  13.     echo "Message $i\n";
  14.     flush();
  15.     sleep(1);
  16. }
  17. echo "Streaming complete.\n";
复制代码
执行后,应该是1秒钟出现一行字,然后最后输出 Streaming complete.


但放到宝塔里,就是不行,宝塔里等5秒钟一起输出来,而不是逐条输出来。


我已经关了 php.ini 的,php-fpm设置也改了。
output_buffering,apache里也注释了 deflate_module,http也改为了1.1
<IfModule http2_module>Protocols http/1.1</IfModule>
output_buffering = Off
zlib.output_compression = Off
包括 httpd-default.conf 也注释了最后三行


请问如何处理,是哪里的问题呢?



已经有很多人有这个问题,一直没有答复

https://www.bt.cn/bbs/thread-9698-1-1.html
https://www.bt.cn/bbs/thread-61087-1-1.html
https://www.bt.cn/bbs/thread-141361-1-1.html
使用道具 举报 只看该作者 回复
发表于 2024-12-9 15:17:25 | 显示全部楼层
您好,您看下是不是安装了 opcache 这个扩展?如果是的话,先卸载掉
使用道具 举报 回复 支持 反对
发表于 2024-12-10 21:08:29 | 显示全部楼层
大炮运维V587 发表于 2024-12-9 15:17
您好,您看下是不是安装了 opcache 这个扩展?如果是的话,先卸载掉

没有装,还有其他原因吗?
Snipaste_2024-12-10_21-07-11.jpg


使用道具 举报 回复 支持 反对
发表于 2025-1-7 14:34:00 | 显示全部楼层
大炮运维V587 发表于 2024-12-9 15:17
您好,您看下是不是安装了 opcache 这个扩展?如果是的话,先卸载掉

亲,有解决方案吗
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

立即付费处理

工作时间:09:00至24:00

快速回复 返回顶部 返回列表