Kuidas seadistada NGINX-is eraldi PHP-FPM-i basseine
Avaldatud: 15. veebruar 2025, kell 11:49:34 UTC
Viimati uuendatud: 12. jaanuar 2026, kell 08:29:56 UTC
Selles artiklis käsitlen konfigureerimisetappe, mis on vajalikud mitme PHP-FPM basseini käitamiseks ja NGINX-i ühendamiseks nendega FastCGI kaudu, võimaldades protsesside eraldamist ja isoleerimist virtuaalsete hostide vahel.
How to Set Up Separate PHP-FPM Pools in NGINX
Selle postituse teave põhineb NGINX 1.4.6 ja PHP-FPM 5.5.9 versioonidel, mis töötavad Ubuntu Server 14.04 x64 keskkonnas. See ei pruugi kehtida teiste versioonide puhul. (Uuendus: võin kinnitada, et Ubuntu Server 24.04, PHP-FPM 8.3 ja NGINX 1.24.0 seisuga toimivad kõik selle postituse juhised endiselt.)
Mitme PHP-FPM-i alamprotsesside grupi loomisel on mitmeid eeliseid, võrreldes kõige sama grupi käitamisega. Peamiste hulgas tulevad meelde turvalisus, eraldamine/isolatsioon ja ressursside haldamine.
Olenemata teie motivatsioonist aitab see postitus teil seda teha :-)
1. osa – uue PHP-FPM grupi seadistamine
Esmalt tuleb leida kataloog, kuhu PHP-FPM oma pooli konfiguratsioonid salvestab. Ubuntu 14.04 puhul on see vaikimisi /etc/php5/fpm/pool.d. Tõenäoliselt on seal juba fail nimega www.conf, mis sisaldab vaikepooli konfiguratsiooni. Kui te pole seda faili varem vaadanud, peaksite selle tõenäoliselt üle vaatama ja oma seadistuse jaoks sätteid kohandama, kuna vaikeseaded on mõeldud üsna vähevõimsuslikule serverile, kuid praegu tehke sellest lihtsalt koopia, et me ei peaks nullist alustama:
Loomulikult asenda „minubassein” sellega, mida sa oma basseinile nimeks soovid.
Nüüd ava uus fail nano või mis tahes muu tekstiredaktori abil ja kohanda seda vastavalt oma eesmärgile. Tõenäoliselt tahad muuta alamprotsesside numbreid ja võimalik, et ka seda, millise kasutaja ja grupi all bassein töötab, aga kaks seadet, mida sa kindlasti pead muutma, on basseini nimi ja sokkel, mida see kuulab, vastasel juhul läheb see konflikti olemasoleva basseiniga ja asjad lakkavad töötamast.
Kogumi nimi on faili ülaosas nurksulgudes. Vaikimisi on see [www]. Muutke see ükskõik milliseks; soovitan sama nime, mis konfiguratsioonifailile, seega selle näite huvides muutke see [mypool]. Kui te seda ei muuda, laadib PHP-FPM ilmselt ainult esimese selle nimega konfiguratsioonifaili, mis tõenäoliselt asju katki teeb.
Seejärel peate muutma kuulatavat soklit või aadressi, mis on määratletud kuulamisdirektiiviga. Vaikimisi kasutab PHP-FPM Unixi sokleid, seega näeb teie kuulamisdirektiiv tõenäoliselt välja selline:
Saate seda muuta mis tahes kehtivaks nimeks, aga jällegi soovitan jääda konfiguratsioonifaili nimega sarnase nime juurde, näiteks võite selle määrata järgmiselt:
Olgu, salvesta fail ja välju tekstiredaktorist.
2. osa – NGINX virtuaalse hosti konfiguratsiooni värskendamine
Nüüd peate avama NGINX virtuaalse hostifaili FastCGI konfiguratsiooniga, mida soovite muuta uueks basseiniks – või pigem uue sokliga ühenduse loomiseks.
Ubuntu 14.04-s salvestatakse need vaikimisi kausta /etc/nginx/sites-available, aga neid saab defineerida ka mujal. Tõenäoliselt teate teie ise kõige paremini, kus teie virtuaalse hosti konfiguratsioonid asuvad ;-)
Avage oma lemmiktekstiredaktoris vastav konfiguratsioonifail ja otsige üles fastcgi_pass direktiiv (mis peab olema asukoha kontekstis), mis määratleb PHP-FPM sokli. Peate seda väärtust muutma nii, et see vastaks esimeses etapis tehtud uuele PHP-FPM basseini konfiguratsioonile, seega jätkates meie näidet, muudaksite selle järgmiselt:
Fastcgi_pass unix:/var/run/php5-fpm-mypool.sock;
Seejärel salvesta ja sulge ka see fail. Nüüd oled peaaegu valmis.
3. osa – taaskäivitage PHP-FPM ja NGINX
Konfiguratsioonimuudatuste rakendamiseks taaskäivitage nii PHP-FPM kui ka NGINX. Võib-olla piisab uuesti installimisest taaskäivitamise asemel, aga minu arvates on see pisut ebaühtlane, olenevalt muudetud sätetest. Konkreetsel juhul tahtsin, et vanad PHP-FPM-i lapseprotsessid kohe sureksid, seega oli vaja PHP-FPM-i taaskäivitada, aga NGINX-i puhul võib piisata uuesti installimisest. Proovige ise järele.
sudo service nginx restart
Ja voilà, oledki valmis. Kui tegid kõik õigesti, peaks muudetud virtuaalne host nüüd kasutama uut PHP-FPM-i basseini ega tohiks jagada lapseprotsesse ühegi teise virtuaalse hostiga.
