Miklix

Ինչպես տեղադրել առանձին PHP-FPM-ի ավազաններ NGINX-ում

Հրապարակվել է՝ 15 փետրվարի, 2025 թ., 11:55:26 UTC
Վերջին թարմացումը՝ 12 հունվարի, 2026 թ., 08:30:20 UTC

Այս հոդվածում ես կանդրադառնամ PHP-FPM մի քանի լողավազաններ գործարկելու և NGINX-ը դրանց FastCGI-ի միջոցով միացնելու համար անհրաժեշտ կարգավորման քայլերին, ինչը թույլ կտա վիրտուալ հոսթերի միջև գործընթացների տարանջատում և մեկուսացում։


Այս էջը ավտոմատ կերպով թարգմանվել է անգլերենից՝ հնարավորինս շատ մարդկանց համար հասանելի դարձնելու համար: Ցավոք, մեքենայական թարգմանությունը դեռ կատարելագործված տեխնոլոգիա չէ, ուստի կարող են սխալներ առաջանալ: Եթե ​​նախընտրում եք, կարող եք դիտել բնօրինակ անգլերեն տարբերակը այստեղ.

How to Set Up Separate PHP-FPM Pools in NGINX

Այս գրառման մեջ տեղեկատվությունը հիմնված է Ubuntu Server 14.04 x64-ի վրա աշխատող NGINX 1.4.6 և PHP-FPM 5.5.9 տարբերակների վրա: Այն կարող է վավեր լինել կամ չլինել այլ տարբերակների համար: (Թարմացում. կարող եմ հաստատել, որ Ubuntu Server 24.04, PHP-FPM 8.3 և NGINX 1.24.0 տարբերակների համար այս գրառման բոլոր հրահանգները դեռևս գործում են):

Մի քանի PHP-FPM ենթապրոցեսների լողավազաններ կարգավորելը մի շարք առավելություններ ունի, քան ամեն ինչ նույն լողավազանում աշխատեցնելը։ Անվտանգությունը, տարանջատումը/մեկուսացումը և ռեսուրսների կառավարումը մի քանի հիմնական առավելություններից են։

Անկախ ձեր մոտիվացիայից, այս գրառումը կօգնի ձեզ դա անել :-)

Մաս 1 – Ստեղծեք նոր PHP-FPM լողավազան

Նախ, դուք պետք է գտնեք այն գրացուցակը, որտեղ PHP-FPM-ը պահում է իր լողավազանի կոնֆիգուրացիաները: Ubuntu 14.04-ում սա լռելյայն /etc/php5/fpm/pool.d է: Հավանաբար այնտեղ արդեն կա www.conf անունով ֆայլ, որը պարունակում է լռելյայն լողավազանի կոնֆիգուրացիան: Եթե դուք նախկինում չեք նայել այդ ֆայլը, հավանական է, որ դուք պետք է այն դիտեք և փոփոխեք դրա կարգավորումները ձեր կարգավորման համար, քանի որ լռելյայն արժեքները նախատեսված են բավականին թույլ սերվերի համար, բայց առայժմ պարզապես պատճենեք այն, որպեսզի մենք ստիպված չլինենք սկսել զրոյից:

sudo cp www.conf mypool.conf

Իհարկե, «mypool»-ը փոխարինեք այն անվանումով, ինչպես ուզում եք, որ ձեր լողավազանը կոչվի։

Հիմա բացեք նոր ֆայլը՝ օգտագործելով nano կամ ձեր նախընտրած ցանկացած տեքստային խմբագրիչ և կարգավորեք այն ձեր նպատակին համապատասխան։ Դուք հավանաբար կցանկանաք փոփոխել դուստր պրոցեսների համարները և հնարավոր է՝ որ օգտատիրոջ և խմբի ներքո է լողավազանը գործում, բայց երկու կարգավորումները, որոնք դուք անպայման պետք է փոխեք, լողավազանի անունն ու այն սոքեթն են, որին այն լսում է, հակառակ դեպքում այն կհակասի առկա լողավազանի հետ, և ամեն ինչ կդադարի աշխատել։

Ֆայլի վերևի մասում գտնվող լողավազանի անունը գտնվում է քառակուսի փակագծերի մեջ։ Ըստ լռելյայնի՝ այն [www] է։ Փոխեք այն ձեր ուզածով. ես առաջարկում եմ նույն անունը տալ, ինչ դուք անվանեցիք կարգավորման ֆայլը, այնպես որ, այս օրինակի համար փոխեք այն [mypool]-ի։ Եթե չփոխեք այն, PHP-FPM-ը, կարծես, կբեռնի միայն առաջին կարգավորման ֆայլը այդ անունով, ինչը, հավանաբար, կխաթարի աշխատանքը։

Այնուհետև դուք պետք է փոխեք լսվող սոքեթը կամ հասցեն, որը սահմանվում է listen հրահանգով: Ըստ լռելյայնի, PHP-FPM-ը օգտագործում է Unix սոքեթներ, ուստի ձեր listen հրահանգը, հավանաբար, կունենա հետևյալ տեսքը՝

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

Կարող եք այն փոխել ցանկացած վավեր անվանմամբ, բայց կրկին, խորհուրդ եմ տալիս օգտագործել կարգավորման ֆայլի անվանը նման մի բան, որպեսզի, օրինակ, այն սահմանեք հետևյալ կերպ՝

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

Լավ, ապա պահպանեք ֆայլը և դուրս եկեք տեքստային խմբագրիչից։

Մաս 2 – NGINX վիրտուալ հոսթի կոնֆիգուրացիայի թարմացում

Հիմա դուք պետք է բացեք NGINX վիրտուալ հոսթի ֆայլը FastCGI կոնֆիգուրացիայով, որը ցանկանում եք փոխել նոր լողավազանի, կամ ավելի ճիշտ՝ միանալ նոր սոքեթին։

Ubuntu 14.04-ում լռելյայնորեն դրանք պահվում են /etc/nginx/sites-available-ում, բայց կարող են սահմանվել նաև այլուր: Դուք հավանաբար ավելի լավ գիտեք, թե որտեղ են գտնվում ձեր վիրտուալ հոսթի կոնֆիգուրացիաները ;-)

Բացեք համապատասխան կարգավորման ֆայլը ձեր նախընտրած տեքստային խմբագրիչում և փնտրեք fastcgi_pass դիրեկտիվը (որը պետք է լինի location համատեքստում), որը սահմանում է PHP-FPM socket-ը: Դուք պետք է փոխեք այս արժեքը այնպես, որ այն համապատասխանի առաջին քայլում կատարված PHP-FPM pool-ի նոր կարգավորմանը, ուստի շարունակելով մեր օրինակը՝ դուք կփոխեք սա հետևյալ կերպ.

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

Այնուհետև պահպանեք և փակեք նաև այդ ֆայլը։ Գրեթե ավարտված է։

Մաս 3 – PHP-FPM-ի և NGINX-ի վերագործարկում

Կատարված կարգավորումների փոփոխությունները կիրառելու համար վերագործարկեք PHP-FPM-ը և NGINX-ը: Վերագործարկման փոխարեն կարող է բավարար լինել վերագործարկելը, բայց ես կարծում եմ, որ դա մի փոքր անհաջող է, կախված նրանից, թե որ կարգավորումներն են փոխվել: Կոնկրետ դեպքում ես ուզում էի, որ հին PHP-FPM ենթապրոցեսները անմիջապես անջատվեն, ուստի անհրաժեշտ էր վերագործարկել PHP-FPM-ը, բայց NGINX-ի դեպքում վերագործարկումը կարող է բավարար լինել: Փորձեք ինքներդ:

sudo service php5-fpm restart
sudo service nginx restart

Եվ վուալյա, դուք ավարտեցիք։ Եթե ամեն ինչ ճիշտ եք արել, ապա ձեր փոփոխած վիրտուալ հոսթը պետք է օգտագործի նոր PHP-FPM լողավազանը և չկիսվի դուստր պրոցեսներով որևէ այլ վիրտուալ հոսթի հետ։

Կիսվեք Bluesky-ումԿիսվել Facebook-ումԿիսվեք LinkedIn-ումԿիսվեք Tumblr-ումԿիսվեք X-ումԿիսվեք LinkedIn-ումԿպցնել Պինթրեսթում

Միկել Քրիստենսեն

Հեղինակի մասին

Միկել Քրիստենսեն
Mikkel-ը miklix.com-ի ստեղծողն ու սեփականատերն է: Նա ունի ավելի քան 20 տարվա աշխատանքային փորձ՝ որպես պրոֆեսիոնալ համակարգչային ծրագրավորող/ծրագրային ապահովման մշակող և ներկայումս լրիվ դրույքով աշխատում է եվրոպական խոշոր ՏՏ կորպորացիայի մեջ: Երբ նա բլոգ չի գրում, նա իր ազատ ժամանակն անցկացնում է հետաքրքրությունների, հոբբիների և գործունեության լայն շրջանակի վրա, որոնք որոշ չափով կարող են արտացոլվել այս կայքում ընդգրկված թեմաների բազմազանության մեջ: