Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Неустраняемая ошибка mod_fcgid (Apache) - таймаут скрипта (http://forum.oszone.net/showthread.php?t=203557)

ANR 31-03-2011 13:19 1647943

Неустраняемая ошибка mod_fcgid (Apache) - таймаут скрипта
 
Добрый день.

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

Дело в том, что есть скрипт PHP, который выполняет достаточно большие расчеты и не успевает справиться по времени в 30 секунд. Во всех возможных местах (max_execution_time и пр.), кроме одной загвоздки. Она пишется на сервере в лог:

Цитата:

Premature end of script headers: admin.php, referer: /admin.php [Thu Mar 31 00:12:16 2011] [warn] mod_fcgid: read data timeout in 31 seconds
Поискав в интернете нашел, что этот таймаут можно отрегулировать в настройках httpd.conf путем

<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
IPCCommTimeout 40
IPCConnectTimeout 10

DefaultMaxClassProcessCount 2
DefaultMinClassProcessCount 1
MaxProcessCount 100
</IfModule>

Но увы, применение выделенных выше настроек не помогает. В чем тогда еще может быть проблема?

Конфигурация сервера:
OS: Debian Linux 5
Apache/2.2.9 (Debian) DAV/2 SVN/1.5.1
PHP 5.2.6

Буду благодарен советам.

dmitryst 31-03-2011 14:23 1648029

Цитата:

Цитата ANR
Premature end of script headers: admin.php, referer: /admin.php [Thu Mar 31 00:12:16 2011] [warn] mod_fcgid: read data timeout in 31 seconds »

пусть скрипт в самом начале работы хидеры выдает.

Цитата:

Цитата ANR
есть скрипт PHP, который выполняет достаточно большие расчеты и не успевает справиться по времени в 30 секунд. »

попробуйте разделить задачу.

mar 31-03-2011 15:02 1648076

Цитата:

Цитата dmitryst
Цитата ANR:
есть скрипт PHP, который выполняет достаточно большие расчеты и не успевает справиться по времени в 30 секунд. »
попробуйте разделить задачу. »

Совершенно согласна. Вряд ли Вам нужны расчеты в режиме реального времени? А если не нужны, нужно разделить задачу, максимум выкинуть в скрипт, который работал бы по крону, так, чтобы на web-часть оставался бы самый минимум

Sham 31-03-2011 15:34 1648125

пусть отсылает Content-Length и Connection: Close. Главное, чтобы сервер потом не рубил php-процесс.

Вообще, такая реализация довольно распространена (у вбулетин задачи по псевдо-картинке запускаются).


Время: 17:45.

Время: 17:45.
© OSzone.net 2001-