我使用所有預設設定(預設為 PHP 7.2.24 FPM/FastCGI)重新安裝了帶有 Apache 和 PHP-FPM 設定的 CentOS 8 Stream。
我的應用程式使用伺服器發送事件使用 JavaScriptEventSource
物件。為了使其正常工作,我需要 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/