¿Cómo puedo habilitar la transmisión (flush/ob_flush) en la transmisión CentOS 8 con PHP-FPM?

¿Cómo puedo habilitar la transmisión (flush/ob_flush) en la transmisión CentOS 8 con PHP-FPM?

Tengo una nueva instalación de CentOS 8 Stream con Apache y configuración PHP-FPM usando todos los valores predeterminados (el valor predeterminado es PHP 7.2.24 FPM/FastCGI).

Mi aplicación usaEventos enviados por el servidorutilizando EventSourceobjetos JavaScript. Para que eso funcione, necesito la configuración de Apache/FPM para poder enviar datos al cliente cuando estén disponibles (o al menos cuando flushse realiza la llamada de PHP).

Sin embargo, FPM no hace eso. Solo generará todos los datos tan pronto como finalice el script. (Que no es lo que quiero...)

¿Cómo puedo configurar PHP-FPM en Centos8 para que pueda vaciar datos durante el procesamiento del script?

Intenté agregar una Proxydirectiva en /etc/httpd/conf.d/php.conf:

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

justo después </FilesMatch>, pero eso no pareció funcionar.

Respuesta1

Esta no es una respuesta a la pregunta, sino una solución (temporal): deshabilite PHP-FPM y vuelva a mod_php.

En CentOS 8, esto es bastante simple, en /etc/httpd/conf.modules.d/00-mpm.conf, descomente esta línea:

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

y comenta la línea para mpm_event.

Luego agrega esto a httpd.conf:

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

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

información relacionada