Установка параметров php через Nginx

Есть частая задача — изменить параметры php для одного определённого url.

Например, вы импортируете на какой-то странице xml с товарами, и вам нужно увеличить именно для неё memory_limit и max_execution_time.

Правки в /etc/php5-fpm/sites-available/sitename.conf не подходят — ибо это изменит работу всего сайта, а нам нужен один конкретный url. В этой ситуации, как и во многих других, нам поможет Nginx!

Nginx крайне универсальный сервер и позволяет указывать каким образом работать с разными адресами. Мы уже наблюдали это при ограничении запросов с одного ip.

Здесь мы используем тот же метод — выделим один адрес и укажем ему собственные настройки.
location ~ ^\\/import.php$ {
	include         fastcgi_params;
	fastcgi_param	SCRIPT_FILENAME $document_root$fastcgi_script_name;
	fastcgi_param	PHP_VALUE	"memory_limit = 256M";
	fastcgi_param	PHP_VALUE	"max_execution_time = 60";
	fastcgi_pass	backend-sitename;
}

Вот и всё, при обращении на адрес /import.php, лимиты на память и время увеличатся вдвое.
Дальше можно проявить фантазию, и настроить разные параметры для выдачи каталога, личного кабинета и чего угодно.

Помимо PHP_VALUE есть еще и PHP_ADMIN_VALUE, который не позволит запускаемому скрипту изменить выставленный параметр.
Василий Наумкин
03 марта 2013, 03:24
modx.pro
5
14 582
0

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

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0