Как выполнить медленный PHP-скрипт, чтобы не было таймаута?

Есть тяжелый PHP-скрипт, который должен выполняться за несколько минут. Но он никогда не доходит до конца, прерываясь по таймауту. Как это обойти?

Теги:

Ответы

Универсальный способ - выполнить скрипт из шела, в обход веб-сервера.

1. Узнать системный путь к php:

which php

2. Передать путь к скрипту параметром к интерпретатору php:

/usr/local/bin/php /path/to/your/script.php

Если нужно передать GET-параметр, можно попробовать так:

/usr/local/bin/php /path/to/your/script.php var=value

Если нужно сохранить вывод в файл:

/usr/local/bin/php /path/to/your/script.php var=value > /tmp/file.txt

Если нужно выводить результат постранично:

/usr/local/bin/php /path/to/your/script.php var=value | less

Если php работает как модуль апача, то можно просто увеличить лимиты времени исполнения:

В php.ini max_execution_time

В httpd.conf TimeOut

Отключите в .htaccess таймаут и будет Вам счастье. Правда не факт, что это Вам поможет. На уровне хостинга может все равно выключить скрипт. К хостингу обратитесь.

В начале скрипта указать set_time_limit(0);

Отправить комментарий

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

Подробнее о форматировании

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
5 + 7 16 + 8 плюс 3 0