"Преждевременный конец заголовков сценария" происходит, по-видимому, случайно
Мои журналы ошибок Apache время от времени показывают ошибку "происходит преждевременное завершение заголовков скриптов", и кажется, что мой сайт возвращает 500-кратную внутреннюю ошибку сервера браузеру, когда это происходит. Странно то, что это произойдет за несколько минут, затем все вернется на круги своя.
2 ответа
В Apache Wiki есть хороший раздел об этой ошибке, в котором перечислены наиболее распространенные причины: сценарии, которые не могут правильно вывести заголовок HTTP. Похоже, что скрипт иногда вылетает или отключается по тайм-ауту, прежде чем он выводит и сбрасывает заголовок, который представляется вам как "Преждевременный конец заголовка скрипта"/500.
Если возможно, попытайтесь протестировать скрипт локально, чтобы убедиться, что он правильно выводит заголовки при любых условиях.
Если вы используете mod_fcgid или fastcgi в целом, у вас может быть несоответствие между количеством дочерних элементов и / или запросами, для которых apache настроен на использование каждого процесса fastcgi, и количеством дочерних элементов и / или запросов, используемых php-cgi. Вы настраиваете переменные среды fastcgi в файле конфигурации apache или используете скрипт-обертку для установки PHP_FCGI_CHILDREN (должен быть отключен с помощью fcgid) и PHP_FCGI_MAX_REQUESTS?
Если конфигурация apache и настройки переменных среды PHP не совпадают, то, если PHP решит, что достигло MAX_REQUESTS, прежде чем apache решит, что оно достигло, PHP завершит работу, но apache все равно будет думать, что принимает запросы.
Вы можете прочитать больше об этом, а также пример сценария оболочки и правильную конфигурацию fcgid здесь.