Miklix

Hvernig á að setja upp aðskildar PHP-FPM laugar í NGINX

Birt: 19. mars 2025 kl. 21:26:57 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.


Þessi síða var vélþýdd úr ensku til að gera hana aðgengilega sem flestum. Því miður er vélþýðing ekki enn fullkomin tækni, svo villur geta komið upp. Ef þú vilt geturðu skoðað upprunalegu ensku útgáfuna hér:

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, en það er ekki víst. (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 fyrirmælin í þessari færslu ennþá.)

Það eru ýmsir kostir við að setja upp mörg PHP-FPM barnaprófíl í stað þess að keyra allt í sama prófílnum. Öryggi, aðskilnaður/afmarkun og auðlindastýring koma strax upp í hugann sem nokkur helstu dæmi.

Óháð hvaða hvati þú hefur, mun þessi færsla hjálpa þér að gera það :-)


Hluti 1 – Settu upp nýjan PHP-FPM prófíl

Fyrst þarftu að finna möppuna þar sem PHP-FPM geymir prófílsstillingarnar sínar. Á Ubuntu 14.04 er þetta /etc/php5/fpm/pool.d að venju. Það er líklega þegar til skrá þar sem heitir www.conf, sem heldur stillingunum fyrir sjálfgefnan prófíl. Ef þú hefur ekki skoðað þessa skrá áður þá er líklegt að þú ættir að fara í gegnum hana og stilla hana fyrir þinn uppsetningu, því sjálfgefnar stillingar eru fyrir frekar undirstærðan vefþjón, en fyrir núna getur þú bara gert afrit af henni svo þú þurfir ekki að byrja frá grunni:

sudo cp www.conf mypool.conf

Auðvitað, skiptu út "mypool" með því sem þú vilt að prófíllinn þinn heiti.

Nú opnaðu nýju skrána með nano eða hvaða textaritil sem þú kýst og aðlagaðu hana að þínum tilgangi. Þú munt líklega vilja breyta fjölda barnaprófílanna og mögulega hver notandi og hópur prófílsins keyrir undir, en tveir stillingar sem þú verður að breyta eru nafn prófílsins og hlekkurinn sem hann er að hlusta á, annars mun það skerast við núverandi prófíl og hlutir munu hætta að virka.

Nafn prófílsins er nálægt toppi skrárinnar, umkringt ferningum. Að venju er það [www]. Breyttu þessu í það sem þú vilt; ég mæli með að þú veljir það sama og þú nefndir í stillingarskránni, svo fyrir þennan dæmi breyttu því í [mypool]. Ef þú breytir því ekki virðist það sem PHP-FPM hleður aðeins fyrstu stillingarskrána með því nafni, sem líklega mun eyðileggja hlutina.

Þú þarft einnig að breyta hlekknum eða heimilisfanginu sem þú ert að hlusta á, sem er skilgreint með listen fyrirmælum. Að venju notar PHP-FPM Unix hlekki svo þitt listen fyrirmæli mun líklega líta út eins og þetta:

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

Þú getur breytt því í hvaða gildan heiti sem þú vilt, en aftur, ég mæli með að þú haldir þig við eitthvað sem líkist stillingarskránum, svo þú gætir til dæmis sett það sem:

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

Allt í allt, vistaðu skrána og lokaðu textaritlinum.


Hluti 2 – Uppfærðu NGINX sýndarforsíðu stillingu

Nú þarftu að opna NGINX sýndarforsíðu skrána með FastCGI stillingunni sem þú vilt breyta í nýjan prófíl – eða réttara sagt, tengja við nýja hlekkin.

Að venju á Ubuntu 14.04 eru þessar geymdar undir /etc/nginx/sites-available, en þær geta einnig verið skilgreindar annars staðar. Þú veist líklega best hvar sýndarforsíðurnar þínar eru staðsettar ;-)

Opnaðu viðeigandi stillingarskrá í uppáhalds textaritlinum þínum og leitaðu að fastcgi_pass fyrirmælinu (sem verður að vera í staðsetningarsamhengi) sem skilgreinir PHP-FPM hlekkinn. Þú verður að breyta þessu gildi svo það samræmist nýju PHP-FPM prófílsstillingunni sem þú gerðir í fyrsta hluta, svo samkvæmt okkar dæmi myndir þú breyta þessu í:

fastcgi_pass unix:/var/run/php5-fpm-mypool.sock;

Síðan vistaðu og lokaðu þeirri skrá líka. Þú ert næstum búin/n núna.


Hluti 3 – Endurræstu PHP-FPM og NGINX

Til að beita stillingabreytingunum sem þú hefur gert, endurræstu bæði PHP-FPM og NGINX. Það gæti verið nóg að hlaða upp í stað þess að endurhæfa, en mér finnst það stundum vera örlítið óáreiðanlegt, eftir því hvaða stillingar eru breyttar. Í þessu tilviki vildi ég að gömlu PHP-FPM barnaprófílarnir myndu deyja strax, svo endurræsing á PHP-FPM var nauðsynleg, en fyrir NGINX getur það verið nóg að hlaða upp. Prófaðu það sjálf/ur.

sudo service php5-fpm restart
sudo service nginx restart

Og voila, þú ert búin/n. Ef þú gerðir allt rétt ætti sýndarforsíðan sem þú breyttir nú að nota nýja PHP-FPM prófílinn og ekki deila barnaprófílum með öðrum sýndarforsíðum.

Deildu á BlueskyDeildu á FacebookDeildu á LinkedInDeildu á TumblrDeildu á XDeildu á LinkedInFestu á Pinterest

Mikkel Christensen

Um höfundinn

Mikkel Christensen
Mikkel er skapari og eigandi miklix.com. Hann hefur yfir 20 ára reynslu sem faglegur tölvuforritari/hugbúnaðarhönnuður og er nú í fullu starfi hjá stóru evrópsku upplýsingatæknifyrirtæki. Þegar hann er ekki að blogga eyðir hann frítíma sínum í margs konar áhugamál, áhugamál og athafnir, sem geta að einhverju leyti endurspeglast í margs konar efni sem fjallað er um á þessari vefsíðu.