PHP-FPM nedir?
PHP-FPM (FastCGI Process Manager), PHP isteklerini web sunucusundan ayrı, yönetilen süreç havuzlarında çalıştıran bir PHP işleme yöntemidir. Nginx ve Apache ile kullanılır; performansı, kaynak kontrolünü ve site bazlı yalıtımı artırır.
Özellikle çok siteli sunucularda her siteye ayrı havuz tanımlanabildiği için güvenlik ve kaynak yönetimi açısından önemlidir.
Nasıl çalışır?
Web sunucusu PHP dosyası isteği aldığında bunu FastCGI üzerinden PHP-FPM’e iletir. PHP-FPM, önceden başlatılmış işçi (worker) süreçleri arasından birini seçer ve çalıştırır. Süreç sayısı havuz ayarlarıyla (örneğin pm.max_children) yönetilir.
Her havuz kendi kullanıcı ve grubuyla çalışabilir; bir sitedeki sorun diğer sitelerin dosyalarına erişimi zorlaştırır.
Sunucu ve hosting ortamında
cPanel, Plesk ve DirectAdmin gibi panellerde PHP-FPM, alan adı bazında etkinleştirilebilir. Havuz başına bellek ve süreç limiti tanımlanarak bir sitenin tüm sunucu kaynaklarını tüketmesi engellenir.
Yanlış yapılandırma performans sorunlarına yol açar: çok az süreç istekleri bekletir, çok fazla süreç belleği tüketir. Ayarlar, sunucu belleği ve ortalama süreç boyutuna göre planlanmalıdır.
Nasıl uygulanır?
- Her site için ayrı havuz ve ayrı sistem kullanıcısı tanımlayın.
pm.max_childrendeğerini sunucu belleğine göre hesaplayın.