En etkili php.ini değişikliği max_execution_time. JekCMS'in görsel işleme hattı büyük dosyalar için yükleme başına 3–8 saniye sürebiliyor; pek çok paylaşımlı plandaki varsayılan değer 30 saniye, bu tek bir görsel için yeterli ancak toplu yüklemeler için yetmiyor. Bu değeri 90 saniyeye çıkarın. İkinci kritik değer memory_limit: 256 MB pratik minimum, aktif medya işlemleri olan siteler için 512 MB daha güvenli.

OPcache: Sessiz Performans Düşmanı

opcache.memory_consumption en az 128 MB olmalı. Pek çok paylaşımlı hosting kontrol paneli bunu 64 MB olarak yapılandırıyor; bu da sık önbellek geçersizleştirmesine ve çoğunlukla yeniden üretilmesi güç aralıklı yavaş sayfa yüklemelerine yol açıyor. Mevcut kullanımı kontrol etmek için var_dump(opcache_get_status()) çağrısı yapan geçici bir PHP dosyası oluşturun. opcache_hit_rate değeri %80'in altındaysa OPcache yetersiz belleği nedeniyle çok sık temizleniyor demektir.

MySQL Sorgu Önbelleği Çakışması

Veritabanı için, hostunuz izin veriyorsa MySQL'in yerleşik sorgu önbelleğini (query_cache_type=0) devre dışı bırakın ve bunun yerine JekCMS'in uygulama düzeyi sorgu önbelleğine güvenin. İki önbellek katmanı aynı anda aktif olduğunda tutarsız sonuçlar üretebiliyor. MySQL ayarlarını değiştiremiyorsanız, uygulama önbelleğini devre dışı bırakmak ve önbelleği yalnızca MySQL'e bırakmak için JekCMS ortam dosyanıza QUERY_CACHE_ENABLED=false ayarını ekleyin.

GZIP ve Tarayıcı Önbelleğini Doğrulama

GZIP sıkıştırma ve tarayıcı önbelleğinin etkin olduğunu şu komutla doğrulayın: curl -H "Accept-Encoding: gzip" -I https://siteniz.com/. Yanıtta Content-Encoding: gzip bulunmalı. Yoksa hostunuz kontrol panelinden mod_deflate etkinleştirilmesini gerektirebilir. GZIP olmadan HTML yanıtları genellikle olması gerekenden 3-5 kat daha büyük oluyor.

Temel php.ini Ayarlari Referansi

Cogu paylasimli host, site kokunde yerel bir .user.ini dosyasi araciligiyla php.ini degerlerini gecersiz kilmaya izin verir. Onerilen yapilandirma:

; .user.ini (site kokune yerlestirin)
max_execution_time = 90
memory_limit = 256M
upload_max_filesize = 32M
post_max_size = 48M
max_input_vars = 5000
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 16
opcache.max_accelerated_files = 10000
opcache.revalidate_freq = 60

Bu Degerlerin Nedeni

  • upload_max_filesize = 32M — AVIF donusumunden once yuksek cozunurluklu fotograflari destekler; donusturulmus cikti genellikle %80-90 daha kucuktur
  • post_max_size = 48M — multipart form gonderimlerinde base64 kodlama yukunu karsilamak icin upload_max_filesize degerinden en az %33 fazla olmali
  • max_input_vars = 5000 — yonetim panelinin toplu duzenleyicisi meta, kategori ve SEO ayarlarini ayni anda duzenlerken gonderi basina 50'den fazla alan gonderebilir
  • opcache.revalidate_freq = 60 — her istekte degil dakikada bir dosya degisikliklerini kontrol eder, disk I/O'sunu yaklasik %40 azaltir

.htaccess Performans Kurallari

.htaccess dosyasi, paylasimli hostingde performans kazanimlarinin buyuk bolumunun geldigi yerdir. JekCMS GZIP ve onbellek basliklarini iceren varsayilan bir dosya ile gelir, ancak bircok host bunlari dagitim sirasinda siler.

<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresByType image/avif "access plus 1 year"
 ExpiresByType image/webp "access plus 1 year"
 ExpiresByType text/css "access plus 1 year"
 ExpiresByType application/javascript "access plus 1 year"
 ExpiresByType font/woff2 "access plus 1 year"
</IfModule>

Veritabani Baglantisi ve Sorgu Izleme

JekCMS istek basina tek bir PDO baglantisi acar ve tum sorgular icin yeniden kullanir. Tipik bir sayfa yuklemesinde 8-15 ayri el sikismasi yerine tek baglanti uzerinden 8-15 sorgu calisir.

Her sorguyu calisma suresiyle birlikte gunluge kaydetmek icin ortam dosyasinda QUERY_LOG=true ayarini etkinlestirin. 50 ms'den uzun suren bir sorgu eksik bir indekse isaret eder. En yaygin sorun bilesik indeks olmadan post_meta aramasidir — INDEX(post_id, meta_key) eklemek genellikle 40-80 ms'lik sorgulari 2 ms'nin altina dusurur.

Paylasimli Hostingde Zamanlanmis Gorevler

JekCMS onbellek temizligi, oturum cop toplama ve gonderi yayinlama icin zamanlanmis gorevler kullanir. En azindan su iki gorevi kurun:

  • */15 * * * * — zamanlanmis gonderileri 15 dakikada bir yayinlar
  • 0 3 * * * — suresi dolmus onbellegi ve oturumlari her gun saat 3'te temizler

Hostunuz cron gorevlerini desteklemiyorsa ortam dosyasinda PSEUDO_CRON=true ayarini etkinlestirin. Bu, bekleyen gorevleri %1 olasilikla normal sayfa gorunumlerinde tetikler ve yaklasik 20 ms ekler.

Dosya Yukleme Limitleri ve Medya Isleme

Uc php.ini yonergesi dosya yuklemelerini kontrol eder: upload_max_filesize, post_max_size ve max_file_uploads. Rahat gorsel yuklemesi icin upload_max_filesize degerini en az 20M olarak ayarlayin. post_max_size degeri upload_max_filesize'dan buyuk olmalidir — 25M oneriyoruz. Gozden kacirilan max_file_uploads cogu hostta varsayilan 20'dir ve toplu medya aktarimlarini sinirlar. n8n otomasyon hattini kullanan siteler icin bunu 50'ye cikarin.

Paylasimli Hostingde Hata Kaydi

Cogu paylasimli host production'da display_errors ayarini devre disi birakir, bu dogrudur. Ancak yine de hata kaydina ihtiyaciniz var. .user.ini dosyaniza sunlari ekleyin:

log_errors = On
error_log = /home/kullanici/logs/php_error.log
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

Bu kayit dosyasini her dagitimdan sonra kontrol edin. Paylasimli hostingde yaygin sorunlar arasinda eksik .env dosyalarindan kaynaklanan tanimsiz sabit uyarilari ve cache/ dizinindeki izin hatalari yer alir. Kayit dosyasi cogu hostta sinirsiz buyur; aylik dondurmek icin bir cron gorevi ekleyin veya 30 gunluk girislerden eskilerini temizleyin.

SSL ve HTTPS Zorunlulugu

Artik her paylasimli hosting plani Let's Encrypt veya AutoSSL ile ucretsiz SSL iceriyor. JekCMS production'da HTTPS zorunlu kilar.

Yonlendirme zincirlerini onlemek icin yonlendirme kuralini .htaccess'te erkenden — herhangi bir rewrite kuralinin once — ekleyin. Yaygin bir hata SSL yonlendirmesini sondaki egiik cizgi kuralindan sonra yerlestirmektir; bu bir yerine iki ardisik yonlendirmeye neden olur. Dogru sira: once SSL yonlendirmesi, sonra www/www'suz normalizasyonu, sonra sondaki egiik cizgi kurallari, sonra uygulama yonlendirmesi.