ServBay'de PHP Opcache Modülünü Nasıl Etkinleştirir ve Yapılandırırsınız
ServBay, geliştiriciler için tasarlanmış güçlü bir yerel web geliştirme ortamıdır ve PHP dahil birçok teknoloji yığınını entegre eder. Geliştiricilerin PHP uygulamalarının performansını optimize etmelerine yardımcı olmak için, ServBay'de desteklenen her PHP sürümüyle birlikte Opcache modülü önceden kurulu olarak gelir. Bu makalede, ServBay'de Opcache'nin nasıl etkinleştirilip yapılandırılacağını ve PHP geliştirme/test işlerinizi nasıl hızlandıracağını ayrıntılı olarak açıklayacağız.
Opcache Modülüne Genel Bakış
Opcache, PHP'nin resmi bir eklentisidir ve PHP kodunun yürütme performansını artırmak için kullanılır. Temel işleyiş prensibi, önceden derlenmiş PHP betiklerinin bytecode'unu paylaşılan bellekte önbelleğe almaktır. Böylece, aynı betiğe sonraki isteklerde, kodu tekrar tekrar ayrıştırmaya, derlemeye ve optimize etmeye gerek kalmaz; önbellekteki bytecode doğrudan kullanılır. Bu yaklaşım, CPU ve bellek tüketimini azaltır ve uygulamanın tepki süresini önemli ölçüde hızlandırır.
Geliştiriciler için Opcache Neden Önemli?
- Geliştirme ve Testi Hızlandırır: Yerel geliştirme ortamında Opcache’in etkinleştirilmesi, uygulamanızın daha hızlı çalışmasını sağlar, sayfa yükleme sürelerini azaltır ve geliştirme verimliliğini artırır.
- Prodüksiyon Ortamını Taklit Etme: Çoğu canlı ortamda performansı artırmak için Opcache varsayılan olarak açık olur. Yerelde de Opcache’i açmak, prodüksiyona daha yakın koşullarda geliştirme sağlar.
- Kaynak Kullanımını Azaltır: Özellikle büyük framework veya karmaşık uygulamalar üzerinde çalışırken Opscache, makinenizin kaynak tüketimini hissedilir ölçüde düşürür.
Opcache’in Temel Özellikleri
- Bytecode Önbellekleme: Temel özelliği, derlenmiş PHP kodunu önbelleğe almaktır.
- Paylaşılan Bellek: Önbellek, paylaşılan bellekte saklanır; birden fazla PHP işlemi erişebilir.
- Otomatik Geçersiz Kılma: Opcache, dosya güncellemelerini düzenli olarak kontrol ederek önbelleğin güncel kalmasını sağlayabilir.
- Esnek Yapılandırma: Geliştiricilerin farklı ihtiyaçlarına göre birçok yapılandırma seçeneğiyle ayarlanabilir.
- Yerleşik Destek: PHP’nin resmi eklentisi olarak PHP çekirdeğine sıkı bir şekilde entegre edilmiştir.
ServBay'in Opcache Desteği
ServBay, entegre ettiği tüm PHP sürümleri (örn. PHP 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 vb.) için ilgili Opcache modülünü önceden yükler. Kullanıcılar ek bir indirme veya derleme yapmadan, ServBay’in grafik arayüzü veya yapılandırma dosyası üzerinden Opcache’i kolayca etkinleştirebilir ve yönetebilir.
Opcache Modülü Nasıl Etkinleştirilir
ServBay’de Opcache modülünü etkinleştirmenin iki ana yolu vardır: Grafik Kullanıcı Arayüzü (GUI) ile veya yapılandırma dosyasını manuel düzenleyerek.
Yöntem 1: ServBay GUI ile Etkinleştirme (Önerilir)
Bu, en kolay ve hızlı yöntemdir.
- ServBay uygulamasını açın.
- Kenar çubuğundan Diller (Languages) bölümüne tıklayın.
- Opcache’i etkinleştirmek istediğiniz PHP sürümünü seçin, örneğin PHP 8.3.
- Sağdaki PHP sürüm detaylarında Eklentiler (Extensions) sekmesine geçin.
- Listeden OPcache eklentisini bulun.
- OPcache’in solundaki anahtarı açın.
- Sayfa altındaki Kaydet (Save) butonuna tıklayın.
- ServBay, ilgili PHP paketinin yeniden başlatılması gerektiğini bildirir. Yeniden Başlat (Restart) butonuna basın.
Yeniden başlatma tamamlandığında, Opcache modülü etkinleşmiş olur.
Yöntem 2: Yapılandırma Dosyasını Manuel Düzenleme
Daha ayrıntılı yapılandırma yapmak veya dosya tabanlı yönetimi tercih ediyorsanız, Opcache’in .ini
dosyasını elle düzenleyebilirsiniz.
- Yapılandırma Dosyasının Yeri: Opcache’in yapılandırma dosyası, seçtiğiniz PHP sürümüne ait
conf.d
klasöründedir. Bu klasörde ilgili PHP sürümünün yüklediği tüm eklenti yapılandırmaları bulunur.- Örneğin, PHP 8.3 için dosya yolu genellikle şöyledir:
/Applications/ServBay/etc/php/8.3/conf.d/opcache.ini
1 - Kullandığınız PHP sürümüne göre klasör yolundaki sürüm numarasını değiştirin.
- Örneğin, PHP 8.3 için dosya yolu genellikle şöyledir:
- Dosyayı Düzenleyin: Sevdiğiniz metin editörüyle
opcache.ini
dosyasını açın.- Genellikle, dosya zaten temel Opcache yapılandırmasını içerir ancak satırlar yorum satırı olarak kapalıdır.
[Zend Opcache]
bölümünü bulun. zend_extension = opcache.so
satırının başındaki;
işaretini kaldırın, böylece Opcache uzantısının yüklendiğinden emin olursunuz.- Diğer gerekli Opcache parametrelerini ihtiyacınıza göre değiştirebilir veya ekleyebilirsiniz. Aşağıda örnek bir yapılandırma verilmektedir (parametrelerin açıklamaları sonraki bölümde):ini
[Zend Opcache] ; Ensure the extension is loaded zend_extension = opcache.so ; Basic Configuration (example values) opcache.enable = 1 ; Enable Opcache globally (1=enabled, 0=disabled) opcache.memory_consumption = 128 ; Amount of memory for opcode cache (in MB) opcache.interned_strings_buffer = 8; Amount of memory for interned strings (in MB) opcache.max_accelerated_files = 4000 ; Maximum number of files to cache opcache.revalidate_freq = 60 ; How often to check file timestamps for updates (in seconds). 0 = check on every request (slow), but good for development. opcache.fast_shutdown = 1 ; Enable fast shutdown opcache.enable_cli = 1 ; Enable Opcache for the PHP CLI (Command Line Interface)
1
2
3
4
5
6
7
8
9
10
11
12 - Değişiklikleri kaydedin.
- Genellikle, dosya zaten temel Opcache yapılandırmasını içerir ancak satırlar yorum satırı olarak kapalıdır.
- PHP Paketini Yeniden Başlatın: ServBay’de, kenar çubuğunda Paketler (Packages) menüsünü açıp ilgili PHP paketini bulun ve yeniden başlat butonuna tıklayın.
Yapılandırma dosyasını düzenleyip PHP paketini yeniden başlattıktan sonra, Opcache modülü ve ayarladığınız parametreler etkinleşir.
Opcache Modülünün Başarıyla Yüklendiğini Nasıl Doğrularsınız
Opcache'in başarıyla etkin olup olmadığını doğrulamanın en kesin yolu PHP'nin yapılandırma bilgisini (phpinfo()
) kontrol etmektir.
phpinfo.php
Dosyasını Oluşturun: ServBay sitenizin kök dizininde yeni bir PHP dosyası oluşturun, örneğinphpinfo.php
. ServBay’in varsayılan web kök dizini/Applications/ServBay/www/
’dür. Test için bu dizinde bir alt klasör oluşturup (/Applications/ServBay/www/servbay.demo/
)phpinfo.php
dosyasını oraya koyabilirsiniz. Dosya içeriği:php<?php phpinfo(); ?>
1
2
3phpinfo.php
Dosyasına Erişin: Web sunucunuzun (ör. Caddy veya Nginx) çalıştığından, ilgili web kökü veya test dizininin doğru ayarlandığından emin olun. Tarayıcınızdan dosyanın URL’sine gidin.- Eğer dosyayı
/Applications/ServBay/www/servbay.demo/
klasörüne koyduysanız ve ServBay aracılığıylaservbay.demo
adında bir alan adı tanımlıysa, erişim URL’si şu olabilir:http://servbay.demo/phpinfo.php
- Varsayılan kök dizine
/Applications/ServBay/www/
yerleştirirseniz (ve ServBay’in ana sitesi buraya yönlüyse), URL şu olabilir:http://localhost/phpinfo.php
veya ServBay’in varsayılan yerel erişim adresi.
- Eğer dosyayı
- Opcache Bilgisini Bulun: Açılan
phpinfo()
sayfasında aşağıya kaydırın veya tarayıcı arama işlevini (Cmd+F
veyaCtrl+F
) kullanarak "Opcache" kelimesini arayın.- Eğer Opcache başarıyla etkinse, "Zend Opcache" başlıklı ayrı bir yapılandırma bölümü göreceksiniz. Burada Opcache’in sürümü, durumu ve tüm geçerli parametreler görüntülenir.
- "Zend Opcache" bölümü yoksa, modül yüklenmemiş demektir. Lütfen etkinleştirme adımlarını ve yapılandırma dosyanızı tekrar kontrol edin.
Görsel: phpinfo sayfasında Zend Opcache yapılandırma bloğunu bulun
Opcache Parametrelerinin Ayrıntılı Açıklaması
Opcache, geliştirme veya uygulama ihtiyaçlarınıza göre ayarlanabilen pek çok parametre sunar. Bunlar genellikle opcache.ini
dosyasında yapılandırılır. İşte en sık kullanılan ana parametreler ve açıklamaları:
[Zend Opcache]
; Uzantının yüklendiğinden emin olun
zend_extension = opcache.so
; Opcache’i etkinleştir. 0 = devre dışı, 1 = etkin. Grafik arayüz anahtarı bu parametreyi kontrol eder.
opcache.enable = 1
; Derlenmiş PHP bytecode’unun saklanacağı (MB cinsinden) paylaşılan bellek boyutu.
; Proje boyutuna ve mevcut belleğe göre ayarlayın. Büyük projeler için daha fazla belleğe ihtiyaç duyulur.
opcache.memory_consumption = 128
; Dahili dizgileri (ör. sınıf ve metot adları gibi) saklamak için ayrılan bellek (MB cinsinden).
; Çok fazla dizgi kullanan framework’lerde (ör. Symfony) bu değeri artırmak gerekebilir.
opcache.interned_strings_buffer = 8
; Opcache’in en fazla önbelleğe alacağı dosya sayısı.
; Projenizdeki toplam dosya sayısını aşmaması için yeterli büyüklükte bir değer kullanın.
opcache.max_accelerated_files = 10000
; Opcache’in betikteki güncellemeleri kontrol etme sıklığı (saniye).
; Canlı ortamlarda genellikle daha büyük bir değer (örn. 300 veya 600) ya da 0 (hiç kontrol etme, el ile önbellek temizliği gerekir) olarak ayarlanır.
; **Yerel geliştirme ortamında, kod değişikliklerinin anında geçerli olması için bu değeri 1 veya 2 saniye gibi düşük tutmanız önerilir.** 0 olarak ayarlanırsa her istekte dosya güncelliği kontrol edilir, bu kısmen önbellek avantajını azaltır ama geliştirme için faydalıdır.
opcache.revalidate_freq = 2
; Hızlı kapanış sırasını etkinleştirir. İstek bitiminde belleğin serbest bırakılması hızlanır. Genellikle açık olması önerilir.
opcache.fast_shutdown = 1
; PHP CLI (komut satırı arayüzü) için Opcache’i aktif eder.
; Komut satırı betikleri veya Composer komutlarını hızlandırmak için faydalıdır, genellikle etkin bırakılır.
opcache.enable_cli = 1
; Boşta kalan paylaşılan belleğin serbest bırakılmasına izin ver. Bazı durumlarda belleği boşaltmaya yardımcı olabilir, fakat performansı biraz etkileyebilir. Genellikle varsayılan veya kapalı tutulur.
; opcache.enable_file_override = 0
; Dosya yollarını önbelleğe alırken açıklamaları (yorumları) göz ardı et. Açık olması biraz bellek tasarrufu sağlar, fakat bazı araçları etkileyebilir.
; opcache.save_comments = 1
; Önbelleğe alırken doküman açıklamalarının (Docblocks) korunmasını sağlar. PHPUnit, Doctrine gibi araçlar için gereklidir.
; opcache.load_comments = 1
; Optimizasyon seviyesi. Rakam büyüdükçe optimizasyon artar, fakat derleme süresi uzayabilir. Varsayılan değer genellikle yeterlidir.
; opcache.optimization_level = 0x7FFFBBFF
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Yapılandırmada değişiklik yaptıktan sonra ilgili PHP paketini yeniden başlatmayı unutmayın, yoksa yeni ayarlar geçerli olmaz.
Sıkça Sorulan Sorular (SSS)
- Soru: Opcache varsayılan olarak etkin mi? Cevap: ServBay’de Opcache modülü ön yüklü gelir; ancak genellikle varsayılan olarak devre dışıdır. Yukarıdaki adımlarla elle etkinleştirmeniz gerekir.
- Soru: Opcache’i açmak geliştirme akışımı etkiler mi? Cevap: Opcache uygulamanızın hızını artırır. Geliştirme sırasında
opcache.revalidate_freq
değerini 1, 2 veya 0 gibi düşük tutmanız önerilir ki kod değişikliği anında etkili olsun. Geliştirme bitiminde ve canlıya geçerken bu değeri yükseltebilir ya da 0’a çekip elle önbellek temizliği uygulayabilirsiniz. - Soru: Opcache PHP CLI betiklerini de önbelleğe alır mı? Cevap: Varsayılan olarak almaz. PHP CLI için de Opcache’i etkinleştirmek istiyorsanız
opcache.enable_cli
’yi1
olarak ayarlayın. Özellikle Composer komutları, testler gibi işlemler için faydalıdır. - Soru: Opcache’e ne kadar bellek ayırmalıyım? Cevap:
opcache.memory_consumption
değeri projenizin boyutuna ve karmaşıklığına göre değişir. Çoğu yerel geliştirme projesi için 128MB ya da 256MB yeterlidir. Çok büyük projelerde veyaphpinfo()
’da Opcache önbelleği dolu uyarısı alırsanız miktarı artırabilirsiniz. - Soru:
opcache.ini
’yi değiştirdikten sonra ne yapmam gerekir? Cevap:.ini
dosyasını değiştirdikten sonra ilgili PHP paketini yeniden başlatmanız gerekir; aksi halde yeni yapılandırmalar uygulanmaz.
Sonuç
Opcache, PHP için güçlü ve kullanımı son derece kolay bir performans artırma aracıdır. ServBay, geliştiricilere hem sezgisel bir grafik arayüzle hem de esnek yapılandırma dosyasıyla Opcache'i etkinleştirme ve yönetme kolaylığı sunar. Sadece basit birkaç adımla ServBay ortamınızda Opcache’i açabilir, PHP uygulamalarınızın yüklenme ve tepki hızında gözle görülür bir iyileşme sağlayabilirsiniz. Projenizin gereksinimine ve geliştirme tarzınıza göre Opcache ayarlarını optimize ederek performansı en üst düzeye çıkarabilirsiniz. Şimdi ServBay’de Opcache’i etkinleştirin ve PHP’nin hızındaki farkı yaşayın!