PHP-FPM Nedir ve Neden Kullanılır?
PHP-FPM, PHP uygulamalarını daha hızlı ve daha verimli bir şekilde çalıştırmak için tasarlanmış bir PHP işleme yöneticisidir. PHP-FPM, FastCGI protokolünü kullanarak, web sunucusunun PHP işlemlerini yönetmesini sağlar. Nginx gibi modern web sunucularıyla uyumlu çalışır ve özellikle yoğun trafiğe sahip sitelerde performans artışı sağlar.
PHP-FPM'in sunduğu avantajlar arasında daha iyi bellek yönetimi, daha hızlı istek yanıtları ve ölçeklenebilirlik bulunur. Özellikle büyük projelerde ve ticari sitelerde PHP-FPM kullanımı zorunlu hale gelir.
PHP-FPM Kurulumuna Başlarken
PHP-FPM'i kurmak oldukça basittir, ancak doğru adımları izlemek önemlidir. Şimdi, PHP-FPM kurulumuna nasıl başlayacağımıza bakalım.
Öncelikle, sisteminizdeki paket listelerini güncellemeniz gerekir:
sudo apt update
Sonrasında, PHP-FPM paketini ve gerekli PHP modüllerini yükleyeceğiz:
sudo apt install php-fpm php-mysql php-cli php-curl php-xml
Bu işlem, PHP-FPM'i ve PHP'nin bazı yaygın modüllerini kuracaktır. Kurulumun tamamlanmasının ardından, PHP-FPM'in çalışıp çalışmadığını kontrol edebilirsiniz:
sudo systemctl status php7.4-fpm
Bu komut, PHP-FPM servisini kontrol eder ve aktif olup olmadığını gösterir. Eğer her şey doğru kurulmuşsa, "active (running)" mesajını görmelisiniz.
PHP-FPM Konfigürasyonu
Kurulumdan sonra, PHP-FPM'in doğru bir şekilde yapılandırılması gerekir. PHP-FPM konfigürasyon dosyası genellikle `/etc/php/7.x/fpm/php.ini` yolunda bulunur. Buradaki ayarlar, PHP'nin genel davranışını kontrol eder.
Örneğin, bellek limitini artırmak veya hata raporlamayı açmak isteyebilirsiniz. Bu tür değişiklikler için ilgili PHP ini dosyasını düzenlemeniz gerekir.
PHP-FPM konfigürasyon dosyasını düzenlemek için şu komutu kullanabilirsiniz:
sudo nano /etc/php/7.4/fpm/php.ini
Burada, birkaç temel ayarı değiştirebilirsiniz:
- memory_limit: PHP'nin kullanabileceği maksimum bellek miktarını belirler. Eğer büyük projelerle çalışıyorsanız, bu değeri artırmanız gerekebilir.
- max_execution_time: PHP betiklerinin ne kadar süre çalışabileceğini belirler. Yoğun iş yükü olan projelerde, bu değeri artırmak gerekebilir.
Değişiklik yaptıktan sonra, PHP-FPM servisini yeniden başlatmayı unutmayın:
sudo systemctl restart php7.4-fpm
PHP-FPM ile Nginx veya Apache Entegrasyonu
PHP-FPM'i web sunucunuzla entegre etmek için genellikle iki popüler seçenek vardır: Nginx ve Apache. İki web sunucusu da PHP-FPM ile uyumlu çalışabilir, ancak her biri farklı bir yapılandırma gerektirir.
Nginx ile PHP-FPM Konfigürasyonu
Eğer Nginx kullanıyorsanız, PHP-FPM ile entegrasyon oldukça kolaydır. Nginx, PHP'yi işlemek için PHP-FPM'e istekler gönderir. Nginx konfigürasyon dosyasını düzenleyerek PHP-FPM ile uyumlu hale getirebilirsiniz.
Nginx konfigürasyon dosyasını açın:
sudo nano /etc/nginx/sites-available/default
Aşağıdaki kodu, `server` bloğunun içine ekleyin:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Değişiklikleri kaydettikten sonra Nginx servisini yeniden başlatın:
sudo systemctl restart nginx
Apache ile PHP-FPM Konfigürasyonu
Eğer Apache kullanıyorsanız, PHP-FPM'i Apache modülü olarak yüklemeniz gerekecek. PHP-FPM'i Apache ile entegre etmek için aşağıdaki komutu çalıştırarak gerekli modülleri yükleyin:
sudo apt install libapache2-mod-fcgid
Ardından, Apache konfigürasyon dosyasına şu satırı ekleyin:
AddHandler fcgid-script .php
FCGIWrapper /usr/lib/cgi-bin/php7.4-fpm .php
Son olarak, Apache'yi yeniden başlatın:
sudo systemctl restart apache2
PHP-FPM Performans Ayarları
PHP-FPM'i en verimli şekilde kullanabilmek için bazı performans ayarları yapmanız gerekebilir. PHP-FPM'in performansını optimize etmek için aşağıdaki adımları takip edebilirsiniz:
1. pm.max_children: Bu ayar, aynı anda çalışabilecek maksimum PHP-FPM işlem sayısını belirler. Yüksek trafikli sitelerde bu değeri artırmak faydalı olabilir.
2. pm.start_servers: PHP-FPM'in başlangıçta başlatacağı işlem sayısını belirler.
3. pm.min_spare_servers ve pm.max_spare_servers: PHP-FPM'in başlatacağı yedek işlem sayısını kontrol eder.
Bu ayarları yaparak, PHP-FPM'i sitenizin trafiğine göre optimize edebilirsiniz.
Sonuç
PHP-FPM, web uygulamalarınızın hızlı ve verimli çalışması için mükemmel bir çözümdür. Linux üzerinde PHP-FPM kurulumu ve yapılandırması oldukça basittir, ancak doğru yapılandırma ile çok daha hızlı ve ölçeklenebilir bir web sitesi elde edebilirsiniz. Nginx veya Apache ile entegre ederek, sitenizin performansını ciddi şekilde artırabilirsiniz. Şimdi, PHP-FPM'in gücünü keşfetmeye hazırsınız!