Miklix

Erillisten PHP-FPM-poolien määrittäminen NGINX:ssä

Julkaistu: 15. helmikuuta 2025 klo 11.49.36 UTC

Tässä artikkelissa käyn läpi määritysvaiheet, joita tarvitaan useiden PHP-FPM-poolien suorittamiseen ja NGINX:n yhdistämiseen niihin FastCGI:n kautta, mikä mahdollistaa prosessien erottamisen ja eristämisen virtuaalisten isäntien välillä.


Tämä sivu on käännetty koneellisesti englannista, jotta se olisi mahdollisimman monen ihmisen saatavilla. Valitettavasti konekääntäminen ei ole vielä täydellistä tekniikkaa, joten virheitä voi esiintyä. Voit halutessasi tarkastella alkuperäistä englanninkielistä versiota täällä:

How to Set Up Separate PHP-FPM Pools in NGINX

Tämän viestin tiedot perustuvat NGINX 1.4.6- ja PHP-FPM 5.5.9 -versioihin, jotka toimivat Ubuntu Server 14.04 x64 -versiossa. Se voi tai ei välttämättä ole voimassa muille versioille. (Päivitys: Voin vahvistaa, että Ubuntu Server 24.04:stä, PHP-FPM 8.3:sta ja NGINX 1.24.0:sta lähtien kaikki tämän viestin ohjeet toimivat edelleen)

Useiden PHP-FPM-lapsiprosessipoolien määrittämisessä on useita etuja sen sijaan, että kaikki suoritettaisiin samassa poolissa. Turvallisuus, erottaminen/eristys ja resurssien hallinta tulevat mieleen muutamina tärkeimpänä.

Riippumatta motivaatiostasi, tämä viesti auttaa sinua tekemään sen :-)


Osa 1 – Luo uusi PHP-FPM-varasto

Ensin sinun on löydettävä hakemisto, johon PHP-FPM tallentaa poolikokoonpanonsa. Ubuntu 14.04:ssä tämä on oletuksena /etc/php5/fpm/pool.d. Siellä on luultavasti jo tiedosto nimeltä www.conf , joka sisältää oletusvarannon asetukset. Jos et ole katsonut tiedostoa aiemmin, sinun kannattaa todennäköisesti käydä se läpi ja säätää sen asetuksia asetuksiasi varten, koska oletusasetukset ovat melko alitehoiselle palvelimelle, mutta toistaiseksi tee siitä kopio, jotta meidän ei tarvitse aloittaa tyhjästä:

sudo cp www.conf mypool.conf

Tietenkin, korvaa "mypool" millä tahansa nimellä allas.

Avaa nyt uusi tiedosto nanolla tai millä tahansa tekstieditorilla ja säädä se tarkoitukseen sopivaksi. Haluat luultavasti säätää alatason prosessinumeroita ja mahdollisesti sitä, minkä käyttäjän ja ryhmän alla pool toimii, mutta kaksi asetusta, jotka sinun on ehdottomasti muutettava, ovat poolin nimi ja liitäntä, jota se kuuntelee, muuten se on ristiriidassa olemassa olevan poolin kanssa ja asiat lakkaavat toimimasta.

Altaan nimi on lähellä tiedoston yläosaa hakasulkeissa. Oletuksena se on [www] . Muuta tämä mihin tahansa haluat; Ehdotan samaa kuin annoit määritystiedoston nimeksi, joten muuta tämän esimerkin vuoksi se muotoon [mypool] . Jos et muuta sitä, näyttää siltä, ​​​​että PHP-FPM lataa vain ensimmäisen määritystiedoston tällä nimellä, mikä todennäköisesti rikkoo asioita.

Sitten sinun on vaihdettava kuuntelemaasi liitäntää tai osoitetta, joka on määritelty kuunteluohjeessa . Oletusarvoisesti PHP-FPM käyttää Unix-socketteja, joten kuunteluohjeesi näyttää todennäköisesti tältä:

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

Voit vaihtaa sen mihin tahansa kelvolliseen nimeen, mutta jälleen kerran, ehdotan, että käytät jotain, joka on samankaltainen kuin asetustiedoston nimi, jotta voit esimerkiksi asettaa sen seuraavasti:

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

Selvä, tallenna tiedosto ja poistu tekstieditorista.


Osa 2 – Päivitä NGINX-virtuaaliisäntäkokoonpano

Nyt sinun on avattava NGINX-virtuaaliisäntätiedosto FastCGI-kokoonpanolla, jonka haluat muuttaa uuteen pooliin – tai pikemminkin muodostaa yhteys uuteen pistorasiaan.

Oletusarvoisesti Ubuntu 14.04:ssä ne on tallennettu hakemistoon /etc/nginx/sites-available, mutta ne voidaan määrittää myös muualle. Tiedät luultavasti parhaiten missä virtuaaliisäntäkokoonpanosi sijaitsevat ;-)

Avaa asiaankuuluva asetustiedosto suosikkitekstieditorissasi ja etsi PHP-FPM-liittimen määrittävä fastcgi_pass -direktiivi (jonka on oltava sijaintikontekstissa). Sinun on muutettava tämä arvo niin, että se vastaa vaiheessa yksi tekemääsi uutta PHP-FPM-varastokokoonpanoa, joten jatkamalla esimerkkiämme muuttaisit tämän seuraavasti:

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

Tallenna ja sulje sitten myös tiedosto. Olet melkein valmis nyt.


Osa 3 – Käynnistä PHP-FPM ja NGINX uudelleen

Ota tekemäsi kokoonpanomuutokset käyttöön käynnistämällä sekä PHP-FPM että NGINX uudelleen. Saattaa riittää, että lataat uudelleen uudelleenkäynnistyksen sijaan, mutta mielestäni se on hieman osuma, riippuen siitä, mitä asetuksia muutetaan. Erityistapauksessa halusin, että vanhat PHP-FPM-lapsiprosessit kuolevat heti, joten PHP-FPM uudelleenkäynnistys oli tarpeen, mutta NGINX:lle uudelleenlataus saattaa riittää. Kokeile sitä itse.

sudo service php5-fpm restart
sudo service nginx restart

Ja voila, olet valmis. Jos teit kaiken oikein, muokkaamasi virtuaalisen isännän pitäisi nyt käyttää uutta PHP-FPM-varastoa eikä jakaa aliprosesseja muiden virtuaalisten isäntien kanssa.

Jaa BlueskyssäJaa FacebookissaJaa LinkedInissäJaa TumblrissaJaa X:ssäJaa LinkedInissäPin Pinterestissä

Mikkel Bang Christensen

Kirjoittajasta

Mikkel Bang Christensen
Mikkel on miklix.com-sivuston luoja ja omistaja. Hänellä on yli 20 vuoden kokemus ammattimaisena tietokoneohjelmoijana/ohjelmistokehittäjänä, ja tällä hetkellä hän työskentelee kokopäiväisesti suuressa eurooppalaisessa IT-yrityksessä. Kun hän ei ole bloggaamassa, hän käyttää vapaa-aikaansa monenlaisiin kiinnostuksen kohteisiin, harrastuksiin ja aktiviteetteihin, mikä saattaa jossain määrin heijastua tällä verkkosivustolla käsiteltävien aiheiden moninaisuuteen.