Jinsi ya Kusanidi Madimbwi Tofauti ya PHP-FPM katika NGINX
Iliyochapishwa: 15 Februari 2025, 11:54:34 UTC
Katika makala hii, ninapitia hatua za usanidi zinazohitajika ili kuendesha mabwawa mengi ya PHP-FPM na kuunganisha NGINX kwao kupitia FastCGI, kuruhusu utengano wa mchakato na kutengwa kati ya majeshi ya kawaida.
How to Set Up Separate PHP-FPM Pools in NGINX
Taarifa katika chapisho hili ni ya msingi wa NGINX 1.4.6 na PHP-FPM 5.5.9 inayoendesha Ubuntu Server 14.04 x64. Inaweza au isiwe halali kwa matoleo mengine. (Sasisha: Ninaweza kudhibitisha kuwa kama Ubuntu Server 24.04, PHP-FPM 8.3 na NGINX 1.24.0, maagizo yote kwenye chapisho hili bado yanafanya kazi)
Kuna faida kadhaa za kusanidi vidimbwi vingi vya mchakato wa watoto wa PHP-FPM badala ya kuendesha kila kitu kwenye kidimbwi kimoja. Usalama, utengano/kutengwa na usimamizi wa rasilimali huibuka akilini kama mambo machache makuu.
Bila kujali motisha yako ni nini, chapisho hili litakusaidia kuifanya :-)
Sehemu ya 1 - Sanidi dimbwi jipya la PHP-FPM
Kwanza, unahitaji kupata saraka ambapo PHP-FPM huhifadhi usanidi wake wa dimbwi. Kwenye Ubuntu 14.04, hii ni /etc/php5/fpm/pool.d kwa chaguo-msingi. Labda tayari kuna faili inayoitwa www.conf , ambayo inashikilia usanidi wa dimbwi chaguo-msingi. Ikiwa haujaangalia faili hiyo kabla ya uwezekano unapaswa kuipitia na ubadilishe mipangilio ndani yake kwa usanidi wako kwani chaguo-msingi ni kwa seva isiyo na uwezo wa kutosha, lakini kwa sasa tengeneza nakala yake ili tusianze kutoka mwanzo:
Bila shaka, badilisha "mypool" na chochote unachotaka bwawa lako liitwe.
Sasa fungua faili mpya kwa kutumia nano au kihariri chochote cha maandishi unachopendelea na urekebishe ili kuendana na madhumuni yako. Labda utataka kuweka nambari za mchakato wa mtoto na ikiwezekana ni mtumiaji gani na kikundi kinaendelea chini yake, lakini mipangilio miwili ambayo lazima ubadilishe kabisa ni jina la dimbwi na tundu ambalo linasikiza, vinginevyo itagongana na dimbwi lililopo na vitu vitaacha kufanya kazi.
Jina la bwawa liko karibu na sehemu ya juu ya faili, iliyofungwa kwenye mabano ya mraba. Kwa chaguo-msingi ni [www] . Badilisha hii kwa chochote unachotaka; Ninapendekeza sawa na ulivyotaja faili ya usanidi, kwa hivyo kwa ajili ya mfano huu ubadilishe kuwa [mypool] . Usipoibadilisha, inaonekana kwamba PHP-FPM itapakia tu faili ya kwanza ya usanidi yenye jina hilo, ambayo kuna uwezekano wa kuvunja mambo.
Kisha unahitaji kubadilisha soketi au anwani unayosikiliza, ambayo inafafanuliwa na maagizo ya kusikiliza . Kwa chaguo-msingi, PHP-FPM hutumia soketi za Unix ili maagizo yako ya usikilizaji yataonekana kama hii:
Unaweza kuibadilisha kuwa jina lolote halali unalotaka, lakini tena, ninapendekeza kushikamana na kitu sawa na jina la faili la usanidi, kwa hivyo unaweza kuiweka kwa mfano:
Sawa, hifadhi faili na uondoke kwenye kihariri cha maandishi.
Sehemu ya 2 - Sasisha usanidi wa mwenyeji wa NGINX
Sasa unahitaji kufungua faili ya mwenyeji wa NGINX na usanidi wa FastCGI unaotaka kubadilisha kwenye bwawa jipya - au tuseme, unganisha kwenye tundu jipya.
Kwa chaguo-msingi kwenye Ubuntu 14.04, hizi huhifadhiwa chini ya /etc/nginx/sites-available, lakini pia zinaweza kufafanuliwa mahali pengine. Labda unajua vyema mahali ambapo usanidi wako wa mwenyeji wa kawaida unapatikana ;-)
Fungua faili inayofaa ya usanidi katika kihariri chako cha maandishi unachokipenda na utafute maagizo ya fastcgi_pass (ambayo lazima yawe katika muktadha wa eneo) yanayofafanua tundu la PHP-FPM. Lazima ubadilishe thamani hii ili ilingane na usanidi mpya wa dimbwi la PHP-FPM ulioweka chini ya hatua ya kwanza, kwa hivyo kuendelea na mfano wetu ungebadilisha hii kuwa:
fastcgi_pass unix:/var/run/php5-fpm-mypool.sock;
Kisha hifadhi na funga faili hiyo pia. Unakaribia kumaliza sasa.
Sehemu ya 3 - Anzisha upya PHP-FPM na NGINX
Ili kutumia mabadiliko ya usanidi ambao umefanya, anzisha upya PHP-FPM na NGINX. Inaweza kuwa ya kutosha kupakia tena badala ya kuanzisha upya , lakini ninaona kuwa imegongwa kidogo na kukosa, kulingana na mipangilio gani inabadilishwa. Katika hali fulani, nilitaka michakato ya zamani ya mtoto ya PHP-FPM kufa mara moja, kwa hivyo kuanzisha tena PHP-FPM ilihitajika, lakini kwa NGINX kupakia upya kunaweza kutosha. Ijaribu mwenyewe.
sudo service nginx restart
Na voila, umemaliza. Ikiwa ulifanya kila kitu kwa usahihi, mpangishi pepe uliyebadilisha sasa anapaswa kuwa anatumia dimbwi jipya la PHP-FPM na asishiriki michakato ya watoto na wapangishi wengine wowote pepe.