Как увеличить max_execution_time?
Конечно я в курсе как, но не срабатывает. Делаю так:
set_time_limit(500); ini_set('max_execution_time', 500); echo ini_get('max_execution_time'); |
set_time_limit(500); ini_set('max_execution_time', 500); echo ini_get('max_execution_time');
Выводит 500, но скрипт 60 секунд работает. Если сразу вывести echo ini_get('max_execution_time'); то будет 120.
Я смотрел в phpinfo где лежит php.ini там путь /opt/php82/etc там внутри пустой php.ini если в него вписать max_execution_time = 500 то ничего не меняется echo ini_get('max_execution_time' выводит 120. PHP работает в режиме CGI. Я так понимаю php.ini не может быть пустой, где же тогда настоящий?
Что можно поделать чтоб реально увеличить время выполнения срипта.
Вообще по умолчанию 120 там стоит, а скрипт через 60 секнуд выдаёт 504 Gateway Time-out. Если уменьшить кол-во обрабатываемых данных, то скрипт успешно завершается. Почему он даже 2 минуты не работает, как уже стоит?
Дополнительно:
Смотрите ещё и сервер, если cgi то скорее всего апач. Лучше настроить на fpm
504 Gateway Time-out выдает не сам скрипт, а reverse proxy перед ним. Скорее всего nginx (внимательно глянуть страничку с ошибкой) . В его конфигах и смотреть значения timeout.
По всей системe запустить:
find / -name php.ini
- снизу написано на странице ошибки nginx/1.24.0
- Если не ошибаюсь, а я могу, то еще браузер может обрывать длинные запросы.
И в целом, долгие запросы - явно не для браузера. Или крон/комманда, или оптимизировать выполнение скрипта.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для увеличения значения параметра max_execution_time в PHP, который отвечает за максимальное время выполнения скрипта, можно использовать несколько способов в зависимости от доступа к конфигурационным файлам сервера.
1. Изменение значения в php.ini:
Откройте файл php.ini, который находится в директории конфигурации PHP (обычно это /etc/php/php.ini или C:\php\php.ini). Найдите строку с параметром max_execution_time и увеличьте значение (например, до 300 секунд):
max_execution_time = 300
Сохраните изменения и перезапустите веб-сервер.
2. Изменение значения в .htaccess:
Если у вас нет доступа к php.ini, можно попробовать изменить значение параметра max_execution_time непосредственно в .htaccess файле вашего сайта. Добавьте следующую строку:
php_value max_execution_time 300php_value max_execution_time 300
Сохраните файл и проверьте, что изменения вступили в силу.
3. Изменение значения в скрипте:
Если вам необходимо увеличить max_execution_time только для конкретного скрипта, можно использовать функцию ini_set в самом скрипте:
ini_set('max_execution_time', 300);
Убедитесь, что эта строка находится в начале скрипта, до того как начнется выполнение какого-либо кода.
Помните, что увеличение значения параметра max_execution_time может повлиять на производительность сервера, поэтому рекомендуется использовать его с осторожностью и только при необходимости.