cPanel'de PHP-FPM Ayarları ile Web Sitesi Performansını Zirveye Taşıyın
Günümüzün rekabetçi dijital dünyasında, hızlı yüklenen bir web sitesi sadece kullanıcı deneyimi için değil, aynı zamanda arama motoru sıralamaları için de kritik öneme sahiptir. Özellikle cPanel gibi popüler bir kontrol paneli kullanan web sitesi sahipleri için PHP-FPM (FastCGI Process Manager), performansı artırmak adına güçlü bir araçtır. Bu yazıda, cPanel ortamında PHP-FPM ayarlarını nasıl optimize edebileceğinizi adım adım inceleyeceğiz.
PHP-FPM Nedir ve Neden Önemlidir?
PHP-FPM, PHP isteklerini işlemek için tasarlanmış gelişmiş bir FastCGI uygulamasıdır. Geleneksel mod_php veya standart FastCGI uygulamalarına kıyasla, PHP-FPM çok daha verimli kaynak yönetimi sunar. Her bir PHP isteği için ayrı bir işlem oluşturmak yerine, önceden belirlenmiş sayıda "çocuk işlem" (child processes) havuzu oluşturur ve gelen istekleri bu havuzdaki işlemlere yönlendirir. Bu yapı, özellikle yüksek trafikli web sitelerinde bellek kullanımını azaltır, istek işleme hızını artırır ve sunucu kararlılığını iyileştirir.
- Daha Az Bellek Tüketimi: Her isteğe yeni bir işlem açmak yerine mevcut havuzu kullanır.
- Daha Yüksek Performans: İstekler daha hızlı işlenir.
- Gelişmiş Kararlılık: Bir işlemde hata olsa bile diğerleri etkilenmez.
- Esnek Konfigürasyon: Her web sitesi veya alan adı için farklı PHP versiyonları ve ayarları kullanma imkanı sunar.
cPanel'de PHP-FPM Nasıl Etkinleştirilir?
Çoğu modern cPanel sunucusunda PHP-FPM varsayılan olarak yüklü ve etkinleştirilebilir durumdadır. Eğer sunucunuzda MultiPHP Manager kuruluysa, etkinleştirme oldukça basittir:
- cPanel hesabınıza giriş yapın.
- "Yazılım" bölümünden "MultiPHP Manager" veya "Select PHP Version" seçeneğine tıklayın.
- İlgili alan adınızın yanındaki kutucuğu işaretleyin.
- "PHP Sürümü" açılır menüsünden istediğiniz PHP sürümünü seçin (örneğin, PHP 8.2).
- "Uygula" butonuna tıklamadan önce, genellikle PHP sürümünün yanında "FPM" seçeneğinin işaretli olduğundan emin olun veya "Handler" kısmında "fpm" seçeneğini seçin.
- Değişiklikleri kaydetmek için "Uygula" veya "Kaydet" butonuna basın.
Bu adımlarla PHP-FPM'i web siteniz için etkinleştirmiş olursunuz. Şimdi sıra geldi performans artışı sağlayacak ayarlara.
Önemli PHP-FPM Ayarları ve Optimizasyonu
PHP-FPM ayarları, sunucunuzun kaynaklarına (RAM, CPU) ve web sitenizin trafik yoğunluğuna göre dikkatlice yapılandırılmalıdır. Yanlış ayarlar, performans artışı yerine sunucu kararsızlığına yol açabilir. Bu ayarları genellikle "MultiPHP INI Düzenleyici" veya "Select PHP Version" arayüzündeki "PHP Ayarları" sekmesinden yapabilirsiniz.
1. pm (Process Manager)
Bu ayar, PHP-FPM'in çocuk süreçlerini nasıl yöneteceğini belirler. Üç ana değer vardır:
pm = dynamic(Önerilen): En yaygın ve esnek seçenektir. Belirli bir minimum ve maksimum çocuk süreci arasında dinamik olarak yeni süreçler oluşturur veya sonlandırır. Trafik dalgalanmaları olan siteler için idealdir.pm = ondemand: Süreçleri yalnızca bir istek geldiğinde başlatır ve belirli bir süre boşta kaldıktan sonra sonlandırır. Daha az bellek kullanır ancak ilk isteğe yanıt süresi biraz daha uzun olabilir. Düşük trafikli siteler için uygundur.pm = static: Belirli sayıda çocuk süreci her zaman çalışır durumda tutar. Yüksek ve sürekli trafik alan, çok güçlü sunucular için düşünülebilir ancak genellikle bellek israfına yol açabilir.
Çoğu durumda, dynamic modu en iyi dengeyi sunar.
2. pm.max_children
Aynı anda çalışabilecek maksimum çocuk süreci sayısını belirler. Bu değer, sunucunuzun RAM miktarı ile doğrudan ilişkilidir. Her bir PHP-FPM sürecinin ortalama bellek tüketimini (örneğin, 50MB) göz önünde bulundurarak ve sunucunuzda PHP-FPM için ayırdığınız toplam RAM miktarını (örneğin, 2GB) dikkate alarak hesaplayabilirsiniz. Genel formül: (Toplam RAM / Ortalama PHP Süreç Belleği). Ancak her zaman bir miktar RAM'i işletim sistemi ve diğer servisler için bırakmayı unutmayın.
pm.max_children = 203. pm.start_servers
PHP-FPM servisi başladığında veya yeniden yüklendiğinde başlatılacak çocuk süreci sayısını belirler. Genellikle pm.min_spare_servers ve pm.max_spare_servers değerlerinin arasında bir sayı olmalıdır.
pm.start_servers = 54. pm.min_spare_servers
Boşta bekleyen (istekleri bekleyen) minimum çocuk süreci sayısı. Bu, ani trafik artışlarında yeni süreçlerin oluşturulmasını beklemeksizin isteklerin hemen işlenmesini sağlar.
pm.min_spare_servers = 25. pm.max_spare_servers
Boşta bekleyen maksimum çocuk süreci sayısı. Bu sınırı aşan boşta süreçler sonlandırılır. Çok yüksek ayarlanması bellek israfına yol açabilir.
pm.max_spare_servers = 106. pm.max_requests
Her bir çocuk sürecinin yeniden başlatılmadan önce işleyeceği maksimum istek sayısı. Bu, bellek sızıntılarını önlemek ve süreçleri taze tutmak için faydalıdır. Genellikle 500-1000 arasında bir değer iyi bir başlangıç noktasıdır.
pm.max_requests = 5007. request_terminate_timeout
Bir PHP isteğinin işlenmesi için izin verilen maksimum süredir (saniye cinsinden). Uzun süren script'ler için bu değeri artırmak gerekebilir, ancak çok yüksek ayarlanması sunucu kaynaklarının uzun süre meşgul kalmasına neden olabilir.
request_terminate_timeout = 30sİlgili Diğer PHP Ayarları
PHP-FPM ayarlarıyla birlikte, genel PHP yapılandırma ayarlarınızı da gözden geçirmeniz önemlidir:
memory_limit: Bir PHP script'inin kullanabileceği maksimum bellek miktarı.max_execution_time: Bir PHP script'inin çalışmasına izin verilen maksimum süre.upload_max_filesize/post_max_size: Yüklenebilecek maksimum dosya boyutu.
Optimizasyon İpuçları ve İzleme
PHP-FPM ayarlarını yapılandırırken aşağıdaki ipuçlarını göz önünde bulundurun:
- Küçük Başlayın: İlk başta muhafazakar ayarlar yapın ve web sitenizin performansını izleyerek yavaş yavaş artırın.
- Sunucu Kaynaklarını İzleyin: Ayarları değiştirdikten sonra sunucunuzun CPU, RAM ve disk G/Ç kullanımını dikkatlice izleyin (örneğin,
htop, cPanel'deki Kaynak Kullanımı). - Hata Loglarını Kontrol Edin: PHP-FPM hata loglarını (genellikle
/var/log/php-fpm/altında veya cPanel'deki hata loglarında) düzenli olarak kontrol edin. - Yük Testleri Yapın: Değişikliklerin gerçek dünya performansı üzerindeki etkisini görmek için yük testi araçları kullanın.
- pm.status: PHP-FPM'in durumunu izlemek için
pm.status_pathayarını etkinleştirip bir durum sayfası oluşturabilirsiniz.
Sonuç
cPanel'de PHP-FPM ayarlarını doğru bir şekilde optimize etmek, web sitenizin hızını ve genel performansını önemli ölçüde artırabilir. Doğru yapılandırma ile sunucu kaynaklarınızı daha verimli kullanır, kullanıcı deneyimini iyileştirir ve arama motoru sıralamalarında avantaj elde edersiniz. Unutmayın ki her sunucu ve web sitesi farklıdır; bu nedenle en iyi sonuçları elde etmek için sürekli izleme ve ince ayarlar yapmak kritik öneme sahiptir.
Daha fazla performans ipucu ve sunucu yönetimi rehberleri için blogumu takipte kalın!