Miklix

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.


See lehekülg on inglise keelest masintõlgitud, et muuta see võimalikult paljudele inimestele kättesaadavaks. Kahjuks ei ole masintõlge veel täiuslik tehnoloogia, mistõttu võivad esineda vead. Kui soovite, võite vaadata ingliskeelset originaalversiooni siin:

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:

sudo cp www.conf mypool.conf

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:

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

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:

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

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 php5-fpm restart
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.

Jagage Bluesky'sJaga FacebookisJagage LinkedInisJaga TumblrisJaga X-isJagage LinkedInisKinnitage Pinterestis

Mikkel Christensen

Autorist

Mikkel Christensen
Mikkel on miklix.com looja ja omanik. Tal on üle 20 aasta kogemust professionaalse programmeerija/tarkvaraarendajana ning praegu töötab ta täiskohaga suures Euroopa IT-ettevõttes. Kui ta ei kirjuta blogi, veedab ta oma vaba aega mitmesuguste huvide, hobide ja tegevustega, mis võib mingil määral kajastuda sellel veebisaidil käsitletavate teemade mitmekesisuses.