Преждевременное завершение заголовков скрипта: index.php, mod_fcgid: тайм-аут чтения данных через 61 секунду

Я написал простой скрипт сканирования (на php) на локальном хосте (с 4 вариантами). Все они отлично работали на локальном хосте. Но когда я переместил их на виртуальный хостинг, два из них работали, другие выдавали внутреннюю ошибку сервера. Я посмотрел error_log и увидел эту строку:

[Wed Jan 23 22:01:02 2013] [warn] [client ***] mod_fcgid: read data timeout in 61 seconds
[Wed Jan 23 22:01:02 2013] [error] [client ***] Premature end of script headers: index.php

Я искал, но я не мог найти никакого полезного результата. Что связано с этими ошибками? Любые идеи?


person Bilal Gultekin    schedule 23.01.2013    source источник


Ответы (8)


Если вы можете получить доступ к серверу Linux, отредактируйте файл /etc/httpd/conf.d/fcgid.conf с помощью vim.
Замените FcgidIOTimeout 45 на FcgidIOTimeout 600.
Перезапустите Apache.
После этого тайм-аут Fast CGI будет устранен.

person trante    schedule 10.04.2013
comment
Это ответ на жизнь, вселенную, странные тайм-ауты! Он должен быть принятым. - person enrey; 09.12.2014
comment
@enrey hilaariousss :D - person Gogol; 07.09.2016
comment
Сошел бы с ума, если бы этого ответа не было в стеке! Спасибо - person Anyone_ph; 02.01.2017
comment
600 секунд это 10 минут. Если у вас есть скрипт, который занимает так много времени, он, вероятно, истечет время ожидания в другом месте (особенно у самого пользователя). - person roaima; 17.01.2017
comment
Сумасшедший вопрос к вам: что, если конфиг определил и FcgidMaxRequestLen, и FcgidBusyTimeout, но не *FcgidIOTimeout*? Есть ли значение по умолчанию, если оно не определено? - person Parapluie; 12.09.2017

У меня была эта проблема в экземпляре MediaTemple Grid с установкой Drupal7; оказывается, это было вызвано FastCGI; переключение на нормальный / стабильный CGI, похоже, решило проблему.

person user1193694    schedule 11.06.2014
comment
мой сайт тоже на Mediatemple, и это тоже исправило - person Kamel Labiad; 16.10.2014

Если вы используете виртуальные хосты (в моем случае это ispconfig), вам необходимо внести изменения в файлы конфигурации виртуального хоста. Эти файлы находятся под /etc/httpd/conf/sites-available для каждого виртуального хоста. Просто отредактируйте нужный файл конфигурации, найдите IPCCommTimeout и установите текущее значение на большее число. Вам может понадобиться сделать это изменение для обеих переменных в одном и том же файле конфигурации, если у вас есть обычные сайты и сайты SSL.

person Ergec    schedule 14.12.2015

По сути, ваши сценарии выполняются слишком долго для конфигурации сервера. mod_fcgid ожидает ответа php и настроен на отказ через 61 секунду. Поскольку это виртуальный хостинг, вам может быть запрещено его менять.

В любом случае это не то, что следует запускать через браузер/веб-сервер. Напишите это как консольный скрипт.

person datasage    schedule 23.01.2013

тайм-аут чтения данных за 61 секунду

Время истекло. Скорее всего, ваше время выполнения установлено на 60 секунд. Таким образом, на 61-й секунде процесс был убит и, следовательно, имел преждевременное завершение.

Вы можете настроить время ожидания (не рекомендуется) или запустить скрипт через другой источник (рекомендуется).

person Jason McCreary    schedule 23.01.2013
comment
Я бы понизил голос, ответ вообще бесполезен, и в нем не сказано, какой тайм-аут истек. Мое время выполнения составляет 150 секунд, и оно все еще истекает через 31. - person enrey; 09.12.2014
comment
Вопрос касался что вызвало ошибку, а не как ее исправить. На ваш вопрос и отрицательный отзыв, учитывая, что сообщение было отправлено mod_fcgid, вам следует настроить тайм-аут FastCGI. Я бы начал с этого, так как ответ транте объясняет больше о том, как. - person Jason McCreary; 09.12.2014

mod_cfgid вводит другие ограничения по времени, помимо max_execution_time PHP, при выполнении php-скриптов. Тот, кто придет первым, «победит».

Насколько я вижу, существует множество элементов конфигурации ограничения времени, которые рассматривает mod_cfgid, и я не эксперт, чтобы сказать, какой из них что делает, но, по крайней мере, в нашем случае добавление следующей строки

IPCCommTimeout  9999

в fcgid.conf решили наши неожиданные проблемы с тайм-аутом.

person Şafak Gezer    schedule 08.03.2015

Если какие-либо проблемы связаны с mod_fcgid, как показано ниже: _mod_fcgid: тайм-аут чтения данных в XX секундах _mod_fcgid: невозможно применить слот процесса для

Пожалуйста, исправьте эти проблемы в приоритетном порядке:

_Increasing the memory limit of php (default 128M, up to 256, 384, ... then restart apache anh check it again)
_Increasing the time out of FCGI, but not need if above is ok
person tquang    schedule 05.09.2014

Увеличьте значение max_execution_time, т.е.:

<?php
ini_set('max_execution_time', 300); # 5 minutes
...
person Pedro Lobito    schedule 09.03.2020