У меня новая установка CentOS 8 Stream с Apache и настройкой PHP-FPM, использующей все настройки по умолчанию (по умолчанию установлено PHP 7.2.24 FPM/FastCGI).
Мое приложение используетСобытия отправленные серверомс использованием объекта JavaScripts EventSource
. Чтобы это работало, мне нужна настройка Apache/FPM, чтобы иметь возможность отправлять данные клиенту, когда они доступны (или, по крайней мере, когда flush
выполняется вызов PHP).
Однако FPM этого не делает. Он выведет все данные только после завершения скрипта. (Что мне не нужно...)
Как настроить PHP-FPM на Centos8, чтобы он мог сбрасывать данные во время обработки скрипта?
Я попробовал добавить 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/