Aynı sunucuda birden fazla web sitesi çalışıyorsa, her sitenin PHP yükü birbirinden farklı olur. Yoğun siteler daha fazla worker isterken, basit bir tanıtım sitesi sorunsuz çalışır. PHP-FPM, her domain için ayrı bir havuz oluşturduğu için bu sınırları domain bazında ayarlamak performansı direkt etkiler.
Aynı sunucuda trafik seviyeleri birbirinden çok farklı siteler bulunabilir. Bir e-ticaret sitesi her saniye onlarca isteği işlerken, bir blog sayfası daha sakin çalışır. Bu sitelerin hepsine aynı pm.max_children veya aynı memory limiti verildiğinde, bazıları gereksiz RAM tüketir, bazıları ise yük altında 503 veya 504 hatası üretmeye başlar.
Plesk Üzerinde PHP-FPM Modunu Kontrol Etme
Ayarlara başlamadan önce domainin PHP-FPM modunda çalıştığını kontrol edelim. Bunun için Plesk panelinde
Tools & Settings → PHP Settings bölümünde aktif PHP handler türünü görebilirsiniz. Daha sonra ayar yapacağınız domaini açalım
Domains → Domain → PHP Settings
Burada Run PHP as kısmı FPM değilse, modu FPM application served by Apache/Nginx olarak değiştirelim. Bu değişiklik domain için FPM havuzunu aktif hale getirir.

Aktif PHP-FPM servislerini listeleyelim
systemctl | grep fpmPlesk üzerindeki FPM havuzlarını doğrulayalım
plesk bin php_handler --list | grep fpmBelirli bir PHP-FPM servisinin durumunu kontrol edelim
systemctl status plesk-php80-fpm.serviceDomain Bazlı PHP-FPM Limit Alanlarını Tanıyalım
Domain için PHP-FPM ayarlarının yer aldığı kısımda ihtiyacımız olan tüm parametreler görünür.
- pm modu sitenin süreç yönetimini belirler
- pm.max_children domainin aynı anda açabileceği maksimum PHP işlemi
- pm.max_requests bir sürecin yeniden başlatılmadan çalıştıracağı istek sayısı
- start_servers, min_spare_servers, max_spare_servers dynamic mod için süreç yönetimi
- memory_limit, max_execution_time, max_input_vars PHP’nin domain bazındaki temel sınırları
Bu değerler yalnızca ilgili domain için geçerlidir. Aynı sunucudaki diğer alan adlarını etkilemez.
Plesk Üzerinde Domain Bazlı Limitleri Ayarlayalım
pm.max_children Değerinin Ayarlanması
FPM ayarlarının bulunduğu alt bölüme geçelim. Burada “pm” modunu seçelim. Dynamic veya ondemand arasında seçim yaparak siteye uygun bir yapı belirleyebiliriz. Daha sonra pm.max_children değerini sitenin ihtiyacına göre düzenleyelim.
Dynamic Mod İçin Ek Değerlerin Güncellenmesi
Dynamic mod seçiliyse start_servers, min_spare_servers ve max_spare_servers değerlerini de trafiğe uygun şekilde güncelleyebiliriz.
PHP Limitlerinin Düzenlenmesi
PHP’nin domain bazlı sınırları olan memory_limit, max_execution_time ve max_input_time değerlerini düzenledikten sonra ayarları kaydedelim.
Bazı Plesk sürümlerinde değişiklikler anında aktif olur. Bazı durumlarda ilgili PHP-FPM servisinin yeniden yüklenmesi gerekebilir. Bu işlem SSH üzerinden yapılabilir. XX yerine site için kullanılan PHP sürümü yazılır.
service plesk-phpXX-fpm restartİzleme ve Hata Ayıklama
Domain Log Dosyalarını Kontrol Edelim
Yapılandırmanın doğru çalışıp çalışmadığını anlamak için ilgili domainin log dosyalarını inceleyelim.
/var/www/vhosts/system/domain/logs/PHP-FPM Servis Loglarını Kontrol Edelim
FPM’e bağlı hataları izlemek için PHP sürümüne göre log dizinini kontrol edelim.
/var/log/plesk-phpXX-fpm/Hangi Log Mesajı Ne Anlama Gelir?
Loglarda görülen bazı mesajlar mevcut ayarların yetersiz veya gereğinden fazla olduğunu gösterebilir:
- 503 Service Unavailable
PHP-FPM taleplere zamanında cevap veremiyor olabilir.

- upstream closed connection
PHP süreçleri bağlantıyı zamanında tamamlayamıyor; yetersiz worker olabilir. - server reached pm.max_children
Mevcut süreç sayısı maksimuma ulaşmış; pm.max_children düşük kalmış olabilir.
Sık Sorulan Sorular
503 hataları hep belirli dakikalarda çıkıyorsa sebep ne olabilir?
Genelde cron job, backup job veya API yoğunluğu gibi periyodik yük patlamaları nedeniyle pm.max_children tıkanır.
server reached pm.max_children settingBu durumda domain özelindeki max_children değerini biraz artırmak ya da cron zamanlamasını kaydırmak çözüm sağlar.
Nginx reverse proxy kullanan sitelerde FPM limitleri neden daha kritik?
Eğer pm.max_children düşükse PHP side tıkanır, Nginx ise upstream hatası verir:
upstream prematurely closed connection while reading response headerBu hatayı gördüğünüzde önce domainin FPM limitsizliğini, sonra da Nginx timeout değerini kontrol etmek gerekir.
PHP-FPM havuzunun domain bazında açılmadığını nasıl anlarım?
/etc/php-fpm.d/ veya /opt/plesk/php/*/etc/php-fpm.d/ altında domain adına göre oluşmuş .conf dosyasını kontrol ederek havuzun gerçekten açıldığını doğrulayabilirsiniz.

