PHP-FPM Nedir?
PHP-FPM, PHP'nin daha hızlı çalışmasını sağlayan bir işlem yöneticisidir. Özellikle çoklu PHP işlem yönetimi ve yüksek verimlilik isteyen projelerde kullanılır. Apache veya Nginx gibi web sunucularıyla birlikte çalışarak, PHP'nin çok daha hızlı çalışmasını sağlar. Özellikle dinamik web siteleri ve uygulamalar için önemli bir gereksinim haline gelir.
PHP-FPM Kurulumu: Adım Adım
Linux sisteminizde PHP-FPM'i kurmak oldukça basittir. İşte adımlar:
1. PHP ve PHP-FPM’i Yüklemek:
Linux’unuzun paket yöneticisini kullanarak PHP-FPM'i yüklemeye başlayın. Eğer Ubuntu veya Debian tabanlı bir dağıtım kullanıyorsanız, terminali açarak aşağıdaki komutları çalıştırabilirsiniz:
sudo apt update
sudo apt install php-fpm
CentOS veya RedHat tabanlı bir sistem kullanıyorsanız, şu komutu kullanabilirsiniz:
sudo yum install php-fpm
Bu komut PHP ve PHP-FPM'i sisteminize kuracaktır.
2. PHP-FPM’i Başlatmak:
Kurulum tamamlandıktan sonra PHP-FPM servisini başlatmanız gerekecek. Bunu aşağıdaki komutla yapabilirsiniz:
sudo systemctl start php7.x-fpm
PHP sürümünüzün farklı olabileceğini unutmayın (örneğin PHP 8.0, PHP 7.4 vb.). PHP sürümünüzü doğru şekilde yazmalısınız.
3. PHP-FPM’in Otomatik Başlamasını Sağlamak:
Sistemin her açılışında PHP-FPM’in otomatik olarak başlatılmasını sağlamak için şu komutu kullanabilirsiniz:
sudo systemctl enable php7.x-fpm
Bu, sunucunuz her yeniden başlatıldığında PHP-FPM'in otomatik olarak başlamasını sağlar.
PHP-FPM Yapılandırma Ayarları
Kurulumdan sonra, PHP-FPM’i optimize etmek için bazı yapılandırmalar yapmanız gerekir. İşte PHP-FPM’in performansını artıracak birkaç önemli ayar:
1. PHP-FPM Yapılandırma Dosyasını Düzenlemek:
PHP-FPM’in yapılandırma dosyası genellikle `/etc/php/7.x/fpm/php-fpm.conf` veya `/etc/php/7.x/fpm/pool.d/www.conf` yolunda bulunur. Bu dosyayı bir metin düzenleyici ile açın:
sudo nano /etc/php/7.x/fpm/pool.d/www.conf
2. Çalışan PHP İşlem Sayısını Ayarlamak:
PHP-FPM’in her isteğe yanıt verecek kadar işlem başlatması gereklidir. Bu ayarları yapılandırarak, sisteminizin kaynaklarını verimli bir şekilde kullanmasını sağlayabilirsiniz. İşte bazı anahtar ayarlar:
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
Bu ayarlar, PHP-FPM’in dinamik olarak işlem başlatmasını sağlar. Yük altında daha fazla işlem başlatılırken, fazla işlem sayısı azalmaya başlar. Bu ayarları, web sunucunuzun trafiğine göre özelleştirebilirsiniz.
3. PHP-FPM Log Dosyalarını Yapılandırmak:
PHP-FPM log dosyalarını doğru şekilde yapılandırmak, hataları izlemek ve performans sorunlarını tespit etmek için çok önemlidir. Aşağıdaki satırlara dikkat edin:
error_log = /var/log/php-fpm.log
log_level = notice
Bu ayarlar, PHP-FPM loglarını belirtilen dosyaya yönlendirir ve hata seviyesini "notice" olarak ayarlar.
PHP-FPM ile Nginx veya Apache Entegrasyonu
PHP-FPM, en çok Nginx veya Apache gibi web sunucularıyla birlikte kullanılır. Eğer Nginx kullanıyorsanız, PHP-FPM ile entegrasyonu şöyle yapabilirsiniz:
1. Nginx Konfigürasyonu:
Nginx üzerinde PHP-FPM’i çalıştırmak için, aşağıdaki satırları Nginx konfigürasyon dosyasına eklemeniz gerekir:
server {
listen 80;
server_name example.com;
root /var/www/html;
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 yapılandırma, PHP dosyalarının Nginx üzerinden PHP-FPM aracılığıyla işlenmesini sağlar.
2. Apache Konfigürasyonu:
Apache kullanıyorsanız, aşağıdaki satırı Apache yapılandırma dosyanıza eklemeniz gerekir:
ProxyPassMatch ^/(.*\.php)$ unix:/var/run/php/php7.x-fpm.sock|fcgi://localhost/var/www/html
Bu ayar, Apache'nin PHP-FPM üzerinden PHP dosyalarını yönlendirmesini sağlar.
PHP-FPM ve Performans Optimizasyonu
PHP-FPM'i doğru şekilde yapılandırdığınızda, web uygulamanızın performansını gözle görülür şekilde artırabilirsiniz. Ancak, sisteminizin ve trafiğinizin gereksinimlerine göre bu ayarları sürekli gözden geçirmeniz gerekecektir.
1. Bellek Sınırlamaları:
PHP'nin bellek kullanımını sınırlamak için aşağıdaki ayarları kullanabilirsiniz:
memory_limit = 256M
Bu ayar, PHP'nin her betik çalıştırıldığında kullanabileceği maksimum belleği belirler.
2. Yük Dengelemesi ve İşlem Sayısı:
Daha fazla işlem çalıştırmak, PHP-FPM’i daha verimli hale getirebilir. Ancak, aşırı yükleme yapmamak için işlemleri dikkatli bir şekilde yönetin.
Sonuç
PHP-FPM, doğru yapılandırıldığında, web uygulamalarınızın hızını ve verimliliğini önemli ölçüde artırabilir. Yukarıdaki adımları takip ederek, PHP-FPM'i kurabilir ve ihtiyaçlarınıza göre yapılandırabilirsiniz. Unutmayın, her sistemin farklı gereksinimleri vardır, bu yüzden yapılandırmalarınızı sisteminize özel olarak ayarlamayı ihmal etmeyin.