Увеличение времени выполнения PHP скрипта с Nginx

Автор: | 08.03.2015

Если у вас есть большой проэкт или сервер с ограниченными ресурсами, то Вы будете часто видеть «504 Gateway Time-out» ошибку.

Вы можете выполнить приведенные ниже шаги, чтобы увеличить значение тайм-аута. В PHP по умолчанию 30 секунд.

Изменения в php.ini

Если вы хотите изменить максимальное время выполнения для PHP скриптов из 30 секунд (по умолчанию) до 300 секунд.

nano /etc/php5/fpm/php.ini

Установите…

max_execution_time = 300

В Apache PHP работает как модуль, этих изменений будет достаточно. Но в нашем случае мы должны сделать изменения еще в нескольких местах.

Изменения в PHP-FPM

Это нужно, если Вы раскоментировали параметр request_terminate_timeout ранее. По умолчанию он закоментирован и берет значение max_execution_time found из php.ini

Открываем…

nano /etc/php5/fpm/pool.d/www.conf

Устанавливаем…

request_terminate_timeout = 300

Изменения в Nginx Config

Увеличение time limit-а для одного домена example.com

nano /etc/nginx/sites-available/example.com
location ~ \.php$ {
	include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
	fastcgi_read_timeout 300; 
}

Если Вы хотите увеличить time-limit для всех доменов на вашем сервере, Вы можете отредактировать главный конфигурационный файл nginx.conf:

nano /etc/nginx/nginx.conf

Добавить следующий параметр в http{..} секцию

http {
	#...
        fastcgi_read_timeout 300; 
	#...
}

Перезагружаем PHP-FPM и Nginx

service php5-fpm restart
service nginx restart