Как убрать Fatal error: Maximum execution time of 30 seconds?
Изначально PHP защищает ваш сервер от скриптов, исполнение которых длится более 30 секунд. Это нужная штука, позволяющая с уверенностью говорить, что нерадивый php-разработчик не положит весь сервер за несколько секунд.
Но в некоторых случаях 30 секунд — это мало. К примеру, в CRM Клиентская база. Скрипты могут выполнятся дольше 30 секунд.
Как увеличить время выполнения скрипта на PHP?
Конфигурационный файл у PHP только один и это php.ini
. Находиться он в:
/etc/php/7.3/apache2/php.ini
— если PHP используется как модуль к Apache2;/etc/php/7.3/fpm/php.ini
— если используется как отдельный демон php-fpm.
Версия PHP у Вас может отличаться. У меня это PHP 7.3.
В нем есть строка:
max_execution_time = 30
Числовое значение – это и есть время в секундах, которое отведено на исполнение каждого скрипта в отдельности.
Меняем в зависимости от потребности:
max_execution_time = 3600
После этого необходимо перезапустить демон web-сервера:
# перезапускаем nginx
sudo service nginx restart
# перезапускаем Apache2
sudo service apache2 restart
P.S. Изменение этого параметра – это сугубо личное предпочтение каждого, которое всегда зависит от конкретной задачи. Не стоит менять этот параметр на боевом web-сервере в интернете, так как это точно снизит его отказоустойчивость и доступность.
Теги: сервер Linux