Miklix

Kuidas seadistada NGINX-is eraldi PHP-FPM-i basseine

Avaldatud: 15. veebruar 2025, kell 11:49:34 UTC

Selles artiklis käsitlen konfiguratsioonietappe, mis on vajalikud mitme PHP-FPM-i kogumi 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

Selles postituses olev teave põhineb versioonidel NGINX 1.4.6 ja PHP-FPM 5.5.9, mis töötavad Ubuntu Server 14.04 x64. See võib teiste versioonide jaoks kehtida, kuid ei pruugi kehtida. (Värskendus: võin kinnitada, et alates Ubuntu Server 24.04, PHP-FPM 8.3 ja NGINX 1.24.0 seisuga töötavad kõik selles postituses olevad juhised endiselt)

Mitme PHP-FPM-i alamprotsesside kogumi seadistamisel on mitmeid eeliseid, selle asemel, et käitada kõike samas kogumis. Turvalisus, eraldamine/isolatsioon ja ressursside haldamine tulevad meelde kui mõned olulised.

Olenemata sellest, mis on teie motivatsioon, aitab see postitus teil seda teha :-)


1. osa – uue PHP-FPM basseini seadistamine

Esiteks peate leidma kataloogi, kuhu PHP-FPM oma basseini 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 vaikekogumi konfiguratsiooni. Kui te pole seda faili varem vaadanud, peaksite tõenäoliselt selle läbi vaatama ja selles olevaid seadistusi oma seadistuste jaoks kohandama, kuna vaikeseaded on üsna nõrga võimsusega serveri jaoks, kuid praegu tehke sellest lihtsalt koopia, et me ei peaks nullist alustama:

sudo cp www.conf mypool.conf

Muidugi asendage "mypool" sellega, mida soovite oma basseini nimetada.

Nüüd avage uus fail nano või mis tahes eelistatud tekstiredaktoriga ja kohandage seda vastavalt oma eesmärgile. Tõenäoliselt soovite kohandada alamprotsesside numbreid ja võib-olla ka seda, millise kasutaja ja rühma all bassein töötab, kuid kaks seadet, mida peate kindlasti muutma, on basseini nimi ja pesa, mida see kuulab, vastasel juhul läheb see olemasoleva puuliga vastuollu ja asjad lakkavad töötamast.

Basseini nimi on faili ülaosas nurksulgudes. Vaikimisi on see [www] . Muutke see, mida iganes soovite; Pakun välja sama, mille konfiguratsioonifailile nimetasite, nii et selle näite huvides muutke see väärtuseks [mypool] . Kui te seda ei muuda, tundub, et PHP-FPM laadib selle nimega ainult esimese konfiguratsioonifaili, mis tõenäoliselt rikub asju.

Seejärel peate muutma kuulatavat pesa või aadressi, mis on määratletud kuulamisjuhisega . Vaikimisi kasutab PHP-FPM Unixi pesasid, nii et teie kuulamisdirektiiv näeb tõenäoliselt välja järgmine:

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

Saate selle muuta mis tahes kehtivaks nimeks, mida soovite, kuid jällegi soovitan jääda millegi sarnase konfiguratsioonifaili nime juurde, et saaksite selle näiteks määrata:

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

Olgu, salvestage fail ja väljuge tekstiredaktorist.


2. osa – NGINX-i virtuaalse hosti konfiguratsiooni värskendamine

Nüüd peate avama NGINX-i virtuaalse hostifaili FastCGI-konfiguratsiooniga, mida soovite muuta uueks basseiniks – või õigemini looge ühendus uue pesaga.

Ubuntu 14.04 vaikimisi salvestatakse need kausta /etc/nginx/sites-available, kuid neid saab määratleda ka mujal. Tõenäoliselt teate kõige paremini, kus teie virtuaalse hosti konfiguratsioonid asuvad ;-)

Avage oma lemmiktekstiredaktoris vastav konfiguratsioonifail ja otsige käsk fastcgi_pass (mis peab olema asukoha kontekstis), mis määratleb PHP-FPM pesa. Peate seda väärtust muutma nii, et see vastaks uuele PHP-FPM-i kogumi konfiguratsioonile, mille tegite esimese sammu käigus, nii et jätkates meie näidet, muudate selle järgmiselt:

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

Seejärel salvestage ja sulgege ka see fail. Nüüd olete peaaegu valmis.


3. osa – taaskäivitage PHP-FPM ja NGINX

Tehtud konfiguratsioonimuudatuste rakendamiseks taaskäivitage nii PHP-FPM kui ka NGINX. Taaskäivitamise asemel võib piisata uuesti laadimisest , kuid olenevalt sellest, milliseid sätteid muudetakse, tundub, et see on natuke tabanud ja mööda läinud. Konkreetsel juhul tahtsin, et vanad PHP-FPM-i alamprotsessid sureksid kohe välja, seega oli vaja PHP-FPM taaskäivitada, kuid NGINX-i jaoks võib uuesti laadimisest piisata. Proovige seda ise.

sudo service php5-fpm restart
sudo service nginx restart

Ja voila, oletegi valmis. Kui tegite kõik õigesti, peaks teie muudetud virtuaalne host nüüd kasutama uut PHP-FPM-i kogumit ega jaga alamprotsesse ühegi teise virtuaalhostiga.

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

Mikkel Bang Christensen

Autorist

Mikkel Bang 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.