Получение ошибки максимального времени выполнения PHP

#php

#php

Вопрос:

Я получаю ошибку PHP «Превышено максимальное время выполнения 60 секунд», даже несмотря на то, что настройки max_execution_time и max_input_time в моем php.ini установлены на 180. Я также пытался заставить свой скрипт использовать set_time_limit(0); и ini_set('max_execution_time', 180); , но это не помогает. Я убедился, что используется правильный файл php.ini, проверил phpinfo() вывод, все значения настроек соответствуют моим ожиданиям. Строка кода, выдающая ошибку, вызывает curl_exec(), поэтому я также пытаюсь добавить curl_setopt($ch, CURLOPT_TIMEOUT, 180); и безуспешно, по-прежнему получая ту же ошибку 60-секундного тайм-аута. Заканчиваются идеи относительно того, какая другая настройка тайм-аута может быть причиной этого. Среда — Windows с PHP, работающим как модуль FastCGI.

Комментарии:

1. Возможно, основной вопрос, но вы не забыли перезапустить свой веб-сервер после внесения изменений в файл php.ini?

2. Я надеюсь, что после изменения в ini вы бы перезапустили сервер… Если нет, то, пожалуйста, перезапустите n проверьте. Должно быть, сработало написание set_time_limit(0).

3. Я сделал. Как я уже сказал, даже проверил в phpinfo (), чтобы убедиться, что значения были отражены, и они не были без перезапуска веб-сервера.

4. Работает ли это хотя бы в версии CLI? Также изменен fpm.ini? Модули Apache (например, mod_reqtimeout)? Настройки FastCGI -* timeout ? Что ini_get("max_… дает во время выполнения? Пробовал .user.ini переопределить?

5. @mario Спасибо, что наставил меня на правильный путь. Я запустил ini_get () именно там, где произошел сбой вызова, и это не дало ожидаемого значения. Я поискал еще немного и обнаружил, что в другом месте был фрагмент кода, который переопределял его. Проблема решена. Еще раз большое спасибо. Если вы хотите ввести ответ в духе выполнения ini_get(), где вызов завершается неудачно, и поиска других экземпляров ini_set() или set_time_limit() Я отмечу это как правильный ответ.

Ответ №1:

Запустите ini_get() именно там, где происходит сбой вызова, и посмотрите, дает ли это ожидаемое значение. Если нет, выполните поиск в своем коде чего-либо, переопределяющего ожидаемое значение.