Я пытаюсь отключить ограничение времени в PHP-скрипте
set_time_limit(0);
Но это не работает; сценарий по-прежнему прерван после того, как система по умолчанию 30 секунд. Параметр max_execution_time
– как показано phpinfo()
после set_time_limit(0)
– по-прежнему показывает 30 секунд как для phpinfo()
так и для локального значения. Он также показывает, что безопасный режим выключен.
Вы не знаете, что пошло не так? Это PHP 5.3.3 (cli), работающий на CentOS 6.2 с Apache 2.2.15.
Теперь я смог решить проблему. Причина была
php_admin_value max_execution_time "30"
… в конфигурации виртуального хоста . Если он установлен, ограничение по времени не может быть переопределено скриптом PHP. И решение состоит в том, чтобы установить его либо в php.ini вместо Apache config, что позволяет переопределить …
max_execution_time = 30
или для определения исключений для определенных каталогов в конфигурации apache, например
<Directory /path/to/my/scripts> php_admin_value max_execution_time "600" </Directory>
Я также пытался определить исключения для отдельных файлов с помощью директивы <Files>, но это не сработало.