PHP yorumlamalı (interpreted) bir dildir. Yani her ziyaretçi geldiğinde dosyalar baştan okunur, derlenir ve çalıştırılır. "OPcache" işte tam bu noktada araya girip, PHP'nin derlenmiş halini RAM'de saklayarak CPU yükünü %70'e varan oranlarda düşürür.
OPcache Tam Olarak Nedir?
PHP (WordPress, Laravel vb.) şu şekilde çalışır:
- Sözcüksel Analiz (Lexing): Kod satır satır okunur.
- Ayrıştırma (Parsing): Kod, bir söz dizim ağacına çevrilir.
- Derleme (Compilation): Ağaç, makinenin anlayacağı Bytecode'a (Opcode) dönüştürülür.
- Çalıştırma (Execution): Bytecode işlenir ve kullanıcıya HTML olarak gösterilir.
İşte OPcache (Zend OPcache), PHP çekirdeğine dahil edilen bir eklentidir. Yukarıdaki sürecin ilk 3 aşamasını sadece bir kez yapar ve o zorlu "Bytecode" sonucunu doğrudan Sunucunun RAM'ine (Paylaşılan Belleğine) kaydeder.
Ondan sonraki binlerce ziyaretçi geldiğinde, Lexing ve Parsing aşamaları ATLANIR. Kod doğrudan RAM'den çalıştırılır. Bu muazzam bir Donanım tasarrufudur.
Doğru opcache.ini Konfigürasyonu
OPcache çoğu modern sunucuda varıslan olarak gelir. Ancak Standart değerleri (örneğin sadece 64MB bellek ayırması) E-ticaret sitelerine yetmez. VDS Linux terminalinizde php.ini dosyanızın en altına inerek şu "Üst Düzey" OPcache ayarlarını ekleyin:
[opcache]
opcache.enable=1
# Ne kadar RAM ayıracağız? E-ticaret için en az 256MB verilmelidir.
opcache.memory_consumption=256
# RAM'de toplam kaç tane farklı PHP dosyası tutabiliriz? (WP için 10.000 ideal)
opcache.max_accelerated_files=10000
# Cache'de PHP String verileri için havuz boyutu (MB)
opcache.interned_strings_buffer=16
# ÖNEMLİ: Kodumuzu değiştirirsek, OPcache bunu kaç saniyede bir fark edip yenilesin?
# Geliştirme(Dev) aşamasında bu 2-3 saniye yapılır, ancak Canlıda(Prod) 60 saniye çok iyidir!
opcache.revalidate_freq=60
# Çok fazla satırlı dosyaları da RAM'de tut
opcache.fast_shutdown=1
🚀 HazalHost Altyapısında Hazır Gelir
Terminal ekranlarıyla OPcache ayarlamaya uğraşmak istemiyor musunuz? HazalHost cPanel hosting altyapımızda PHP Selector üzerinden "Opcache" kutucuğunu işaretlemeniz yeterlidir. RAM ve Max Files ayarları uzmanlarımız tarafından zaten en yüksek verimde optimize edilmiştir.
Dikkat: Geliştiricilerin Baş Belası!
OPcache RAM'den beslendiği için yaptığınız değişiklikler "Anında" siteye yansımaz. Dosyalarınız bellekte mühürlenmiştir (Belirlediğiniz revalidate_freq değeri saniyesi dolana kadar).
Eğer FTP üzerinden index.php dosyasına bir HTML kodu eklerseniz, siteye girip bakınca F5 yapsanız da göremezsiniz. Değişikliğin hemen yansıması için Hosting kontrol panelinden "PHP Restart" veya terminalden systemctl restart php-fpm yazmanız gerekir. (Veya OPcache GUI/WP LSCache eklentisi üzerinden Flush Opcache demelisiniz).
Sonuç
Siz de sitenize PHP üzerinden bir yazılım atıyor ve sayede ağır yavaşlık yaşıyorsanız asıl sorun "Disk/CPU okuma" kapasitesi tükendiği için olabilir. OPcache kurarak bu sorunu veritabanını bile yormadan kökten yok edebilirsiniz.