PHP-FPM Nedir ve Neden Kullanılır?
PHP-FPM, PHP'nin yüksek performanslı bir versiyonudur ve özellikle büyük trafik alan web sitelerinde tercih edilir. Normalde, PHP çalıştıran bir web sunucusu her istek için yeni bir işlem başlatır. Ancak PHP-FPM, PHP kodlarını işleyecek bir dizi işlem başlatarak, bu işlemleri yeniden kullanmak suretiyle kaynakları daha verimli kullanır. Bu da yüksek trafik ve performans gereksinimleri olan projeler için büyük bir avantaj sağlar.
Adım 1: PHP-FPM’i Kurmak
Linux sisteminize PHP-FPM kurmak oldukça basittir. Aşağıdaki komutları terminalde sırasıyla çalıştırarak kurulum işlemini tamamlayabilirsiniz.
Ubuntu/Debian Tabanlı Sistemler İçin:
sudo apt update
sudo apt install php-fpm
CentOS/RHEL Tabanlı Sistemler İçin:
sudo yum install php-fpm
Komutlar tamamlandıktan sonra PHP-FPM kurulum işleminiz bitti. Şimdi PHP-FPM servisini başlatalım.
Servisi Başlatma:
sudo systemctl start php7.4-fpm # PHP sürümünüz farklı olabilir
sudo systemctl enable php7.4-fpm # Başlangıçta otomatik başlatmak için
Servisin Durumunu Kontrol Etme:
sudo systemctl status php7.4-fpm
Adım 2: PHP-FPM Yapılandırmasını Düzenlemek
PHP-FPM kurulumunu başarıyla tamamladıktan sonra, yapılandırma dosyasını düzenleyerek PHP-FPM’in nasıl çalışacağını belirleyebilirsiniz. Yapılandırma dosyasını açmak için şu komutu kullanabilirsiniz:
sudo nano /etc/php/7.4/fpm/php-fpm.conf
Burada yapmanız gereken bazı temel ayarlamalar vardır:
- pm: Bu parametre, PHP-FPM’in işlem yönetim biçimini belirler. Genelde "dynamic" veya "ondemand" seçenekleri tercih edilir.
- pm.max_children: Bu, aynı anda çalışacak maksimum PHP-FPM işlem sayısını belirler. Web sitenizin trafiğine göre ayarlamak önemlidir.
- pm.start_servers: PHP-FPM’in başlatıldığında kaç işlem açacağını belirler.
- pm.min_spare_servers ve pm.max_spare_servers: PHP-FPM’in fazla yük altında iken ne kadar bekleyeceğini ayarlamanıza olanak tanır.
Örneğin, aşağıdaki gibi bir yapılandırma yapabilirsiniz:
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
PHP-FPM’i yeniden başlatmayı unutmayın:
sudo systemctl restart php7.4-fpm
Adım 3: Web Sunucusunu PHP-FPM ile Entegre Etmek
PHP-FPM’i kurduktan sonra, bir web sunucusu ile entegrasyonu sağlamamız gerekir. Bu rehberde, Apache veya Nginx kullanarak entegrasyonu anlatacağım.
Apache İçin:
Apache ile PHP-FPM’i kullanmak için mod_proxy_fcgi modülünü etkinleştirmeniz gerekir.
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.4-fpm
sudo systemctl restart apache2
Nginx İçin:
Nginx’i PHP-FPM ile kullanmak biraz farklıdır. Nginx, PHP-FPM ile iletişim kurabilmek için FastCGI'yi kullanır. Aşağıdaki gibi bir yapılandırma yapabilirsiniz:
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;
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;
}
}
Yukarıdaki yapılandırma, PHP-FPM ile Nginx’in uyum içinde çalışmasını sağlar. Şimdi Nginx’i yeniden başlatalım:
sudo systemctl restart nginx
Adım 4: PHP-FPM Performansını İyileştirmek
PHP-FPM, sunucunun kaynaklarını daha verimli kullanmak için yapılandırılabilir. PHP-FPM’in performansını artırmak için birkaç öneri:
- PHP-FPM’in bellek kullanımını sınırlayın: Özellikle bellekli ve yüksek trafikli siteler için, `pm.max_children` parametresi fazla yüklenmemek için önemlidir.
- PHP Opcode Cache: PHP-FPM ile birlikte `opcache` kullanmak, PHP kodlarının daha hızlı çalışmasını sağlar. Yapılandırma dosyasındaki `opcache.enable=1` ayarını etkinleştirerek bunu aktif hale getirebilirsiniz.
- Logları analiz edin: Hataları ve performans sorunlarını tespit etmek için PHP-FPM loglarını düzenli olarak kontrol edin.
Sonuç: Hızlı ve Verimli Web Sunucusu
PHP-FPM, web sitenizin performansını artırmak için güçlü bir araçtır. Kurulum ve yapılandırma adımlarını izleyerek PHP-FPM’i Linux sisteminizde sorunsuz bir şekilde çalıştırabilir ve web sitenizin hızını artırabilirsiniz. Web sunucusunun her zaman verimli çalışması için yapılandırmanızı düzenli olarak gözden geçirin ve trafiğinize göre ayarlamalar yapın.