Miklix

Jinsi ya Kusanidi Madimbwi Tofauti ya PHP-FPM katika NGINX

Iliyochapishwa: 15 Februari 2025, 11:54:34 UTC
Mara ya mwisho kusasishwa: 12 Januari 2026, 08:30:14 UTC

Katika makala haya, ninapitia hatua za usanidi zinazohitajika ili kuendesha mabwawa mengi ya PHP-FPM na kuunganisha NGINX kwayo kupitia FastCGI, kuruhusu utenganishaji wa michakato na utenganishaji kati ya seva pepe.


Ukurasa huu ulitafsiriwa kwa mashine kutoka kwa Kiingereza ili kuifanya iweze kupatikana kwa watu wengi iwezekanavyo. Kwa bahati mbaya, utafsiri wa mashine bado sio teknolojia iliyokamilishwa, kwa hivyo makosa yanaweza kutokea. Ukipenda, unaweza kutazama toleo asili la Kiingereza hapa:

How to Set Up Separate PHP-FPM Pools in NGINX

Taarifa katika chapisho hili inategemea NGINX 1.4.6 na PHP-FPM 5.5.9 inayoendeshwa kwenye Seva ya Ubuntu 14.04 x64. Huenda ikawa halali au isiwe halali kwa matoleo mengine. (Sasisho: Ninaweza kuthibitisha kwamba kufikia Seva ya Ubuntu 24.04, PHP-FPM 8.3 na NGINX 1.24.0, maagizo yote katika chapisho hili bado yanafanya kazi)

Kuna faida kadhaa za kuanzisha mabwawa mengi ya michakato ya watoto ya PHP-FPM badala ya kuendesha kila kitu katika bwawa moja. Usalama, utengano/utengano na usimamizi wa rasilimali huibuka akilini kama baadhi ya faida kuu.

Bila kujali motisha yako ni nini, chapisho hili litakusaidia kuifanya :-)

Sehemu ya 1 - Sanidi bwawa jipya la PHP-FPM

Kwanza, unahitaji kupata saraka ambapo PHP-FPM huhifadhi usanidi wake wa bwawa. Kwenye Ubuntu 14.04, hii ni /etc/php5/fpm/pool.d kwa chaguo-msingi. Labda tayari kuna faili hapo inayoitwa www.conf, ambayo ina usanidi wa bwawa chaguo-msingi. Ikiwa hujaangalia faili hiyo hapo awali, kuna uwezekano mkubwa unapaswa kuipitia na kurekebisha mipangilio iliyomo kwa ajili ya usanidi wako kwani chaguo-msingi ni kwa seva isiyo na nguvu nyingi, lakini kwa sasa tengeneza nakala yake ili tusilazimike kuanza kutoka mwanzo:

sudo cp www.conf mypool.conf

Bila shaka, badilisha "mypool" na chochote unachotaka bwawa lako liitwe.

Sasa fungua faili mpya kwa kutumia nano au kihariri chochote cha maandishi unachopendelea na uirekebishe ili iendane na kusudi lako. Huenda utahitaji kurekebisha nambari za mchakato wa mtoto na pengine ni mtumiaji gani na kikundi gani cha bwawa kinapitia, lakini mipangilio miwili ambayo lazima ubadilishe kabisa ni jina la bwawa na soketi inayosikiliza, vinginevyo itagongana na bwawa lililopo na mambo yataacha kufanya kazi.

Jina la bwawa liko karibu na sehemu ya juu ya faili, likiwa limeambatanishwa katika mabano ya mraba. Kwa chaguo-msingi ni [www]. Badilisha hii iwe chochote unachotaka; Ninapendekeza kama vile ulivyoipa jina faili ya usanidi, kwa hivyo kwa mfano huu ibadilishe kuwa [mypool]. Usipoibadilisha, inaonekana kwamba PHP-FPM itapakia faili ya kwanza ya usanidi yenye jina hilo pekee, ambalo lina uwezekano wa kuharibu mambo.

Kisha unahitaji kubadilisha soketi au anwani unayosikiliza, ambayo hufafanuliwa na agizo la kusikiliza. Kwa chaguo-msingi, PHP-FPM hutumia soketi za Unix kwa hivyo agizo lako la kusikiliza labda litaonekana kama hii:

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

Unaweza kuibadilisha kuwa jina lolote halali unalotaka, lakini tena, ninapendekeza uendelee na kitu sawa na jina la faili la usanidi, kwa hivyo unaweza kwa mfano kuiweka kuwa:

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

Sawa basi, hifadhi faili na utoke kwenye kihariri maandishi.

Sehemu ya 2 - Sasisha usanidi wa seva pepe ya NGINX

Sasa unahitaji kufungua faili ya seva pepe ya NGINX yenye usanidi wa FastCGI unaotaka kubadilisha hadi kwenye bwawa jipya - au tuseme, unganisha kwenye soketi mpya.

Kwa chaguo-msingi kwenye Ubuntu 14.04, hizi huhifadhiwa chini ya /etc/nginx/sites-available, lakini pia zinaweza kufafanuliwa kwingineko. Labda unajua vyema mahali ambapo usanidi wako wa seva pepe unapatikana ;-)

Fungua faili husika ya usanidi katika kihariri chako cha maandishi unachopenda na utafute agizo la fastcgi_pass (ambalo lazima liwe katika muktadha wa eneo) linalofafanua soketi ya PHP-FPM. Lazima ubadilishe thamani hii ili ilingane na usanidi mpya wa bwawa la PHP-FPM ulioufanya chini ya hatua ya kwanza, kwa hivyo kuendelea na mfano wetu utabadilisha hii kuwa:

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

Kisha hifadhi na ufunge faili hiyo pia. Umekaribia kumaliza sasa.

Sehemu ya 3 - Anzisha upya PHP-FPM na NGINX

Ili kutumia mabadiliko ya usanidi uliyofanya, anzisha upya PHP-FPM na NGINX. Inaweza kutosha kupakia upya badala ya kuanza upya, lakini naona imegongwa kidogo, kulingana na mipangilio gani imebadilishwa. Katika hali maalum, nilitaka michakato ya zamani ya PHP-FPM ififie mara moja, kwa hivyo kuanzisha upya PHP-FPM kulihitajika, lakini kwa NGINX kupakia upya kunaweza kutosha. Jaribu mwenyewe.

sudo service php5-fpm restart
sudo service nginx restart

Na voila, umemaliza. Ukifanya kila kitu kwa usahihi, seva pepe uliyorekebisha sasa inapaswa kutumia kundi jipya la PHP-FPM na isishiriki michakato ya watoto na seva nyingine yoyote pepe.

Shiriki kwenye BlueskyShiriki kwenye FacebookShiriki kwenye LinkedInShiriki kwenye TumblrShiriki kwenye XShiriki kwenye LinkedInBandika kwenye Pinterest

Mikkel Christensen

Kuhusu Mwandishi

Mikkel Christensen
Mikkel ndiye muundaji na mmiliki wa miklix.com. Ana uzoefu wa zaidi ya miaka 20 kama mtaalamu wa kupanga programu/programu za kompyuta na kwa sasa ameajiriwa muda wote kwa shirika kubwa la IT la Ulaya. Wakati si kublogi, yeye hutumia wakati wake wa ziada kwenye safu nyingi za mapendeleo, vitu vya kufurahisha, na shughuli, ambazo zinaweza kuonyeshwa kwa kadiri fulani katika mada anuwai zinazozungumziwa kwenye wavuti hii.