Miklix

Com configurar grups PHP-FPM separats a NGINX

Publicat: 5 de març del 2025, a les 19:30:48 UTC

En aquest article, repasso els passos de configuració necessaris per executar diversos grups PHP-FPM i connectar-hi NGINX mitjançant FastCGI, permetent la separació i l'aïllament de processos entre els hosts virtuals.


Aquesta pàgina es va traduir automàticament de l'anglès per tal de fer-la accessible al màxim de persones possible. Malauradament, la traducció automàtica encara no és una tecnologia perfeccionada, de manera que es poden produir errors. Si ho prefereixes, pots veure la versió original en anglès aquí:

How to Set Up Separate PHP-FPM Pools in NGINX

La informació d'aquesta publicació es basa en NGINX 1.4.6 i PHP-FPM 5.5.9 que s'executen a Ubuntu Server 14.04 x64. Pot ser vàlid o no per a altres versions. (Actualització: puc confirmar que a partir d'Ubuntu Server 24.04, PHP-FPM 8.3 i NGINX 1.24.0, totes les instruccions d'aquesta publicació encara funcionen)

Hi ha una sèrie d'avantatges per configurar diversos grups de processos fills PHP-FPM en lloc d'executar-ho tot al mateix grup. La seguretat, la separació/aïllament i la gestió de recursos em vénen al cap com a alguns dels principals.

Independentment de quina sigui la teva motivació, aquesta publicació t'ajudarà a fer-ho :-)


Part 1: configureu un nou grup PHP-FPM

En primer lloc, heu de localitzar el directori on PHP-FPM emmagatzema les configuracions del grup. A Ubuntu 14.04, això és /etc/php5/fpm/pool.d per defecte. Probablement ja hi ha un fitxer anomenat www.conf , que conté la configuració del grup predeterminat. Si no heu mirat aquest fitxer abans, és probable que haureu de revisar-lo i modificar-ne la configuració per a la vostra configuració, ja que els valors predeterminats són per a un servidor bastant poc potent, però de moment només feu-ne una còpia perquè no hàgim de començar des de zero:

sudo cp www.conf mypool.conf

Per descomptat, substituïu "mypool" amb el que vulgueu que es digui la vostra piscina.

Ara obriu el nou fitxer amb nano o l'editor de text que preferiu i ajusteu-lo perquè s'adapti al vostre propòsit. Probablement voldreu ajustar els números de procés secundari i possiblement amb quin usuari i grup s'executa el grup, però els dos paràmetres que haureu de canviar absolutament són el nom del grup i el sòcol que està escoltant, en cas contrari entrarà en conflicte amb el grup existent i les coses deixaran de funcionar.

El nom del grup està a prop de la part superior del fitxer, entre claudàtors. Per defecte és [www] . Canvia això pel que vulguis; Us suggereixo el mateix que vau anomenar el fitxer de configuració, així que pel bé d'aquest exemple canvieu-lo a [mypool] . Si no el canvieu, sembla que PHP-FPM només carregarà el primer fitxer de configuració amb aquest nom, cosa que és probable que trenqui coses.

Aleshores, heu de canviar el sòcol o l'adreça que esteu escoltant, que es defineix per la directiva listen . De manera predeterminada, PHP-FPM utilitza sockets Unix, de manera que la vostra directiva d'escolta probablement tindrà aquest aspecte:

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

Podeu canviar-lo pel nom vàlid que vulgueu, però de nou, us suggereixo que us quedeu amb alguna cosa semblant al nom del fitxer de configuració, de manera que, per exemple, el podríeu establir a:

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

D'acord, deseu el fitxer i sortiu de l'editor de text.


Part 2: actualitzeu la configuració de l'amfitrió virtual de NGINX

Ara heu d'obrir el fitxer d'amfitrió virtual NGINX amb la configuració FastCGI que voleu canviar a un grup nou, o més aviat, connecteu-vos al nou sòcol.

Per defecte a Ubuntu 14.04, aquests s'emmagatzemen a /etc/nginx/sites-available, però també es poden definir en un altre lloc. Probablement saps on es troben les configuracions de l'amfitrió virtual ;-)

Obriu el fitxer de configuració rellevant al vostre editor de text preferit i cerqueu la directiva fastcgi_pass (que ha d'estar en un context d'ubicació) que defineix el sòcol PHP-FPM. Heu de canviar aquest valor perquè coincideixi amb la nova configuració de l'agrupació PHP-FPM que heu fet al pas un, de manera que continuant amb el nostre exemple, canviareu això a:

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

A continuació, deseu i tanqueu aquest fitxer també. Ara gairebé has acabat.


Part 3: reinicieu PHP-FPM i NGINX

Per aplicar els canvis de configuració que heu fet, reinicieu PHP-FPM i NGINX. Potser n'hi ha prou amb tornar a carregar en comptes de reiniciar , però trobo que és una mica encertat, depenent de la configuració que es modifiqui. En el cas particular, volia que els antics processos fills PHP-FPM morís immediatament, de manera que calia reiniciar PHP-FPM, però per a NGINX una recàrrega pot ser suficient. Prova-ho per tu mateix.

sudo service php5-fpm restart
sudo service nginx restart

I voilà, ja has acabat. Si ho heu fet tot correctament, l'amfitrió virtual que heu modificat ara hauria d'utilitzar el nou grup PHP-FPM i no compartir processos secundaris amb cap altre amfitrió virtual.

Comparteix a BlueskyComparteix a FacebookComparteix a LinkedInComparteix a TumblrComparteix a XComparteix a LinkedInPin a Pinterest

Mikkel Bang Christensen

Sobre l'autor

Mikkel Bang Christensen
Mikkel és el creador i propietari de miklix.com. Té més de 20 anys d'experiència com a programador/desenvolupador de programari informàtic professional i actualment treballa a temps complet per a una gran corporació informàtica europea. Quan no fa blocs, dedica el seu temps lliure a una gran varietat d'interessos, aficions i activitats, que fins a cert punt es poden reflectir en la varietat de temes tractats en aquest lloc web.