PHP-FPM을 사용하여 CentOS 8 스트림에서 스트리밍(flush/ob_flush)을 어떻게 활성화합니까?

PHP-FPM을 사용하여 CentOS 8 스트림에서 스트리밍(flush/ob_flush)을 어떻게 활성화합니까?

모든 기본값을 사용하여 Apache 및 PHP-FPM 설정과 함께 CentOS 8 Stream을 새로 설치했습니다(기본값은 PHP 7.2.24 FPM/FastCGI).

내 응용 프로그램은서버 전송 이벤트JavaScript EventSource객체를 사용합니다. 이를 작동시키려면 데이터가 가능할 때(또는 적어도 PHP flush호출이 이루어질 때) 클라이언트에 데이터를 보낼 수 있도록 Apache/FPM 설정이 필요합니다.

그러나 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/

관련 정보