Miklix

NGINX'te Ayrı PHP-FPM Havuzları Nasıl Kurulur

Yayınlandı: 15 Şubat 2025 11:53:07 UTC

Bu makalede, birden fazla PHP-FPM havuzunu çalıştırmak ve NGINX'i FastCGI aracılığıyla bunlara bağlamak, böylece sanal sunucular arasında işlem ayrımı ve izolasyonu sağlamak için gereken yapılandırma adımlarını ele alacağım.


Bu sayfa, mümkün olduğunca çok kişi tarafından erişilebilir olması amacıyla İngilizce'den makine çevirisiyle çevrilmiştir. Ne yazık ki, makine çevirisi henüz mükemmelleştirilmiş bir teknoloji değildir, bu nedenle hatalar meydana gelebilir. Tercih ederseniz, orijinal İngilizce versiyonu buradan görüntüleyebilirsiniz:

How to Set Up Separate PHP-FPM Pools in NGINX

Bu gönderideki bilgiler Ubuntu Server 14.04 x64 üzerinde çalışan NGINX 1.4.6 ve PHP-FPM 5.5.9'a dayanmaktadır. Diğer sürümler için geçerli olabilir veya olmayabilir. (Güncelleme: Ubuntu Server 24.04, PHP-FPM 8.3 ve NGINX 1.24.0 itibariyle bu gönderideki tüm talimatların hala çalıştığını doğrulayabilirim)

Her şeyi aynı havuzda çalıştırmak yerine birden fazla PHP-FPM alt işlem havuzu kurmanın birçok avantajı vardır. Güvenlik, ayırma/yalıtım ve kaynak yönetimi birkaç önemli avantaj olarak akla gelir.

Motivasyonunuz ne olursa olsun, bu yazı bunu başarmanıza yardımcı olacak :-)


Bölüm 1 – Yeni bir PHP-FPM havuzu kurun

Öncelikle, PHP-FPM'nin havuz yapılandırmalarını depoladığı dizini bulmanız gerekir. Ubuntu 14.04'te, varsayılan olarak bu /etc/php5/fpm/pool.d'dir. Muhtemelen orada www.conf adında varsayılan havuz yapılandırmasını tutan bir dosya vardır. Daha önce bu dosyaya bakmadıysanız, büyük ihtimalle onu incelemeli ve kurulumunuz için içindeki ayarları değiştirmelisiniz çünkü varsayılanlar oldukça güçsüz bir sunucu içindir, ancak şimdilik sıfırdan başlamak zorunda kalmamak için bir kopyasını oluşturun:

sudo cp www.conf mypool.conf

Elbette, "mypool" ifadesini havuzunuzun adının ne olmasını istiyorsanız onunla değiştirebilirsiniz.

Şimdi nano veya tercih ettiğiniz herhangi bir metin düzenleyicisini kullanarak yeni dosyayı açın ve amacınıza uyacak şekilde ayarlayın. Muhtemelen alt işlem numaralarını ve muhtemelen havuzun hangi kullanıcı ve grup altında çalıştığını ayarlamak isteyeceksiniz, ancak mutlaka değiştirmeniz gereken iki ayar havuzun adı ve dinlediği sokettir, aksi takdirde mevcut havuzla çakışır ve her şey çalışmayı durdurur.

Havuzun adı dosyanın en üstüne yakın bir yerde, köşeli parantez içindedir. Varsayılan olarak [www]' dir. Bunu istediğiniz şekilde değiştirin; yapılandırma dosyasını adlandırdığınız gibi adlandırmanızı öneririm, bu nedenle bu örnek için [mypool] olarak değiştirin. Değiştirmezseniz, PHP-FPM'nin yalnızca bu adı taşıyan ilk yapılandırma dosyasını yükleyeceği ve bunun da işleri bozacağı anlaşılıyor.

Daha sonra dinlediğiniz soketi veya adresi değiştirmeniz gerekir, bu listen yönergesi tarafından tanımlanır. Varsayılan olarak, PHP-FPM Unix soketlerini kullanır, bu nedenle listen yönergeniz muhtemelen şöyle görünecektir:

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

Bunu istediğiniz geçerli bir isimle değiştirebilirsiniz, ancak yine de yapılandırma dosya adına benzer bir şey kullanmanızı öneririm, örneğin şunu ayarlayabilirsiniz:

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

Tamamdır, dosyayı kaydedip metin düzenleyiciden çıkalım.


Bölüm 2 – NGINX sanal ana bilgisayar yapılandırmasını güncelleyin

Şimdi, değiştirmek istediğiniz FastCGI yapılandırmasıyla NGINX sanal ana bilgisayar dosyasını yeni bir havuza açmanız veya daha doğrusu yeni sokete bağlanmanız gerekiyor.

Ubuntu 14.04'te varsayılan olarak bunlar /etc/nginx/sites-available altında saklanır, ancak başka bir yerde de tanımlanabilir. Sanal ana bilgisayar yapılandırmalarınızın nerede bulunduğunu muhtemelen siz daha iyi bilirsiniz ;-)

İlgili yapılandırma dosyasını favori metin düzenleyicinizde açın ve PHP-FPM soketini tanımlayan fastcgi_pass yönergesini (bir konum bağlamında olması gerekir) arayın. Bu değeri, birinci adımda yaptığınız yeni PHP-FPM havuz yapılandırmasıyla eşleşecek şekilde değiştirmelisiniz, bu nedenle örneğimize devam ederseniz bunu şu şekilde değiştirirsiniz:

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

Daha sonra bu dosyayı da kaydedip kapatın. Artık neredeyse bitti.


Bölüm 3 – PHP-FPM ve NGINX'i yeniden başlatın

Yaptığınız yapılandırma değişikliklerini uygulamak için hem PHP-FPM'i hem de NGINX'i yeniden başlatın. restart yerine reload yeterli olabilir , ancak hangi ayarların değiştirildiğine bağlı olarak biraz isabetli ve isabetsiz olduğunu düşünüyorum. Belirli durumda, eski PHP-FPM alt süreçlerinin hemen ölmesini istedim, bu nedenle PHP-FPM'yi yeniden başlatmak gerekiyordu, ancak NGINX için bir yeniden yükleme yeterli olabilir. Kendiniz deneyin.

sudo service php5-fpm restart
sudo service nginx restart

Ve işte, bitirdiniz. Her şeyi doğru yaptıysanız, değiştirdiğiniz sanal ana bilgisayar artık yeni PHP-FPM havuzunu kullanıyor olmalı ve alt süreçleri başka sanal ana bilgisayarlarla paylaşmıyor olmalı.

Bluesky'de paylaşFacebook'ta paylaşLinkedIn'de paylaşTumblr'da paylaşX'te paylaşLinkedIn'de paylaşPinterest'e Pinleyin

Mikkel Bang Christensen

Yazar Hakkında

Mikkel Bang Christensen
Mikkel miklix.com'un yaratıcısı ve sahibidir. Profesyonel bilgisayar programcısı/yazılım geliştiricisi olarak 20 yılı aşkın deneyime sahiptir ve şu anda büyük bir Avrupa BT şirketinde tam zamanlı olarak çalışmaktadır. Blog yazmadığı zamanlarda, boş zamanlarını çok çeşitli ilgi alanları, hobiler ve aktivitelerle geçirmektedir ve bu da bir dereceye kadar bu web sitesinde kapsanan konuların çeşitliliğine yansıyabilir.