Miklix

Cum să configurați pool-uri PHP-FPM separate în NGINX

Publicat: 15 februarie 2025 la 11:52:57 UTC
Ultima actualizare: 12 ianuarie 2026 la 08:30:05 UTC

În acest articol, voi trece în revistă pașii de configurare necesari pentru a rula mai multe pool-uri PHP-FPM și a conecta NGINX la acestea prin FastCGI, permițând separarea proceselor și izolarea între gazdele virtuale.


Această pagină a fost tradusă automat din limba engleză pentru a o face accesibilă cât mai multor persoane. Din păcate, traducerea automată nu este încă o tehnologie perfecționată, astfel încât pot apărea erori. Dacă preferați, puteți vizualiza versiunea originală în limba engleză aici:

How to Set Up Separate PHP-FPM Pools in NGINX

Informațiile din această postare se bazează pe NGINX 1.4.6 și PHP-FPM 5.5.9 care rulează pe Ubuntu Server 14.04 x64. Este posibil să fie sau nu valabile pentru alte versiuni. (Actualizare: Pot confirma că, începând cu Ubuntu Server 24.04, PHP-FPM 8.3 și NGINX 1.24.0, toate instrucțiunile din această postare încă funcționează)

Există o serie de avantaje în configurarea mai multor pool-uri de procese fiu PHP-FPM, în loc să rulați totul în același pool. Securitatea, separarea/izolarea și gestionarea resurselor sunt câteva dintre cele mai importante avantaje.

Indiferent de motivația ta, această postare te va ajuta să o faci :-)

Partea 1 – Configurați un nou pool PHP-FPM

Mai întâi, trebuie să localizați directorul în care PHP-FPM stochează configurațiile pool-ului său. Pe Ubuntu 14.04, acesta este /etc/php5/fpm/pool.d în mod implicit. Probabil că există deja un fișier acolo numit www.conf, care conține configurația pentru pool-ul implicit. Dacă nu ați consultat fișierul respectiv până acum, probabil că ar trebui să îl parcurgeți și să modificați setările pentru configurația dvs., deoarece setările implicite sunt pentru un server destul de slab puternic, dar deocamdată faceți doar o copie a acestuia, astfel încât să nu fie nevoie să o luăm de la capăt:

sudo cp www.conf mypool.conf

Desigur, înlocuiți „mypool” cu orice nume doriți să se numească pool-ul dvs.

Acum deschideți noul fișier folosind nano sau orice editor de text preferați și ajustați-l pentru a se potrivi scopului dumneavoastră. Probabil veți dori să modificați numerele proceselor copil și, eventual, utilizatorul și grupul sub care rulează pool-ul, dar cele două setări pe care trebuie neapărat să le schimbați sunt numele pool-ului și socket-ul la care ascultă, altfel va intra în conflict cu pool-ul existent și lucrurile vor înceta să funcționeze.

Numele pool-ului se află în partea de sus a fișierului, între paranteze pătrate. Implicit este [www]. Schimbați-l cu orice doriți; sugerez același nume pe care l-ați dat fișierului de configurare, așa că, pentru acest exemplu, schimbați-l în [mypool]. Dacă nu îl schimbați, se pare că PHP-FPM va încărca doar primul fișier de configurare cu acel nume, ceea ce este probabil să provoace erori.

Apoi trebuie să schimbați socket-ul sau adresa la care ascultați, care este definită de directiva listen. În mod implicit, PHP-FPM utilizează socket-uri Unix, așa că directiva listen va arăta probabil astfel:

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

Îl poți schimba cu orice nume valid dorești, dar, din nou, îți sugerez să rămâi la ceva similar cu numele fișierului de configurare, de exemplu, l-ai putea seta la:

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

Bine, atunci salvează fișierul și ieși din editorul de text.

Partea 2 – Actualizarea configurației gazdei virtuale NGINX

Acum trebuie să deschideți fișierul gazdă virtuală NGINX cu configurația FastCGI pe care doriți să o modificați la un nou pool - sau, mai degrabă, să vă conectați la noul socket.

În mod implicit, pe Ubuntu 14.04, acestea sunt stocate în /etc/nginx/sites-available, dar pot fi definite și în altă parte. Probabil că cel mai bine știi unde se află configurațiile gazdei tale virtuale ;-)

Deschideți fișierul de configurare relevant în editorul de text preferat și căutați directiva fastcgi_pass (care trebuie să fie într-un context de locație) care definește socketul PHP-FPM. Trebuie să modificați această valoare astfel încât să corespundă cu noua configurație a pool-ului PHP-FPM pe care ați făcut-o la pasul unu, așadar, continuând exemplul nostru, ați schimba aceasta la:

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

Apoi salvați și închideți și acel fișier. Aproape ați terminat acum.

Partea 3 – Reporniți PHP-FPM și NGINX

Pentru a aplica modificările de configurație pe care le-ați făcut, reporniți atât PHP-FPM, cât și NGINX. Ar putea fi suficient să reîncărcați în loc să reporniți, dar mi se pare că este puțin imprevizibil, în funcție de setările modificate. În acest caz particular, am vrut ca vechile procese secundare PHP-FPM să dispară imediat, așa că a fost necesară repornirea PHP-FPM, dar pentru NGINX o reîncărcare ar putea fi suficientă. Încercați singuri.

sudo service php5-fpm restart
sudo service nginx restart

Și voila, ați terminat. Dacă ați făcut totul corect, gazda virtuală pe care ați modificat-o ar trebui să utilizeze acum noul pool PHP-FPM și să nu partajeze procese copil cu alte gazde virtuale.

Distribuie pe BlueskyDistribuie pe FacebookDistribuie pe LinkedInDistribuie pe TumblrDistribuie pe XDistribuie pe LinkedInPin pe Pinterest

Mikkel Christensen

Despre autor

Mikkel Christensen
Mikkel este creatorul și proprietarul miklix.com. El are peste 20 de ani de experiență ca programator de calculatoare/dezvoltator software profesionist și este în prezent angajat cu normă întreagă pentru o mare corporație europeană de IT. Atunci când nu scrie pe blog, își petrece timpul liber cu o gamă largă de interese, hobby-uri și activități, care se pot reflecta într-o anumită măsură în varietatea de subiecte abordate pe acest site.