Miklix

Како подесити одвојене ПХП-ФПМ групе у НГИНКС-у

Објављено: 15. фебруар 2025. 11:56:53 UTC
Последње ажурирано: 12. јануар 2026. 08:30:25 UTC

У овом чланку, прегледаћу кораке конфигурације потребне за покретање више PHP-FPM базена и повезивање NGINX-а са њима путем FastCGI-ја, омогућавајући раздвајање процеса и изолацију између виртуелних хостова.


Ова страница је машински преведена са енглеског како би била доступна што већем броју људи. Нажалост, машинско превођење још увек није усавршена технологија, тако да може доћи до грешака. Ако желите, можете погледати оригиналну енглеску верзију овде:

How to Set Up Separate PHP-FPM Pools in NGINX

Информације у овом посту су засноване на NGINX 1.4.6 и PHP-FPM 5.5.9 који раде на Ubuntu Server 14.04 x64. Можда важе, али и не важе за друге верзије. (Ажурирање: Могу да потврдим да од Ubuntu Server 24.04, PHP-FPM 8.3 и NGINX 1.24.0, сва упутства у овом посту и даље раде)

Постоји низ предности подешавања више PHP-FPM подпроцесних базена у односу на покретање свега у истом базену. Безбедност, раздвајање/изолација и управљање ресурсима падају на памет као неке од главних.

Без обзира на вашу мотивацију, овај пост ће вам помоћи да то урадите :-)

Део 1 – Подесите нови PHP-FPM пул

Прво, потребно је да пронађете директоријум у коме PHP-FPM чува своје конфигурације базена. На Ubuntu 14.04, то је подразумевано /etc/php5/fpm/pool.d. Вероватно већ постоји датотека под називом www.conf, која садржи конфигурацију за подразумевани базен. Ако нисте раније погледали ту датотеку, вероватно би требало да је прегледате и прилагодите подешавања за своју конфигурацију, јер су подразумевана подешавања за прилично слаб сервер, али за сада само направите копију како не бисмо морали да почињемо од нуле:

sudo cp www.conf mypool.conf

Наравно, замените „mypool“ са било којим именом под којим желите да се ваш базен зове.

Сада отворите нову датотеку користећи nano или било који други уређивач текста који вам одговара и прилагодите је својој намени. Вероватно ћете желети да подесите бројеве подпроцеса и евентуално под којим корисником и групом се пул покреће, али два подешавања која апсолутно морате променити су име пула и сокет који слуша, иначе ће доћи до сукоба са постојећим пулом и ствари ће престати да раде.

Име базена је близу врха датотеке, у угластим заградама. Подразумевано је [www]. Промените ово у шта год желите; предлажем исто као што сте назвали конфигурациону датотеку, па за потребе овог примера промените у [mypool]. Ако га не промените, изгледа да ће PHP-FPM учитати само прву конфигурациону датотеку са тим именом, што ће вероватно довести до проблема.

Затим треба да промените сокет или адресу коју слушате, што је дефинисано директивом listen. Подразумевано, PHP-FPM користи Unix сокете, тако да ће ваша директива listen вероватно изгледати овако:

listen = /var/run/php5-fpm.sock

Можете га променити у било које важеће име које желите, али опет, предлажем да се држите нечег сличног имену конфигурационе датотеке, тако да бисте га, на пример, могли подесити на:

listen = /var/run/php5-fpm-mypool.sock

У реду, сачувајте датотеку и изађите из уређивача текста.

Део 2 – Ажурирајте конфигурацију виртуелног хоста NGINX

Сада треба да отворите NGINX виртуелну датотеку хоста са FastCGI конфигурацијом коју желите да промените у нови пул – или боље речено, да се повежете на нови сокет.

Подразумевано на Ubuntu 14.04, ови се чувају у /etc/nginx/sites-available, али се могу дефинисати и на другом месту. Вероватно ви најбоље знате где се налазе конфигурације вашег виртуелног хоста ;-)

Отворите одговарајућу конфигурациону датотеку у вашем омиљеном уређивачу текста и потражите директиву fastcgi_pass (која мора бити у контексту локације) која дефинише PHP-FPM сокет. Морате променити ову вредност тако да се подудара са новом конфигурацијом PHP-FPM базена коју сте направили у првом кораку, тако да бисте, настављајући наш пример, променили ово у:

Фастцги_пасс уникс:/вар/рун/пхп5-фпм-мипоол.соцк;

Затим сачувајте и затворите и ту датотеку. Скоро сте завршили.

Део 3 – Поново покрените PHP-FPM и NGINX

Да бисте применили измене конфигурације које сте направили, поново покрените и PHP-FPM и NGINX. Можда ће бити довољно поново покренути систем уместо поновног покретања, али сматрам да је то помало несигурно, у зависности од тога која подешавања се мењају. У конкретном случају, желео сам да стари PHP-FPM подпроцеси одмах буду угашени, па је било потребно поново покренути PHP-FPM, али за NGINX поновно учитавање може бити довољно. Испробајте сами.

sudo service php5-fpm restart
sudo service nginx restart

И вуала, готови сте. Ако сте све урадили исправно, виртуелни хост који сте изменили сада би требало да користи нови PHP-FPM пул и да не дели подређене процесе ни са једним другим виртуелним хостовима.

Поделите на БлуескиПоделите на ФејсбукуДелите на ЛинкедИнуПодели на Тумблр-уПодели на КсДелите на ЛинкедИнуПин на Пинтерест-у

Миккел Цхристенсен

О аутору

Миккел Цхристенсен
Миккел је креатор и власник миклик.цом. Има преко 20 година искуства као професионални компјутерски програмер/програмер софтвера и тренутно је запослен са пуним радним временом у великој европској ИТ корпорацији. Када не пише блог, своје слободно време проводи на широком спектру интересовања, хобија и активности, што се у извесној мери може одразити на разноврсност тема обрађених на овој веб страници.