PHP Kurulumu ve Optimize Etme: OPcache, FPM Ayarları

HazalHost Teknik Ekip
09 Nisan 2026
8 dk okuma
Sunucu Yönetimi

PHP kurulumu genel olarak kolaydır ancak yüksek trafikli bir sitede verimli çalışmasını sağlamak optimize edilmemiş bir PHP ile imkansızdır. Bu rehberde Ubuntu üzerinde en güncel PHP versiyonunun kurulumunu (PHP-FPM ile) görecek ve yüksek performans sağlaması için opcache, realpath_cache ve FPM worker ayarlarını optimize edeceğiz.

Adım 1: PHP ve PHP-FPM Kurulumu

Ubuntu'nun varsayılan repoları her zaman en güncel PHP sürümünü sunmayabilir. Bu yüzden Ondrej Sury repolarını kullanacağız:

# Gerekli yazılımları kur
sudo apt update
sudo apt install software-properties-common apt-transport-https

# Ondrej PPA eklentisini dahil et
sudo add-apt-repository ppa:ondrej/php
sudo apt update

# PHP 8.2 ve gerekli Nginx uyumlu modüllerin kurulumu
sudo apt install php8.2 php8.2-fpm php8.2-mysql php8.2-mbstring php8.2-xml php8.2-curl php8.2-zip

Kurulum durumunu test et:

php -v
systemctl status php8.2-fpm

Adım 2: php.ini Üzerinde Performans Optimizasyonu

PHP-FPM için `php.ini` dosyası genellikle `/etc/php/8.2/fpm/php.ini` dizinindedir:

sudo nano /etc/php/8.2/fpm/php.ini

Aşağıdaki değerleri bularak proje yüküne göre düzenle:

# Bellek Limiti
memory_limit = 256M

# Tek Seferde Maksimum Yüklenecek Dosya Boyutu
upload_max_filesize = 64M
post_max_size = 64M

# Çalıştırma sınırları
max_execution_time = 60
max_input_time = 60

# Dizin yolu belleğe alma (I/O Optimizasyonu)
realpath_cache_size = 4096K
realpath_cache_ttl = 600

💡 NVMe Destekli Altyapı ile Süper Hız

PHP betikleri ne kadar iyi optimize edilirse edilsin, disk tarafında takılırsa hızlanamazlar. HazalHost VDS sunucularında NVMe diskler ile betiklerinizin I/O darboğazlarına takılmasına engel olun.

→ NVMe VDS Sunucular

Adım 3: OPcache Aktivasyonu ve Ayarları

OPcache, önceden derlenmiş bytecode'ları RAM'de saklayarak PHP'nin her istekte aynı dosyaları baştan ayrıştırmasını (compile) engeller. Hala `php.ini` dosyasının içindeyken (veya `10-opcache.ini` içinde):

[opcache]
# Aktif et
opcache.enable=1

# Opcache için ayrılacak bellek (RAM'ine göre 128 - 256MB verebilirsin)
opcache.memory_consumption=128

# Cache'lenecek maksimum dosya sayısı (Projendeki PHP dosya sayısı)
opcache.max_accelerated_files=10000

# String önbellekleme
opcache.interned_strings_buffer=16

# Zaman doğrulamasını kapat (Canlı Ortam - Production İçin)
# Eğer bir dosyada kod güncellersen cache'in silinmesi gerekir (veya FPM restart)
opcache.validate_timestamps=0

Adım 4: PHP-FPM Pool (www.conf) Ayarları

Gerçek performans kazanımı FPM işlemlerinin yönetildiği yerdir. `www.conf` dosyasını yapılandıracağız.

sudo nano /etc/php/8.2/fpm/pool.d/www.conf

Sunucunun RAM değerlerine göre bu bölümü düzenleyelim. "ondemand" veya "dynamic" modülünü kullanabilirsin ancak çok trafikli sitelerde "static" tercih edilir (daha fazla RAM kullanır, daha yüksek dönüş yapar).

# Process yöneticisini dynamic yapalım
pm = dynamic

# Maksimum child sayısı: Yüksek tutarsanız daha çok ram tüketir. 
# Örn: (Total Ram - 1024) / 60
pm.max_children = 50 

# Başlangıç process sayısı
pm.start_servers = 10

# Boşta bekleyecek minimum process
pm.min_spare_servers = 5

# Boşta bekleyecek maximum process
pm.max_spare_servers = 20

# Memory leak (bellek sızıntısı) önlemek için işlemi periyodik olarak sıfırlama
pm.max_requests = 1000
# Yapılandırmaları test et ve yeniden başlat
sudo php-fpm8.2 -t
sudo systemctl restart php8.2-fpm

🚀 Yavaş Siteleri Unut! Yüksek Performanslı VDS Seçimi

Memory_limit, Opcache ayarlarına ek olarak sunucunun sağladığı doğal donanım gücü her şeyin temelidir. Yüksek CPU saat hızlı ve NVMe diskli HazalHost VDS paketleriyle tanış.

🔥 Performans VDS Paketlerini İncele

Sonuç

PHP kurulumu esnasında FPM kullanarak web sunucun (Nginx veya Apache) üzerinden hızlı, OPcache aktifleştirerek bellekli çalışmasını sağladın. Özellikle OPcache validate_timestamps=0 ayarı, disk okumasını inanılmaz ölçüde rahatlatacaktır. Unutma; bu ayarı yaparsan PHP dosyalarını güncellediğinde FPM servisini de restart etmelisin.

Sık Sorulan Sorular (FAQ)

PHP-FPM ile PHP-CGI arasındaki fark nedir?

PHP-FPM, CGI yapısına göre çok daha gelişmiş bellek yönetimi sunar. Child processleri ayakta tutar, yeniden başlatmaya gerek duymadan bir sonraki isteği direkt alabilir, bu da performansı katlar.

opcache.validate_timestamps=0 yapınca sitede değişikliklerim neden görünmüyor?

Çünkü PHP artık dosyanın değişip değişmediğini kontrol etmiyor. Kodunuzu yayına aldıktan sonra sudo systemctl restart php8.2-fpm komutunu çalıştırarak Opcache'i boşaltmalısınız.

PHP bellek limitini ne kadar ayarlamalıyım?

Standart bir Wordpress veya Laravel projesi için 128M ile 256M idealdir. Fazladan RAM limit koymak uygulamanın çökmesini engellemeyebilir, scriptteki memory_leak problemini çözmeniz gerekebilir.

#php #php-fpm #opcache #performans #optimize
Paylaş:

İçindekiler

🚀 VDS Sunucu Arıyorsan

Türkiye lokasyonlu, DDoS korumalı VDS sunuculara hemen göz at.

VDS Paketlerini İncele