Hvernig á að setja upp aðskildar PHP-FPM laugar í NGINX
Birt: 19. mars 2025 kl. 21:26:57 UTC
Síðast uppfært: 12. janúar 2026 kl. 08:30:28 UTC
Í þessari grein fer ég yfir stillingarskrefin sem þarf til að keyra margar PHP-FPM laugar og tengja NGINX við þær í gegnum FastCGI, sem gerir kleift að aðgreina ferli og einangra milli sýndarhýsinga.
How to Set Up Separate PHP-FPM Pools in NGINX
Upplýsingarnar í þessari færslu eru byggðar á NGINX 1.4.6 og PHP-FPM 5.5.9 sem keyra á Ubuntu Server 14.04 x64. Þær gætu verið gildar fyrir aðrar útgáfur eða ekki. (Uppfærsla: Ég get staðfest að frá og með Ubuntu Server 24.04, PHP-FPM 8.3 og NGINX 1.24.0 virka allar leiðbeiningarnar í þessari færslu enn.)
Það eru nokkrir kostir við að setja upp margar PHP-FPM undirferlalaugar frekar en að keyra allt í sama lauginni. Öryggi, aðskilnaður/einangrun og auðlindastjórnun koma upp í hugann sem nokkur helstu atriðin.
Óháð því hver hvatning þín er, þá mun þessi færsla hjálpa þér að gera það :-)
1. hluti – Setja upp nýja PHP-FPM laug
Fyrst þarftu að finna möppuna þar sem PHP-FPM geymir stillingar fyrir laugina. Í Ubuntu 14.04 er þetta sjálfgefið /etc/php5/fpm/pool.d. Þar er líklega þegar skrá sem heitir www.conf, sem inniheldur stillingar fyrir sjálfgefna laugina. Ef þú hefur ekki skoðað þá skrá áður eru líkur á að þú ættir að fara í gegnum hana og fínstilla stillingarnar í henni fyrir uppsetninguna þína þar sem sjálfgefnar stillingar eru fyrir frekar vanmetinn netþjón, en í bili skaltu bara gera afrit af henni svo við þurfum ekki að byrja frá grunni:
Auðvitað skaltu skipta út „mypool“ fyrir það sem þú vilt að sundlaugin þín heiti.
Opnaðu nú nýju skrána með nano eða hvaða textaritli sem þú kýst og aðlagaðu hana að þínum þörfum. Þú vilt líklega fínstilla númer undirferlanna og hugsanlega hvaða notanda og hóp laugin keyrir undir, en tvær stillingar sem þú verður algerlega að breyta eru nafn laugarinnar og tengilinn sem hún hlustar á, annars mun hún stangast á við núverandi laug og hlutirnir hætta að virka.
Nafnið á lauginni er efst í skránni, innan hornklofa. Sjálfgefið er að það sé [www]. Breytið þessu í það sem þið viljið; ég legg til að þú notir það sama og þú nefndir stillingarskrána, svo í þessu dæmi breytið því í [mypool]. Ef þú breytir því ekki, virðist sem PHP-FPM muni aðeins hlaða fyrstu stillingarskránni með því nafni, sem líklegt er að bili.
Þú þarft þá að breyta tengilinum eða vistfanginu sem þú ert að hlusta á, sem er skilgreint af hlusta-tilskipuninni. Sjálfgefið er að PHP-FPM notar Unix tengilinsur svo hlusta-tilskipunin þín mun líklega líta svona út:
Þú getur breytt því í hvaða gilt nafn sem þú vilt, en aftur, ég legg til að þú haldir þig við eitthvað svipað og nafnið á stillingarskránni, svo þú gætir til dæmis stillt það á:
Allt í lagi, vistaðu þá skrána og farðu úr textaritlinum.
2. hluti – Uppfæra stillingar NGINX sýndarhýsingaraðila
Nú þarftu að opna NGINX sýndarhýsingarskrána með FastCGI stillingunum sem þú vilt breyta í nýja laug - eða öllu heldur tengjast nýja falsinum.
Sjálfgefið í Ubuntu 14.04 eru þetta geymd undir /etc/nginx/sites-available, en einnig er hægt að skilgreina þau annars staðar. Þú veist líklega best hvar stillingar sýndarhýsingarforritsins eru staðsettar ;-)
Opnaðu viðeigandi stillingarskrá í uppáhalds textaritlinum þínum og leitaðu að fastcgi_pass tilskipuninni (sem verður að vera í staðsetningarsamhengi) sem skilgreinir PHP-FPM tengið. Þú verður að breyta þessu gildi þannig að það passi við nýju PHP-FPM geymslustillingarnar sem þú gerðir í fyrsta skrefi, þannig að ef við höldum áfram með dæmið okkar myndirðu breyta þessu í:
Fastcgi_pass unix:/var/run/php5-fpm-mypool.sokkur;
Vistaðu síðan og lokaðu þeirri skrá líka. Þú ert næstum búinn núna.
3. hluti – Endurræsa PHP-FPM og NGINX
Til að virkja stillingarbreytingarnar sem þú hefur gert skaltu endurræsa bæði PHP-FPM og NGINX. Það gæti verið nóg að endurræsa í stað þess að endurræsa, en mér finnst það vera svolítið misjafnt, allt eftir því hvaða stillingum er breytt. Í þessu tilviki vildi ég að gömlu PHP-FPM undirferlarnir dæju strax, svo það þurfti að endurræsa PHP-FPM, en fyrir NGINX gæti endurræsing verið nóg. Prófaðu það sjálfur.
sudo service nginx restart
Og voilà, þú ert búinn. Ef þú gerðir allt rétt, þá ætti sýndarvélin sem þú breyttir nú að nota nýja PHP-FPM laugina og ekki deila undirferlum með neinum öðrum sýndarvélum.
