PHP-FPM Nedir ve Neden Kullanılır?
PHP-FPM, PHP'nin her isteği daha hızlı ve verimli bir şekilde işlemesini sağlar. Apache'nin mod_php’sine kıyasla çok daha esnek ve performanslıdır.
PHP-FPM Nasıl Kurulur?
İlk adım olarak, PHP-FPM ve gerekli tüm paketleri yüklememiz gerekiyor. Linux dağıtımınıza göre uygun komutları kullanabilirsiniz.
Ubuntu/Debian için:
sudo apt update
sudo apt install php-fpm php-mysql
CentOS/RHEL için:
sudo yum install php-fpm php-mysqlnd
2. PHP-FPM Yapılandırması
Kurulum tamamlandıktan sonra, PHP-FPM yapılandırma dosyasını düzenlemeniz gerekir. Yapılandırma dosyası genellikle `/etc/php/7.x/fpm/php-fpm.conf` veya `/etc/php-fpm.d/www.conf` dizinlerinde bulunur.
Dosyayı düzenlemek için şu komutu kullanabilirsiniz:
sudo nano /etc/php/7.x/fpm/php-fpm.conf
Burada bazı önemli ayarları gözden geçirelim:
- `user` ve `group` değerlerini web sunucusunun çalıştığı kullanıcı ve grup ile aynı yapmalısınız. Genellikle bu `www-data` olur.
user = www-data
group = www-data
- `listen` direktifi, PHP-FPM'in hangi soket üzerinden çalışacağını belirtir. Apache veya Nginx ile uyumlu olmalı.
listen = /var/run/php/php7.x-fpm.sock
PHP-FPM ile Nginx Yapılandırması
1. Nginx Konfigürasyonu
Nginx'in konfigürasyon dosyasını açın:
sudo nano /etc/nginx/sites-available/default
Burada, PHP dosyalarının doğru bir şekilde işlenebilmesi için `location` bloğunun içine şu kodu ekleyin:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.x-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Bu, Nginx’in PHP-FPM ile doğru şekilde iletişim kurmasını sağlar.
2. Nginx’i Yeniden Başlatma
Yapılandırma dosyasını kaydettikten sonra, Nginx’i yeniden başlatın:
sudo systemctl restart nginx
PHP-FPM’i Başlatma ve Test Etme
sudo systemctl start php7.x-fpm
PHP-FPM'in otomatik olarak başlatılmasını sağlamak için şu komutu kullanabilirsiniz:
sudo systemctl enable php7.x-fpm
PHP-FPM’in doğru çalışıp çalışmadığını test etmek için basit bir PHP dosyası oluşturabilirsiniz. `/var/www/html` dizinine şu dosyayı ekleyin:
Bu dosyayı tarayıcınızda açtığınızda, PHP bilgilerini görmelisiniz. Eğer bu sayfa doğru şekilde açılıyorsa, PHP-FPM düzgün bir şekilde çalışıyor demektir!
PHP-FPM Performans Ayarları
1. `pm.max_children`: PHP-FPM’in aynı anda kaç işlem çalıştırabileceğini belirler. Trafiğin yoğun olduğu sitelerde bu değeri artırmak faydalı olabilir.
2. `pm.start_servers`: Başlangıçta çalıştırılacak işlem sayısını belirtir. Bu değeri doğru ayarlayarak, PHP-FPM’in daha hızlı yanıt vermesini sağlayabilirsiniz.
3. `pm.max_requests`: Bir işlemde işlenecek maksimum istek sayısını belirtir. Bu değeri düşük tutarak bellek sızıntılarını önleyebilirsiniz.