1️⃣ 503 Hatasının Gerçek Sebebini Bul: Kaynak Limitleri mi?

503 çoğu zaman:
  • PHP memory limit dolması
  • CPU / RAM limitine takılma (özellikle shared hosting)
  • PHP-FPM / Apache worker sayısı yetersizliği
  • MySQL’in kilitlenmesi / yavaş sorguları
gibi sunucu tarafı problemlerden gelir.

1. Sunucu error log’larını mutlaka kontrol et


SSH veya panelden şu loglara bak:
  • error_log (Apache/Nginx)
  • php_error.log veya php-fpm.log
  • Eğer varsa: opencart_system/storage/logs/ içi
İçeride tipik olarak şunlar varsa:
  • Allowed memory size of ... bytes exhausted → PHP memory limit artırman lazım
  • MySQL server has gone away / Too many connections → MySQL ayarları / çok fazla sorgu
  • upstream timed out (Nginx) → PHP cevap veremiyor, script çok uzun sürüyor
Burada asıl amaç: “Kod mu, veritabanı mı, sunucu limiti mi?” sorusuna cevap bulmak.
2️⃣ Veritabanı Kaynaklı Yavaşlık: Özellikle oc_session, oc_cart, oc_log

Sen zaten session kayıtlarını temizlemişsin ama yine de şunları kontrol et:

2.1. Aşırı şişmiş tablolar var mı?


phpMyAdmin’den veya başka bir araçla tabloların boyutuna bak:
  • oc_session
  • oc_cart
  • oc_customer_login
  • oc_log
  • oc_order, oc_order_history
  • Üçüncü parti modüllerin oluşturduğu log tabloları
Öneri:
  • Gereksiz log / session tablolarını periyodik olarak TRUNCATE et
  • Tabloları OPTIMIZE TABLE ile optimize et

2.2. Index eksikliği


Bazı temalar / modüller özel tablolar kullanıyor ama index koymuyor. Bu da tablolar büyüyünce siteyi beton gibi yapıyor.
  • Büyük olan özel tabloları (modül tabloları vs.) incele
  • En çok WHERE’de kullanılan alanlar için INDEX var mı bak
  • Yoksa ekle (burada istersen bana tablonun yapısını at, beraber index tasarlayalım)





3️⃣ Eklenti / Tema Kaynaklı Performans Sorunları

Sen “kullanılmayan eklenti ve modifikasyonları kaldırdım” demişsin ama:
  • Aktif tema + aktif birkaç modül bile tek başına sistemi çökertiyor olabilir.

3.1. Varsayılan tema ile test


Mümkünse:
  1. Mevcut temanın dosyalarını yedekle
  2. OpenCart’ın default temasına geç
  3. Sadece çekirdek modüller açıkken birkaç sayfayı test et (kategori, ürün, sepet)
Eğer default temada site uçuyorsa, asıl sorun:
Tema dosyalarındaki ağır sorgular,
Aşırı sayıda veritabanı çağrısı,
Gereksiz sayfa içi döngüler vs.

3.2. Ağır çalışan modülleri yakala


Özellikle şu tip modüller çok yorar:
  • Gelişmiş filtreleme modülleri (her sayfada tonla sorgu)
  • Menü / mega menu modülleri (aşırı kategori çekmek)
  • Ziyaretçi istatistik, ziyaretçi online takibi, ısı haritası vs.
  • SEO modülleri (URL rewrite, canonical vs. için ekstra sorgular)
Deneme için: Bu modülleri sırayla devre dışı bırakıp sayfa açılış sürelerini karşılaştır.
4️⃣ Sunucu Yapılandırması: CPU, RAM, Limits, PHP Versiyonu

4.1. Bariz ama kritik: Hosting durumu

  • Shared hosting’te misin,
  • Yoksa VPS / dedicated mi kullanıyorsun?
Shared hosting ise 503’lerin büyük kısmı şunlardan gelir:
  • Aynı sunucuda kaynak yiyen başka siteler,
  • Hesaba tanımlı max_entry_proc, CPU, RAM limitlerine takılma,
  • Limit dolunca hosting 503 dönmeye başlar.
Hosting panelinden “resource usage” / “CPU & Memory Usage” grafiğine mutlaka bak.

4.2. PHP versiyonu ve limitler


OpenCart genelde şu versiyonlarda daha rahat:
  • PHP 7.4 / 8.0 (kullandığın OC sürümüne göre değişir, 2.x için 7.4, 3.x için 7.4–8.0/8.1 genelde iyi)
Kontrol etmen gereken php.ini / panel ayarları:
  • memory_limit → minimum 256M, mümkünse 512M
  • max_execution_time → 60–120
  • max_input_vars → en az 3000 (büyük formlar / filtreler için)
  • upload_max_filesize, post_max_size → medyan çoksa bunlar da önemli


5️⃣ Cache & OpCache & CDN Kullanımı

“Cache temizledim” demişsin ama burada 2 konu var:
  1. OpenCart içindeki template/data cache
  2. Sunucu tarafı cache (OpCache, Redis, Varnish, LiteSpeed Cache vs.)

5.1. PHP OpCache aktif mi?


OpCache, PHP kodunu derlenmiş halde tutar, her istekte tekrar derlemek zorunda kalmaz. Özellikle:
  • opcache.enable=1
  • opcache.memory_consumption=128
  • opcache.max_accelerated_files=8000 gibi
değerlerle ciddi hızlanma sağlar.
Bunu hosting destekten de sorabilirsin:
“PHP OpCache aktif mi? Değilse aktif edebilir misiniz?”

5.2. Sayfa cache / modül cache

  • Bazı OpenCart performans modülleri “full page cache” mantığı ile çalışır.
  • Cloudflare gibi CDN kullanıyorsan:
    • Statik içerikler (css/js/görseller) CDN’den gelsin,
    • HTML response için agresif cache kullanma; giriş yapan kullanıcılar, sepet vs. bozulmasın.
6️⃣ Cron Job’lar, Otomatik İşlemler, Bot Trafiği

6.1. Cron / otomatik tasks


Bazı modüller:
  • Her cron çalıştığında binlerce kayıt üzerinde işlem yapar,
  • Mail gönderir,
  • Dış API’lere istek atar.
Eğer bu işler yoğun saatlerde oluyorsa, siteye giren ziyaretçi ile bu cron’lar CPU’yu paylaşır, 503 görebilirsin.
Cron zamanlarını daha sakin saatlere al.
Örneğin: gece 03:00-04:00 arası.

6.2. Bot / saldırı / anormal trafik

  • Loglarda kısa sürede çok fazla istek görebilirsin (özellikle /index.php?route=product/category&path=... türü).
  • Bazı botlar/İndexer’lar filtreleri, aramayı, kategori sayfalarını sürekli tarayıp sunucuyu gömebiliyor.
İlk adım olarak:
  • robots.txt ile gereksiz sayfaları botlara kapat
  • WAF / güvenlik duvarı (Cloudflare, hosting WAF) ile IP bazlı rate limit kullan


7️⃣ Kalıcı Çözüm Stratejisi (Özet Yol Haritası)

Toparlarsak, kalıcı çözüm için:
  1. Logları incele
    • PHP error, web server error, OpenCart log → asıl sebebi “tahmin”le değil “kanıt”la bul.
  2. Veritabanını toparla
    • Şişmiş tabloları TRUNCATE + OPTIMIZE
    • Gerekirse eksik index ekle
  3. Tema / modül etkisini test et
    • Default tema + minimal modüller ile hız test
    • Ağır modülleri tespit edip alternatif / optimize et
  4. Sunucu kaynaklarını kontrol et
    • CPU, RAM, I/O limitleri
    • Gerekirse daha güçlü hosting / VPS’e geç
  5. PHP & Cache optimizasyonu yap
    • PHP versiyonunu uygun bir sürüme çek
    • Memory limit vb. ayarları yükselt
    • OpCache kullan
  6. Bot / anormal trafik / cron yükünü düzenle
    • robots.txt, WAF, cron saatleri