
500 Internal Server Error, sunucunun sayfayı oluştururken bir hatayla karşılaştığını ama sebebini ziyaretçiye göstermediğini söyler. Sebep neredeyse her zaman sunucudaki hata kaydında yazar. En sık karşılaşılanlar bozuk bir .htaccess kuralı, sitenin kodunun yeni PHP sürümüyle uyumsuz olması, PHP bellek sınırının yetmemesi, yanlış dosya izinleri ve hatalı bir eklenti. Teşhisin ilk adımı tahmin etmek değil, hosting panelinden hata kaydını açmak.
500 hatası sitenin tamamında da çıkabilir, yalnızca bir sayfada ya da yalnızca bir işlemde (form gönderme, ödeme) de. Hangisi olduğu ipucu verir.
500, 502, 503 ve 504 aynı şey mi?
Hepsi sunucu tarafı hatası ama farklı yerleri işaret eder:
- 500 Internal Server Error: Sitenin kendi kodunda ya da sunucu ayarında bir hata var. Genel bir 'bir şeyler ters gitti' mesajı.
- 502 Bad Gateway: Önde duran bir sunucu (örneğin Cloudflare ya da bir proxy) arkadaki asıl sunucudan geçerli bir cevap alamadı. Arkadaki uygulama çökmüş ya da yeniden başlıyor olabilir.
- 503 Service Unavailable: Sunucu geçici olarak hizmet veremiyor. Bakım modu, aşırı yük ya da hostingin hesabı kaynak aşımı nedeniyle sınırlaması.
- 504 Gateway Timeout: Önde duran sunucu, arkadaki sunucunun cevabını çok uzun süre bekledi ve vazgeçti. Yavaş bir veritabanı sorgusu ya da zaman alan bir işlem.
Bu yazı 500'e odaklanıyor; 502-504 için de hata kaydı ve hosting firmasıyla iletişim aynı şekilde ilk adım.
1. Ne zaman başladı?
Son değişiklik genellikle sebebi söyler. Bir eklenti ya da tema güncellendi mi? .htaccess dosyasına bir yönlendirme kuralı eklendi mi? Hosting PHP sürümünü değiştirdi mi? Site başka bir sunucuya taşındı mı? Değişikliği geri almak çoğu zaman en hızlı çözümdür.
2. Hata kaydını açın
cPanel'de 'Hatalar' (Errors) sayfası sunucunun son hata satırlarını gösterir. Plesk'te alan adının altındaki 'Günlükler' bölümüne bakın. Kayıtta sitenin klasöründe bir dosya adı ve satır numarası, ya da 'Invalid command', 'Premature end of script headers', 'Allowed memory size exhausted' gibi bir ifade görürsünüz. Bu ifade aşağıdaki başlıklardan hangisine bakmanız gerektiğini söyler.
WordPress kullanıyorsanız WordPress'in kendi hata kaydını da açabilirsiniz; adımlarını WordPress beyaz ekran hatası yazısında anlattık. Beyaz ekran ile 500 hatası çoğu zaman aynı kökten gelir.
3. .htaccess dosyası
Apache ya da LiteSpeed kullanan hostinglerde .htaccess dosyasındaki tek bir hatalı satır bütün sitede 500 hatasına yol açar. Hata kaydında 'Invalid command' ya da '.htaccess' geçiyorsa sebep büyük ihtimalle bu.
Test etmek kolay: dosya yöneticisinde gizli dosyaları gösterin, .htaccess dosyasının adını .htaccess-yedek olarak değiştirin ve siteyi yenileyin. Site açılıyorsa sorun bu dosyada. WordPress'te panele girip Ayarlar altındaki Kalıcı Bağlantılar sayfasında hiçbir şeyi değiştirmeden 'Kaydet' demek temiz bir .htaccess oluşturur. Daha önce eklediğiniz yönlendirme kurallarını yedek dosyadan tek tek, her seferinde test ederek geri ekleyin.
4. PHP sürümü ve bellek
Hosting firmaları eski PHP sürümlerinin desteğini bitirdiğinde hesapları toplu olarak yeni sürüme taşır. Yıllardır güncellenmemiş bir site ya da eklenti yeni sürümde çalışmayabilir. Hosting panelindeki PHP ayarlarından bir önceki sürüme dönmek siteyi geçici olarak açar. Kalıcı çözüm, uyumsuz kodu güncellemek; desteği biten PHP sürümleri güvenlik güncellemesi almaz.
Hata kaydında 'Allowed memory size exhausted' yazıyorsa PHP'nin bellek sınırı yetmiyor. Hosting panelinden memory_limit değerini artırın (256M çoğu site için yeterli) ya da paketiniz izin vermiyorsa hosting firmasından isteyin.
5. Dosya ve klasör izinleri
Dosya izinleri, sunucunun dosyaları okuyup çalıştırıp çalıştıramayacağını belirler. Genel kural: klasörler 755, dosyalar 644. Bir taşıma ya da toplu yüklemeden sonra izinler 777 gibi çok açık ya da 600 gibi çok kapalı değerlere dönmüş olabilir. Bazı sunucular güvenlik nedeniyle 777 izinli dosyaları çalıştırmayı reddeder ve 500 verir. Dosya yöneticisinde izinleri kontrol edin ya da hosting firmasından izinleri toplu düzeltmesini isteyin.
6. Eklenti, modül ya da özel kod
Hata yalnızca bir sayfada ya da bir işlemde çıkıyorsa, o sayfada çalışan bir eklenti ya da özel kod sorumludur. Örneğin yalnızca ödeme adımında 500 alıyorsanız ödeme eklentisine, yalnızca form gönderiminde alıyorsanız form eklentisine bakın. Eklentiyi devre dışı bırakıp tekrar deneyin. Yönetim paneline giremiyorsanız eklenti klasörünün adını değiştirmek aynı işi görür; adımları WordPress yönetim paneline giremiyorum yazısında bulabilirsiniz.
7. Sunucu yükü ve kaynak sınırları
Hata ara ara geliyor, bazen açılıp bazen açılmıyorsa sunucu kapasitesi yetmiyor olabilir. Paylaşımlı hostinglerde her hesabın işlemci, bellek ve eşzamanlı işlem sınırı vardır. Bir bot saldırısı, yoğun bir kampanya günü ya da ağır bir eklenti bu sınırı aşabilir. Hosting panelindeki kaynak kullanım grafiği bunu gösterir. Önbellek kurmak, botları engellemek ya da daha güçlü bir pakete geçmek gerekebilir. Hosting türlerinin farkını paylaşımlı hosting, VPS ve bulut yazısında anlattık.
Hosting firmasına ne yazmalı?
Sorunu bulamadıysanız destek talebi açın ve şunları ekleyin: hatanın çıktığı adres, başladığı saat, son yaptığınız değişiklik ve hata kaydındaki ilgili satır. 'Sitem açılmıyor' yazan bir talep ile hata satırı eklenmiş bir talep arasında cevap süresi farkı saatlerle ölçülür.
Google'a etkisi
Birkaç saatlik 500 hatası sıralamada iz bırakmaz. Google bir sayfada tekrar tekrar 5xx hatası alırsa önce tarama sıklığını düşürür; hata günlerce sürerse sayfalar dizinden düşmeye başlar. Düzeltmeden sonra Search Console'un Sayfalar raporunda sunucu hatası satırını kontrol edin ve önemli sayfaları URL denetiminden test edin.
Ara ara tekrarlayan 500 hataları, sitenin bakıma ihtiyacı olduğunun işaretidir. Güncellemeleri, PHP uyumluluğunu ve sunucu kaynaklarını düzenli izlemek bakım ve destek paketimizin konusu; site şu an hata veriyorsa doğrudan bize yazın.
Sıkça Sorulan Sorular
500 hatası ziyaretçiden mi, siteden mi kaynaklanır?
Siteden. 500 sunucu tarafında oluşan bir hatadır; ziyaretçinin tarayıcısını temizlemesi ya da başka cihaz denemesi sorunu çözmez.
.htaccess dosyasını silersem site bozulur mu?
Silmek yerine adını değiştirin. WordPress'te kalıcı bağlantılar ve yönlendirmeler bu dosyaya bağlı; test sonrasında Kalıcı Bağlantılar sayfasından yeniden oluşturabilir, eski kuralları yedekten geri ekleyebilirsiniz.
500 hatası yalnızca ödeme sayfasında çıkıyor, neden?
O adımda çalışan ödeme eklentisi ya da ödeme kuruluşuyla bağlantı kuran kod hata veriyordur. Hata kaydındaki dosya yolu genellikle hangi eklenti olduğunu gösterir; eklentiyi güncelleyin ya da sağlayıcısının desteğine başvurun.
Blog yazıları genel bilgilendirme amaçlıdır; hukuki, mali veya teknik danışmanlık yerine geçmez.
