Si të konfiguroni grupe të veçanta PHP-FPM në NGINX
Publikuar: 15 shkurt 2025 në 11:55:10 e paradites, UTC
Përditësimi i fundit: 12 janar 2026 në 8:30:19 e paradites, UTC
Në këtë artikull, unë shqyrtoj hapat e konfigurimit të nevojshëm për të ekzekutuar shumë pishina PHP-FPM dhe për të lidhur NGINX me to nëpërmjet FastCGI, duke lejuar ndarjen dhe izolimin e proceseve midis hosteve virtuale.
How to Set Up Separate PHP-FPM Pools in NGINX
Informacioni në këtë postim bazohet në NGINX 1.4.6 dhe PHP-FPM 5.5.9 që funksionojnë në Ubuntu Server 14.04 x64. Mund të jetë ose jo i vlefshëm për versione të tjera. (Përditësim: Mund të konfirmoj që që nga Ubuntu Server 24.04, PHP-FPM 8.3 dhe NGINX 1.24.0, të gjitha udhëzimet në këtë postim ende funksionojnë)
Ka një numër përparësish në konfigurimin e shumë grupeve të proceseve fëmijë PHP-FPM në vend që të ekzekutohen të gjitha në të njëjtin grup. Siguria, ndarja/izolimi dhe menaxhimi i burimeve më vijnë ndër mend si disa nga përparësitë kryesore.
Pavarësisht motivimit tuaj, ky postim do t'ju ndihmojë ta bëni këtë :-)
Pjesa 1 - Konfiguroni një grup të ri PHP-FPM
Së pari, duhet të gjeni direktorinë ku PHP-FPM ruan konfigurimet e pishinës së saj. Në Ubuntu 14.04, kjo është /etc/php5/fpm/pool.d si parazgjedhje. Ndoshta ekziston tashmë një skedar atje i quajtur www.conf, i cili përmban konfigurimin për pishinën parazgjedhur. Nëse nuk e keni parë atë skedar më parë, ka shumë mundësi që duhet ta shqyrtoni dhe të ndryshoni cilësimet në të për konfigurimin tuaj pasi parazgjedhjet janë për një server mjaft të dobët, por tani për tani thjesht bëni një kopje të tij në mënyrë që të mos na duhet të fillojmë nga e para:
Sigurisht, zëvendësoni "mypool" me emrin që dëshironi të quhet pishina juaj.
Tani hapni skedarin e ri duke përdorur nano ose cilindo editor teksti që preferoni dhe përshtateni atë sipas qëllimit tuaj. Ndoshta do të dëshironi të ndryshoni numrat e proceseve të fëmijëve dhe ndoshta se nën cilin përdorues dhe grup funksionon grupi, por dy cilësimet që duhet patjetër të ndryshoni janë emri i grupit dhe soketi që po dëgjon, përndryshe do të ketë konflikt me grupin ekzistues dhe gjërat do të ndalojnë së funksionuari.
Emri i pishinës është afër fillimit të skedarit, i mbyllur në kllapa katrore. Si parazgjedhje është [www]. Ndryshojeni këtë në çfarë të dëshironi; unë sugjeroj të emërtoni të njëjtin emër që i dhatë skedarit të konfigurimit, kështu që për hir të këtij shembulli ndryshojeni në [mypool]. Nëse nuk e ndryshoni, duket se PHP-FPM do të ngarkojë vetëm skedarin e parë të konfigurimit me atë emër, gjë që ka të ngjarë të prishë gjërat.
Pastaj duhet të ndryshoni soketin ose adresën që po dëgjoni, e cila përcaktohet nga direktiva listen. Si parazgjedhje, PHP-FPM përdor soketat Unix, kështu që direktiva juaj listen ndoshta do të duket kështu:
Mund ta ndryshoni në çfarëdo emri të vlefshëm që dëshironi, por përsëri, sugjeroj të përdorni diçka të ngjashme me emrin e skedarit të konfigurimit, kështu që për shembull mund ta vendosni në:
Në rregull, atëherë ruajeni skedarin dhe dilni nga redaktuesi i tekstit.
Pjesa 2 – Përditësoni konfigurimin e hostit virtual NGINX
Tani duhet të hapni skedarin virtual të hostit NGINX me konfigurimin FastCGI që dëshironi të ndryshoni në një pishinë të re - ose më saktë, të lidheni me socket-in e ri.
Si parazgjedhje në Ubuntu 14.04, këto ruhen nën /etc/nginx/sites-available, por mund të përcaktohen edhe diku tjetër. Ndoshta ju e dini më mirë se ku ndodhen konfigurimet e hostit tuaj virtual ;-)
Hapni skedarin përkatës të konfigurimit në redaktuesin tuaj të preferuar të tekstit dhe kërkoni direktivën fastcgi_pass (e cila duhet të jetë në një kontekst vendndodhjeje) që përcakton socketin PHP-FPM. Duhet ta ndryshoni këtë vlerë në mënyrë që të përputhet me konfigurimin e ri të pishinës PHP-FPM që bëtë në hapin e parë, kështu që duke vazhduar shembullin tonë, do ta ndryshonit këtë në:
Fastcgi_pass unix:/var/run/php5-fpm-mypool.sock;
Pastaj ruaje dhe mbylle edhe atë skedar. Tani pothuajse ke mbaruar.
Pjesa 3 – Rinisni PHP-FPM dhe NGINX
Për të aplikuar ndryshimet e konfigurimit që keni bërë, rinisni si PHP-FPM ashtu edhe NGINX. Mund të jetë e mjaftueshme të ringarkoni në vend që ta rinisni, por mua më duket paksa e gabuar, varësisht nga cilësimet që ndryshohen. Në rastin konkret, doja që proceset e vjetra të familjes PHP-FPM të ndërpriteshin menjëherë, kështu që rinisnim PHP-FPM, por për NGINX një ringarkim mund të jetë i mjaftueshëm. Provojeni vetë.
sudo service nginx restart
Dhe ja ku është, mbarove. Nëse i ke bërë të gjitha siç duhet, hosti virtual që modifikove tani duhet të përdorë grupin e ri PHP-FPM dhe të mos ndajë procese fëmijë me asnjë host tjetër virtual.
