Miklix

Különálló PHP-FPM készletek beállítása az NGINX-ben

Megjelent: 2025. február 15. 11:52:30 UTC

Ebben a cikkben áttekintem azokat a konfigurációs lépéseket, amelyek több PHP-FPM-készlet futtatásához és az NGINX FastCGI-n keresztül történő csatlakoztatásához szükségesek, lehetővé téve a folyamatok szétválasztását és a virtuális gazdagépek közötti elkülönítést.


Ezt az oldalt angolból gépi fordítással készítettük, hogy minél több ember számára elérhető legyen. Sajnos a gépi fordítás még nem tökéletes technológia, ezért előfordulhatnak hibák. Ha szeretné, itt megtekintheti az eredeti angol nyelvű változatot:

How to Set Up Separate PHP-FPM Pools in NGINX

A bejegyzésben található információk az NGINX 1.4.6 és PHP-FPM 5.5.9 verziókon alapulnak, amelyek Ubuntu Server 14.04 x64-en futnak. Lehet, hogy más verziókra érvényes, de lehet, hogy nem. (Frissítés: Megerősíthetem, hogy az Ubuntu Server 24.04-től, a PHP-FPM 8.3-tól és az NGINX 1.24.0-tól kezdve a bejegyzésben szereplő összes utasítás továbbra is működik)

Számos előnye van annak, ha több PHP-FPM gyermekfolyamatkészletet állít be, ahelyett, hogy mindent ugyanabban a készletben futtatna. A biztonság, az elkülönítés/elszigetelés és az erőforrás-kezelés néhány fontosabb dologként jut eszembe.

Függetlenül attól, hogy mi a motivációd, ez a bejegyzés segíteni fog neked :-)


1. rész – Új PHP-FPM készlet beállítása

Először is meg kell találnia azt a könyvtárat, ahol a PHP-FPM tárolja a készletkonfigurációit. Az Ubuntu 14.04-ben ez alapértelmezés szerint az /etc/php5/fpm/pool.d. Valószínűleg már van ott egy www.conf nevű fájl, amely az alapértelmezett készlet konfigurációját tartalmazza. Ha még nem nézte meg ezt a fájlt, akkor nagy eséllyel menjen át rajta, és módosítsa a beállításokat benne, mivel az alapértelmezettek egy meglehetősen alulteljesített szerverre vonatkoznak, de egyelőre csak készítsen róla egy másolatot, hogy ne kelljen a nulláról kezdenünk:

sudo cp www.conf mypool.conf

Természetesen cserélje le a „mypool” kifejezést arra, amilyennek szeretné a medencéjét.

Most nyissa meg az új fájlt a nano vagy a kívánt szövegszerkesztő segítségével, és állítsa be a célnak megfelelően. Valószínűleg módosítani szeretné az alárendelt folyamatszámokat, és esetleg azt, hogy a készlet melyik felhasználó és csoport alatt fut, de a két beállítás, amelyet feltétlenül módosítania kell, a készlet neve és a socket, amelyet hallgat, különben ütközni fog a meglévő készlettel, és a dolgok leállnak.

A medence neve a fájl tetején található, szögletes zárójelben. Alapértelmezés szerint a [www] . Módosítsa ezt arra, amire csak akarja; Ugyanazt javaslom, mint ahogy a konfigurációs fájlt elnevezte, ezért a példa kedvéért változtassa meg [mypool] -ra. Ha nem változtatsz rajta, úgy tűnik, hogy a PHP-FPM csak az első konfigurációs fájlt tölti be ezzel a névvel, ami valószínűleg felborítja a dolgokat.

Ezután meg kell változtatnia azt a socketet vagy címet, amelyet hallgat, amelyet a figyelési utasítás határoz meg. Alapértelmezés szerint a PHP-FPM Unix socketeket használ, így a figyelési utasítás valószínűleg így fog kinézni:

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

Bármilyen érvényes névre módosíthatja, de ismét azt javaslom, maradjon valami hasonló a konfigurációs fájlnévhez, így például beállíthatja:

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

Rendben, mentse a fájlt, és lépjen ki a szövegszerkesztőből.


2. rész – Az NGINX virtuális gazdagép konfigurációjának frissítése

Most meg kell nyitnia az NGINX virtuális gazdagép fájlt a módosítani kívánt FastCGI konfigurációval egy új készletre – vagy inkább csatlakoznia kell az új sockethez.

Az Ubuntu 14.04 alapértelmezés szerint ezek az /etc/nginx/sites-available mappában vannak tárolva, de máshol is meghatározhatók. Valószínűleg Ön tudja a legjobban, hogy hol található a virtuális gazdagép konfigurációja ;-)

Nyissa meg a megfelelő konfigurációs fájlt kedvenc szövegszerkesztőjében, és keresse meg a PHP-FPM socketet meghatározó fastcgi_pass direktívát (amelynek helykörnyezetben kell lennie). Ezt az értéket úgy kell módosítanod, hogy az megfeleljen az első lépésben létrehozott új PHP-FPM készletkonfigurációnak, így a példánkat folytatva ezt a következőre módosítod:

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

Ezután mentse és zárja be azt a fájlt is. Most már majdnem végzett.


3. rész – Indítsa újra a PHP-FPM-et és az NGINX-et

Az elvégzett konfigurációs módosítások alkalmazásához indítsa újra a PHP-FPM-et és az NGINX-et. Lehet, hogy az újraindítás helyett elég az újratöltés , de szerintem egy kicsit eltalált, attól függően, hogy milyen beállításokat változtatnak. A konkrét esetben azt szerettem volna, ha a régi PHP-FPM gyermekfolyamatok azonnal kihalnak, ezért újra kellett indítani a PHP-FPM-et, de az NGINX esetében egy újratöltés is elegendő lehet. Próbáld ki magad.

sudo service php5-fpm restart
sudo service nginx restart

És íme, kész. Ha mindent helyesen csinált, akkor a módosított virtuális gazdagépnek most az új PHP-FPM-készletet kell használnia, és nem kell megosztania a gyermekfolyamatokat más virtuális gazdagépekkel.

Oszd meg a Bluesky-nOszd meg a FacebookonOszd meg a LinkedIn-enOszd meg a Tumblr-enOszd meg X-enOszd meg a LinkedIn-enPin a Pinteresten

Mikkel Bang Christensen

A szerzőről

Mikkel Bang Christensen
Mikkel a miklix.com létrehozója és tulajdonosa. Több mint 20 éves tapasztalattal rendelkezik, mint hivatásos számítógépes programozó/szoftverfejlesztő, és jelenleg teljes munkaidőben dolgozik egy nagy európai informatikai vállalatnál. Amikor nem blogol, szabadidejét érdeklődési körének, hobbijainak és tevékenységeinek széles skálájával tölti, ami bizonyos mértékig tükröződhet a weboldalon tárgyalt témák sokféleségében.