Bloga dön
Ocak 13, 2026Rehberler

Optimum Performans İçin PHP-FPM Nasıl Yapılandırılır

PHP-FPM havuz ayarlarını, performans iyileştirmelerini ve Nginx ile entegrasyonu yapılandırmaya dair tam rehber.

Optimum Performans İçin PHP-FPM Nasıl Yapılandırılır

PHP-FPM (FastCGI Process Manager), yüksek trafikli web siteleri için yararlı ek özelliklere sahip alternatif bir PHP FastCGI uygulamasıdır. Doğru yapılandırma, sunucunuzun performansını ve kaynak kullanımını önemli ölçüde artırabilir.

PHP-FPM Kurulumu

bash
# Ubuntu/Debian
sudo apt update
sudo apt install php-fpm php-mysql php-mbstring php-xml php-curl -y

# CentOS/RHEL
sudo yum install php-fpm php-mysql php-mbstring php-xml php-curl -y

# PHP-FPM'i başlatın ve etkinleştirin
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

PHP-FPM Havuzunu (Pool) Yapılandırma

Performansı optimize etmek için havuz yapılandırma dosyasını düzenleyin:

bash
sudo nano /etc/php/8.1/fpm/pool.d/www.conf

# Temel ayarlar:
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data

# Süreç yönetimi
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 500

Performans İyileştirme

PHP-FPM'i sunucu kaynaklarınıza göre optimize edin:

bash
# Optimum max_children değerini hesaplayın:
# (Toplam RAM - Diğer servisler) / (PHP süreci başına bellek)
# Örnek: (2GB - 500MB) / 50MB = 30 max_children

# Daha iyi performans için php.ini'yi düzenleyin
sudo nano /etc/php/8.1/fpm/php.ini

# Önerilen ayarlar:
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M

# PHP-FPM'i yeniden başlatın
sudo systemctl restart php-fpm

Nginx Yapılandırması

Nginx'i PHP-FPM ile çalışacak şekilde yapılandırın:

bash
sudo nano /etc/nginx/sites-available/yourdomain.com

# PHP işlemesini ekleyin:
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

# Nginx'i test edin ve yeniden yükleyin
sudo nginx -t
sudo systemctl reload nginx

PHP-FPM İzleme

bash
# PHP-FPM durumunu kontrol edin
sudo systemctl status php-fpm

# PHP-FPM süreçlerini görüntüleyin
ps aux | grep php-fpm

# Havuz durumunu kontrol edin (durum sayfası etkinse)
curl http://localhost/status

# Günlükleri görüntüleyin
sudo tail -f /var/log/php8.1-fpm.log

PHP-FPM Optimizasyon İpuçları

  • Mevcut RAM'e göre pm.max_children değerini ayarlayın
  • Çoğu kullanım durumu için pm = dynamic kullanın
  • Bellek sızıntılarını önlemek için pm.max_requests değerini ayarlayın
  • Daha iyi performans için opcache'i etkinleştirin
  • PHP-FPM durumunu düzenli olarak izleyin
  • Farklı uygulamalar için ayrı havuzlar kullanın
  • PHP ve PHP-FPM'i güncel tutun