我新安装了 CentOS 8 Stream,其中 Apache 和 PHP-FPM 设置均使用默认设置(默认为 PHP 7.2.24 FPM/FastCGI)。
我的应用程序使用服务器发送事件使用 JavaScriptsEventSource
对象。要实现该功能,我需要设置 Apache/FPM,以便在数据可用时(或至少在进行 PHPflush
调用时)将数据发送到客户端。
但是,FPM 不会这样做。它只会在脚本完成后立即输出所有数据。(这不是我想要的……)
如何在 Centos8 上配置 PHP-FPM,以便它可以在处理脚本期间刷新数据?
我尝试Proxy
在中添加指令/etc/httpd/conf.d/php.conf
:
<Proxy "fcgi://localhost" enablereuse=on flushpackets=on max=10>
</Proxy>
之后就立即这么做</FilesMatch>
,但似乎没有效果。
答案1
这不是问题的答案,而是一个(临时的)解决方法:禁用 PHP-FPM 并切换回mod_php
。
在 CentOS 8 中,这非常简单,/etc/httpd/conf.modules.d/00-mpm.conf
取消注释此行:
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
并注释掉 的行mpm_event
。
然后将其添加到httpd.conf
:
<IfModule prefork.c>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 150
MaxConnectionsPerChild 0
</IfModule>
来源:https://www.linode.com/docs/guides/how-to-install-apache-web-server-centos-8/