500 Internal Server Error, sunucunun isteği işlerken beklenmeyen bir hatayla karşılaştığını ve ne olduğunu daha ayrıntılı söyleyemediğini gösteren genel bir HTTP durum kodudur. Sunucu çalışıyor, isteği almış, ama sayfayı üreten kod ya da yapılandırma bir yerde takılmıştır. Hata mesajı bilerek belirsizdir: ayrıntılar ziyaretçiye değil, sunucunun hata kaydına (error log) yazılır.
Bu yüzden 500 hatasını çözmenin ilk kuralı şudur: tahmin etmeden önce hata kaydına bakın.
500 hatasının en sık nedenleri
Bozuk .htaccess dosyası
Apache ve LiteSpeed kullanan paylaşımlı hostinglerde en yaygın neden budur. .htaccess dosyasındaki tek bir yanlış satır, desteklenmeyen bir komut ya da bir eklentinin yarım bıraktığı yönlendirme kuralı bütün siteyi 500'e düşürür. Dosyayı geçici olarak yeniden adlandırıp (.htaccess-eski) site açılıyor mu diye bakmak hızlı bir testtir.
PHP hatası
Ölümcül bir PHP hatası (fatal error) da çoğu sunucuda 500 olarak görünür: tanımsız bir fonksiyon, eksik bir dosya ya da sözdizimi hatası. Kod güncellemesi, eklenti ya da tema güncellemesi sonrasında başlayan 500 hatası genellikle bu türdendir.
PHP sürümü uyumsuzluğu
Hosting panelinde PHP sürümünü yükselttiyseniz eski bir eklenti ya da tema yeni sürümde çalışmayabilir. Hata, sürüm değişikliğinin hemen ardından başladıysa bir önceki sürüme dönmek siteyi kısa sürede açar; sonra uyumsuz bileşeni güncellemek gerekir.
Bellek sınırı aşıldı
PHP'nin kullanabileceği bellek sınırlıdır (memory_limit). Ağır bir eklenti, büyük bir içe aktarma ya da kontrolden çıkan bir döngü bu sınırı aşarsa betik durdurulur. Hata kaydında "Allowed memory size exhausted" yazar.
Yanlış dosya izinleri
Birçok sunucu güvenlik nedeniyle herkese yazma izni olan (777) PHP dosyalarını çalıştırmaz ve 500 döner. Klasörler için genellikle 755, dosyalar için 644 izni beklenir.
Veritabanı bağlantı sorunu
Bazı uygulamalar veritabanına bağlanamadığında kendi hata sayfasını gösterir (WordPress'te "Veritabanı bağlantısı kurulurken hata oluştu"), bazıları ise 500 döner. Veritabanı parolası değişmişse ya da veritabanı sunucusu durmuşsa site açılmaz.
Zaman aşımı ve kaynak sınırları
Paylaşımlı hostinglerde işlem sayısı ve işlemci kullanımı sınırlandırılır. Sınır aşıldığında sunucu 500 ya da 508 (kaynak sınırı aşıldı) dönebilir. Sorun trafik arttığında görünüp sonra kayboluyorsa kaynak sınırına bakın.
Adım adım çözüm
- Hata kaydını açın. cPanel, Plesk ve benzeri panellerde "Hata Kayıtları" ya da "Error Log" bölümü vardır. Ana dizinde
error_logadlı bir dosya da olabilir. Son satırlar hatanın nedenini ve hangi dosyada olduğunu söyler. - Son değişikliği geri alın. Hata bir güncelleme, yeni eklenti ya da kod değişikliğinden sonra başladıysa onu geri almak en hızlı çözümdür.
- .htaccess dosyasını test edin. Dosyayı yeniden adlandırın; site açılırsa sorun oradadır. WordPress'te Ayarlar → Kalıcı bağlantılar sayfasında "Kaydet"e basmak temiz bir dosya üretir.
- PHP sürümünü kontrol edin. Yakın zamanda değiştiyse bir önceki sürüme dönün.
- Bellek sınırını yükseltin. Hosting panelinden ya da
php.ini/.user.inidosyasındanmemory_limitdeğerini artırın. - Dosya izinlerini düzeltin. Klasörler 755, dosyalar 644 olmalı.
- Hosting firmanıza başvurun. Hata kaydına erişemiyorsanız ya da kayıt sunucu tarafı bir sorunu gösteriyorsa destek kaydı açın; hatanın başladığı saati ve adresi iletin.
WordPress'te 500 hatası
WordPress sitelerde 500 hatasının nedeni büyük çoğunlukla bir eklenti ya da temadır:
- Eklentileri devre dışı bırakın. Yönetim paneline giremiyorsanız dosya yöneticisinden
wp-content/pluginsklasörünün adınıplugins-kapaliyapın. Site açılırsa klasörü eski adına çevirip eklentileri tek tek açarak sorunlu olanı bulun. - Varsayılan temaya geçin. Aynı yöntemle etkin tema klasörünü yeniden adlandırın; WordPress varsayılan temaya döner.
- Hata ayıklamayı açın.
wp-config.phpdosyasındaWP_DEBUGveWP_DEBUG_LOGdeğerlerinitrueyaptığınızda hatalarwp-content/debug.logdosyasına yazılır. Sorunu bulduktan sonra kapatmayı unutmayın.
WordPress'in kendi hata ekranı olan "Bu sitede kritik bir hata oluştu" mesajını WordPress kritik hata yazısında ayrıca anlattık.
500 ile diğer 5xx hataları
| Kod | Anlamı |
|---|---|
| 500 Internal Server Error | Uygulamada ya da yapılandırmada genel bir hata |
| 502 Bad Gateway | Ara katman, arka sunucudan geçersiz cevap aldı (502 rehberi) |
| 503 Service Unavailable | Sunucu geçici olarak hizmet veremiyor (503 rehberi) |
| 504 Gateway Timeout | Arka sunucu zamanında cevap vermedi (504 rehberi) |
500 hatası SEO'yu etkiler mi?
Kısa süreli bir 500 hatası genellikle sıralamayı etkilemez; arama motorları sayfayı daha sonra tekrar tarar. Ama hata uzun sürerse ya da sık tekrarlanırsa tarama yavaşlar ve sayfalar dizinden düşebilir. Google Search Console'daki "Sunucu hatası (5xx)" uyarıları da bunun işaretidir.
500 hatasını ilk siz görün
500 hatası çoğu zaman bir güncellemenin ardından, kimse siteye bakmazken başlar. domainizle.tr ana sayfanızı dışarıdan yoklar; site 500 ya da başka bir sunucu hatası döndürdüğünde ve yeniden açıldığında haber verir. Ana sayfa dışındaki bir adresi, örneğin ödeme sayfanızı ya da bir API ucunu da URL izleme ile ayrıca izleyebilirsiniz.
Sık sorulan sorular
500 hatası benim bilgisayarımdan kaynaklanabilir mi?
Hayır. 500 hatası sunucunun kendisinin ürettiği bir cevaptır. Tarayıcı önbelleğini temizlemek ya da farklı bir tarayıcı denemek hatayı düzeltmez; sorun sitededir.
500 hatası yalnız bir sayfada görünüyor, neden?
Hata o sayfayı üreten koddadır: bir eklentinin kısa kodu, bozuk bir şablon ya da o sayfanın kullandığı bir veritabanı sorgusu. Hata kaydı hangi dosyada olduğunu gösterir.
Hata kaydında hiçbir şey yazmıyor, ne yapmalıyım?
PHP hata kaydı kapalı olabilir. Hosting panelinden hata kaydını açın ya da WordPress kullanıyorsanız WP_DEBUG_LOG ayarını etkinleştirin. Kayıt yine boşsa sorun web sunucusu düzeyindedir; hosting firmanızdan sunucu kayıtlarını isteyin.
500 hatası güvenlik sorunu olabilir mi?
Bazen. Zararlı yazılım bulaşmış bir site, değiştirilmiş .htaccess ya da PHP dosyaları yüzünden 500 verebilir. Tanımadığınız dosyalar ya da değiştirilmiş çekirdek dosyaları görürseniz güvenlik taraması yapın.
Sitenizin hata verdiğini müşterinizden öğrenmeyin. Hesap oluşturun, sitenizi ekleyin ve sunucu hatası olduğunda ilk siz haberdar olun.
Bunu her ay elle kontrol etmeyin
domainizle.tr domain ve SSL bitiş tarihlerini kendiliğinden okur, sitenizin açık olup olmadığını düzenli yoklar; süre dolmadan önce kademeli olarak ve site kapandığında haber verir. Kurulum ya da sunucu erişimi gerekmez.
1 ay ücretsiz deneyin Nasıl çalışır