PHP-FPM Nedir ve Neden Kullanılır?
PHP-FPM, PHP'nin daha verimli çalışmasını sağlamak amacıyla geliştirilmiş bir işlem yöneticisidir. FastCGI protokolü üzerinden çalışan bu sistem, PHP'nin daha hızlı işlenmesine olanak tanır ve yüksek trafiğe sahip web sitelerinde performansı büyük ölçüde artırır. Özellikle Nginx ile entegrasyonu çok yaygın olmakla birlikte, Apache gibi diğer web sunucuları ile de kullanılabilir.
Adım 1: PHP ve PHP-FPM Paketlerini Kurmak
İlk adım, PHP ve PHP-FPM paketlerini sisteminize yüklemektir. Bu işlem, PHP'nin doğru şekilde çalışabilmesi için gereklidir.
PHP-FPM'yi yüklemek için terminali açın ve aşağıdaki komutları girin:
sudo apt update
sudo apt install php-fpm php-mysql
Bu komut, PHP-FPM ve PHP'nin MySQL ile entegrasyonu için gerekli olan `php-mysql` paketini kuracaktır.
Adım 2: PHP-FPM Yapılandırması
PHP-FPM kurulumunu tamamladıktan sonra, PHP-FPM'nin yapılandırılması gerekmektedir. PHP-FPM 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.
PHP-FPM yapılandırmasını düzenlemek için aşağıdaki komutla yapılandırma dosyasını açın:
sudo nano /etc/php/7.x/fpm/pool.d/www.conf
Bu dosya, PHP-FPM'nin nasıl çalışacağını belirler. En önemli ayarlardan bazıları:
- user ve group: PHP-FPM'nin çalıştığı kullanıcı ve grup ayarları.
- listen: PHP-FPM'nin dinleyeceği soket. Genellikle `127.0.0.1:9000` veya bir Unix soketi kullanılır.
- pm: İşlem yöneticisinin tipi. `dynamic`, `static` veya `ondemand` olarak ayarlanabilir.
Aşağıdaki örnekte, PHP-FPM'nin dinleyeceği soket ve işlem yöneticisinin `dynamic` olarak ayarlandığı bir yapılandırma yer almaktadır:
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
Bu ayarlar, PHP-FPM'nin dinamik bir şekilde işlem başlatmasını sağlar. `pm.max_children`, PHP-FPM'nin çalıştırabileceği maksimum işlem sayısını belirler.
Adım 3: Web Sunucusu ile PHP-FPM Entegrasyonu
PHP-FPM, yalnızca PHP dosyalarını işlemek için gereklidir. Web sunucusu (Apache veya Nginx) ile entegrasyonu yapmalısınız.
Nginx ile PHP-FPM Entegrasyonu
Eğer Nginx kullanıyorsanız, PHP-FPM ile entegrasyon oldukça basittir. Nginx yapılandırma dosyasına aşağıdaki satırları ekleyin:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Bu yapılandırma, PHP-FPM'nin Nginx ile düzgün bir şekilde çalışmasını sağlar.
Apache ile PHP-FPM Entegrasyonu
Eğer Apache kullanıyorsanız, `mod_proxy_fcgi` modülünün etkinleştirilmiş olması gerekir. Aşağıdaki komutla modülü etkinleştirin:
sudo a2enmod proxy_fcgi setenvif
Daha sonra Apache yapılandırma dosyasına şu satırı ekleyin:
DocumentRoot /var/www/html
SetHandler "proxy:fcgi://127.0.0.1:9000"
Bu ayar, Apache'nin PHP dosyalarını PHP-FPM ile işlemesini sağlar.
Adım 4: PHP-FPM ve Web Sunucusunu Yeniden Başlatmak
PHP-FPM yapılandırma ayarlarını tamamladıktan sonra, PHP-FPM ve web sunucusunu yeniden başlatmalısınız. Aşağıdaki komutları kullanarak her iki servisi de yeniden başlatabilirsiniz:
sudo systemctl restart php7.x-fpm
sudo systemctl restart nginx
Apache kullanıyorsanız, şu komutu kullanın:
sudo systemctl restart apache2
Adım 5: PHP-FPM’nin Çalıştığını Kontrol Etmek
PHP-FPM'nin doğru şekilde çalışıp çalışmadığını kontrol etmek için PHP dosyası oluşturabilirsiniz. `/var/www/html` dizininde `info.php` dosyasını oluşturun ve içine şu kodu yazın:
Bu dosyayı tarayıcınızda açtığınızda, PHP-FPM'nin aktif olup olmadığını görebilirsiniz.
Sonuç
PHP-FPM, Linux sunucularında PHP tabanlı uygulamaların daha hızlı ve verimli çalışmasını sağlamak için mükemmel bir araçtır. Bu adımları takip ederek PHP-FPM'yi kolayca kurabilir ve yapılandırabilirsiniz. Hem Nginx hem de Apache ile uyumlu olarak çalışan PHP-FPM, web sitenizin hızını ve performansını ciddi anlamda artıracaktır.