Miklix

NGINX-də ayrı PHP-FPM hovuzlarını necə qurmaq olar

Nəşr olundu: 15 fevral 2025 at 11:56:55 UTC
Son yeniləmə: 12 yanvar 2026 at 08:30:26 UTC

Bu məqalədə, birdən çox PHP-FPM hovuzunu işə salmaq və NGINX-i FastCGI vasitəsilə onlara qoşmaq üçün lazım olan konfiqurasiya addımlarını nəzərdən keçirirəm, bu da virtual hostlar arasında proseslərin ayrılmasına və təcrid olunmasına imkan verir.


Bu səhifə mümkün qədər çox insan üçün əlçatan olması üçün ingilis dilindən maşın tərcümə edilib. Təəssüf ki, maşın tərcüməsi hələ mükəmməl texnologiya deyil, ona görə də səhvlər baş verə bilər. İstəyirsinizsə, orijinal ingilis versiyasına buradan baxa bilərsiniz:

How to Set Up Separate PHP-FPM Pools in NGINX

Bu yazıdakı məlumat Ubuntu Server 14.04 x64 üzərində işləyən NGINX 1.4.6 və PHP-FPM 5.5.9-a əsaslanır. Digər versiyalar üçün keçərli ola bilər və ya olmaya bilər. (Yeniləmə: Ubuntu Server 24.04, PHP-FPM 8.3 və NGINX 1.24.0 versiyasından etibarən bu yazıdakı bütün təlimatların hələ də işlədiyini təsdiqləyə bilərəm)

Hər şeyi eyni hovuzda işlətməkdənsə, birdən çox PHP-FPM uşaq proses hovuzu qurmağın bir sıra üstünlükləri var. Təhlükəsizlik, ayrılma/təcrid və resursların idarə edilməsi bir neçə əsas üstünlük kimi yada düşür.

Motivasiyanız nə olursa olsun, bu paylaşım sizə kömək edəcək :-)

1-ci hissə – Yeni PHP-FPM hovuzu qurun

Əvvəlcə PHP-FPM-in hovuz konfiqurasiyalarını saxladığı qovluğu tapmalısınız. Ubuntu 14.04-də bu, standart olaraq /etc/php5/fpm/pool.d-dir. Orada, ehtimal ki, standart hovuz üçün konfiqurasiyanı saxlayan www.conf adlı bir fayl var. Əgər əvvəllər həmin fayla baxmamısınızsa, çox güman ki, onu nəzərdən keçirib quraşdırmanız üçün parametrləri dəyişdirməlisiniz, çünki standart parametrlər kifayət qədər zəif server üçündür, amma indilik sıfırdan başlamaq məcburiyyətində qalmamaq üçün sadəcə bir surətini çıxarın:

sudo cp www.conf mypool.conf

Əlbəttə ki, "mypool" sözünü hovuzunuzun adının nə adlandırılmasını istədiyinizlə əvəz edin.

İndi yeni faylı nano və ya istədiyiniz mətn redaktorundan istifadə edərək açın və məqsədinizə uyğunlaşdırın. Çox güman ki, uşaq proses nömrələrini və hovuzun hansı istifadəçi və qrup altında işlədiyini tənzimləmək istəyəcəksiniz, lakin mütləq dəyişdirməli olduğunuz iki parametr hovuzun adı və dinlədiyi yuvadır, əks halda mövcud hovuzla ziddiyyət təşkil edəcək və işlər işləməyəcək.

Hovuzun adı faylın yuxarı hissəsində, kvadrat mötərizədə yerləşir. Varsayılan olaraq, bu [www]-dır. Bunu istədiyiniz kimi dəyişdirin; konfiqurasiya faylına verdiyiniz adla eyni şeyi təklif edirəm, ona görə də bu nümunə üçün onu [mypool] olaraq dəyişdirin. Əgər onu dəyişdirməsəniz, PHP-FPM yalnız bu adla ilk konfiqurasiya faylını yükləyəcək və bu, çox güman ki, işləri pozacaq.

Daha sonra dinlədiyiniz soketi və ya ünvanı dəyişdirməlisiniz, bu da dinləmə direktivi ilə müəyyən edilir. Varsayılan olaraq, PHP-FPM Unix soketlərindən istifadə edir, ona görə də dinləmə direktiviniz aşağıdakı kimi görünəcək:

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

İstədiyiniz etibarlı ada dəyişə bilərsiniz, amma yenə də konfiqurasiya faylının adına bənzər bir şey seçməyi məsləhət görürəm ki, məsələn, onu aşağıdakı kimi təyin edə bilərsiniz:

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

Yaxşı, onda faylı yadda saxla və mətn redaktorundan çıxın.

Hissə 2 – NGINX virtual host konfiqurasiyasını yeniləyin

İndi yeni bir hovuza dəyişdirmək istədiyiniz FastCGI konfiqurasiyası ilə NGINX virtual host faylını açmalısınız - daha doğrusu, yeni yuvaya qoşulmalısınız.

Ubuntu 14.04-də standart olaraq, bunlar /etc/nginx/sites-available qovluğunda saxlanılır, lakin başqa yerdə də təyin edilə bilər. Virtual host konfiqurasiyalarınızın harada yerləşdiyini yəqin ki, ən yaxşı bilirsiniz ;-)

Ən sevdiyiniz mətn redaktorunda müvafiq konfiqurasiya faylını açın və PHP-FPM soketini təyin edən fastcgi_pass direktivini (yer kontekstində olmalıdır) axtarın. Bu dəyəri birinci addımda etdiyiniz yeni PHP-FPM hovuz konfiqurasiyasına uyğun olması üçün dəyişdirməlisiniz, buna görə də nümunəmizi davam etdirərək bunu aşağıdakı kimi dəyişə bilərsiniz:

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

Sonra həmin faylı da yadda saxla və bağlayın. Artıq demək olar ki, hazırsınız.

3-cü hissə – PHP-FPM və NGINX-i yenidən başladın

Etdiyiniz konfiqurasiya dəyişikliklərini tətbiq etmək üçün həm PHP-FPM, həm də NGINX-i yenidən başladın. Yenidən başlatmaq əvəzinə yenidən yükləmək kifayət ola bilər, amma hansı parametrlərin dəyişdirilməsindən asılı olaraq bunun bir az çətin olduğunu düşünürəm. Xüsusi halda, köhnə PHP-FPM uşaq proseslərinin dərhal sıradan çıxmasını istəyirdim, ona görə də PHP-FPM-i yenidən başlatmaq lazım idi, lakin NGINX üçün yenidən yükləmə kifayət edə bilər. Özünüz sınayın.

sudo service php5-fpm restart
sudo service nginx restart

Və budur, hazırsınız. Əgər hər şeyi düzgün etmisinizsə, dəyişdirdiyiniz virtual host artıq yeni PHP-FPM hovuzundan istifadə etməli və uşaq proseslərini digər virtual hostlarla paylaşmamalıdır.

Bluesky-də paylaşınFacebookda paylaşLinkedIn-də paylaşınTumblr-da paylaşınX-də paylaşınLinkedIn-də paylaşınPinterest-də Pin

Mikkel Christensen

Müəllif haqqında

Mikkel Christensen
Mikkel miklix.com saytının yaradıcısı və sahibidir. O, peşəkar kompüter proqramçısı/proqram təminatı tərtibatçısı kimi 20 ildən artıq təcrübəyə malikdir və hazırda böyük Avropa İT korporasiyasında tam iş günü işləyir. Bloq yazmayanda o, boş vaxtını geniş çeşidli maraqlara, hobbilərə və fəaliyyətlərə sərf edir ki, bu da müəyyən dərəcədə bu veb-saytda əhatə olunan müxtəlif mövzularda əks oluna bilər.