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

Я написал простой обход script (в php) на localhost (с 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

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

Ответ 1

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

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

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

Ответ 5

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

Это не то, что должно выполняться через браузер/веб-сервер в любом случае. Запишите его как консоль script.

Ответ 6

Если какая-либо проблема связана с 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

Ответ 7

mod_cfgid вводит другие временные рамки помимо PHP max_execution_time при выполнении php-скриптов. Какая бы ни была первая "победа".

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

IPCCommTimeout  9999

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