PHP-FPM Nedir?
PHP-FPM (FastCGI Process Manager), PHP’nin FastCGI uygulaması olarak çalışan bir proses yöneticisidir. Yüksek trafikli web sitelerinde performansı artırmak için tasarlanmıştır. PHP kodunun hızlı bir şekilde işlenmesini sağlarken, aynı zamanda bellek ve kaynak verimliliğini de artırır. PHP-FPM, özellikle Nginx gibi web sunucuları ile kullanıldığında yüksek performans sunar.
Gereksinimler
PHP-FPM’yi kullanmak için gerekli yazılımlar şunlardır: PHP 7.4, Nginx veya Apache ve ilgili kütüphaneler. İşletim sisteminin güncel ve gerekli paketlerin yüklenmiş olması önemlidir. Örnek olarak, Ubuntu veya Debian tabanlı sistemlerde aşağıdaki komutlar kullanılabilir:
“`bash
sudo apt update
sudo apt install -y php7.4-fpm
“`
Nginx ile PHP-FPM Kurulumu
Nginx ile PHP-FPM entegrasyonu için şu adımlar izlenebilir:
1. PHP-FPM Servisini Başlatma:
İlk olarak, PHP-FPM servisini başlatmak gerekir. Bu işlem için kullanılan komut:
“`bash
sudo systemctl start php7.4-fpm
“`
Servisin otomatik olarak başlaması için aşağıdaki komut kullanılmalıdır:
“`bash
sudo systemctl enable php7.4-fpm
“`
2. Nginx Konfigürasyonu:
Nginx konfigürasyon dosyası düzenlenmelidir. Genelde bu dosya `/etc/nginx/sites-available/default` veya benzeri bir konumda yer alır. Aşağıdaki örnek, PHP dosyalarının nasıl işleneceğini gösterir:
“`nginx
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
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;
}
}
“`
Burada `server_name` alanı, sunucuya erişilecek olan alan adı ile değiştirilmelidir. `root` alanı, dosya yolunu belirtmektedir.
3. Nginx’i Yeniden Başlatma:
Yapılan değişikliklerin etkili olabilmesi için Nginx servisi yeniden başlatılmalıdır:
“`bash
sudo systemctl restart nginx
“`
4. PHP Test Dosyası Oluşturma:
PHP’nin doğru çalışıp çalışmadığını test etmek için, `/var/www/html` dizininde bir PHP dosyası oluşturulmalıdır:
“`php
“`
Bu dosyanın ismi `info.php` olarak kaydedilmelidir. Tarayıcıda `http://example.com/info.php` adresine erişilerek PHP’nin yapılandırma bilgileri kontrol edilebilir.
Apache ile PHP-FPM Kurulumu
Apache ile PHP-FPM entegrasyonu yapmak için aşağıdaki adımlar izlenebilir:
1. Apache ve PHP-FPM Yükleme:
Apache sunucusu ile PHP-FPM’in birlikte çalışabilmesi için gerekli paketlerin yüklenmesi gerekir. Bu işlem:
“`bash
sudo apt install -y apache2 libapache2-mod-fcgid
“`
2. Apache Konfigürasyonu:
Apache’nin PHP-FPM ile çalışması için `conf` dosyası oluşturulmalıdır. `/etc/apache2/sites-available/000-default.conf` dosyasını açarak aşağıdaki ayarlamalar yapılmalıdır:
“`apache
ServerName example.com
DocumentRoot /var/www/html
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
SetHandler “proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/”
“`
3. Apache Modüllerinin Etkinleştirilmesi:
Gerekli modüllerin etkinleştirilmesi için şu komutlar kullanılmalıdır:
“`bash
sudo a2enmod proxy
sudo a2enmod proxy_fcgi
“`
4. Apache’yi Yeniden Başlatma:
Yapılan değişikliklerin geçerli olması için Apache servisi yeniden başlatılmalıdır:
“`bash
sudo systemctl restart apache2
“`
5. PHP Test Dosyası Oluşturma:
Nginx ile olduğu gibi, Apache altında da PHP’nin çalışıp çalışmadığı kontrol edilmelidir. `info.php` dosyası aynı dizinde oluşturulmalı ve tarayıcıda `http://example.com/info.php` yolu ile erişilmelidir.
Güvenlik Önlemleri
PHP-FPM ve web sunucusu kullanırken bazı güvenlik önlemleri almak önemlidir. Kullanıcı ve grup ayarlarının doğru yapılandırılması, web dizinlerinin yetkilendirilmesi ve PHP yapılandırma dosyasındaki `expose_php` ayarının kapatılması önemlidir. Ayrıca, gereksiz PHP modüllerinin devre dışı bırakılması ve `php.ini` dosyasındaki ayarların güvenli hale getirilmesi önerilir.
Sonuç
PHP 7.4 FastCGI Process Manager (PHP-FPM), yüksek performans sunan bir yapı sağlamaktadır. Nginx ve Apache gibi farklı web sunucuları ile kolayca entegre edilebilir. Yapılandırma aşamaları doğru bir şekilde uygulandığında, PHP uygulamalarının performansı önemli ölçüde artacaktır.


