Wie kann ich Streaming (Flush/Ob_flush) im CentOS 8-Stream mit PHP-FPM aktivieren?

Wie kann ich Streaming (Flush/Ob_flush) im CentOS 8-Stream mit PHP-FPM aktivieren?

Ich habe eine Neuinstallation von CentOS 8 Stream mit Apache und PHP-FPM-Setup unter Verwendung aller Standardeinstellungen (standardmäßig ist dies PHP 7.2.24 FPM/FastCGI).

Meine Anwendung verwendetVom Server gesendete Ereignissemithilfe von JavaScript- EventSourceObjekten. Damit das funktioniert, muss das Apache/FPM-Setup in der Lage sein, Daten an den Client zu senden, wenn diese verfügbar sind (oder zumindest, wenn ein PHP- flushAufruf erfolgt).

FPM macht das allerdings nicht. Es gibt alle Daten erst aus, wenn das Skript beendet ist. (Was ich aber nicht will ...)

Wie kann ich PHP-FPM auf Centos8 so konfigurieren, dass es während der Verarbeitung des Skripts Daten löschen kann?

Ich habe versucht, eine ProxyDirektive hinzuzufügen in /etc/httpd/conf.d/php.conf:

<Proxy "fcgi://localhost" enablereuse=on flushpackets=on max=10>
</Proxy>

gleich danach </FilesMatch>, aber das schien nicht zu funktionieren.

Antwort1

Dies ist keine Antwort auf die Frage, sondern ein (vorübergehender) Workaround: Deaktivieren Sie PHP-FPM und wechseln Sie zurück zu mod_php.

In CentOS 8 ist dies ziemlich einfach. /etc/httpd/conf.modules.d/00-mpm.confEntfernen Sie in dieser Zeile das Kommentarzeichen:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

und kommentieren Sie die Zeile für aus mpm_event.

Fügen Sie dies dann hinzu zu httpd.conf:

<IfModule prefork.c>
        StartServers              5
        MinSpareServers           5
        MaxSpareServers           10
        MaxRequestWorkers         150
        MaxConnectionsPerChild    0
</IfModule>

Quelle:https://www.linode.com/docs/guides/how-to-install-apache-web-server-centos-8/

verwandte Informationen