如何使用 PHP-FPM 在 CentOS 8 串流中啟用串流 (flush/ob_flush)?

如何使用 PHP-FPM 在 CentOS 8 串流中啟用串流 (flush/ob_flush)?

我使用所有預設設定(預設為 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/

相關內容