Есть тяжелый 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);
Подробнее о форматировании
★ Как просканировать debian-сервер на CVE
Задать вопрос
Ответы
Универсальный способ - выполнить скрипт из шела, в обход веб-сервера.
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);
Отправить комментарий