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
- MySQLin kilitlenmesi / yavaş sorguları
gibi
sunucu tarafı problemlerden gelir.
1. Sunucu error logları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ı?
phpMyAdminden 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 WHEREde 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:
- Mevcut temanın dosyalarını yedekle
- OpenCartın default temasına geç
- 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 hostingte misin,
- Yoksa VPS / dedicated mi kullanıyorsun?
Shared hosting ise 503lerin 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.48.0/8.1 genelde iyi)
Kontrol etmen gereken php.ini / panel ayarları:
- memory_limit → minimum 256M, mümkünse 512M
- max_execution_time → 60120
- 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:
- OpenCart içindeki template/data cache
- 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) CDNden gelsin,
- HTML response için agresif cache kullanma; giriş yapan kullanıcılar, sepet vs. bozulmasın.
6️⃣ Cron Joblar, 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ış APIlere istek atar.
Eğer bu işler yoğun saatlerde oluyorsa, siteye giren ziyaretçi ile bu cronlar CPUyu 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/İndexerlar 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:
- Logları incele
- PHP error, web server error, OpenCart log → asıl sebebi tahminle değil kanıtla bul.
- Veritabanını toparla
- Şişmiş tabloları TRUNCATE + OPTIMIZE
- Gerekirse eksik index ekle
- Tema / modül etkisini test et
- Default tema + minimal modüller ile hız test
- Ağır modülleri tespit edip alternatif / optimize et
- Sunucu kaynaklarını kontrol et
- CPU, RAM, I/O limitleri
- Gerekirse daha güçlü hosting / VPSe geç
- PHP & Cache optimizasyonu yap
- PHP versiyonunu uygun bir sürüme çek
- Memory limit vb. ayarları yükselt
- OpCache kullan
- Bot / anormal trafik / cron yükünü düzenle
- robots.txt, WAF, cron saatleri