500 Internal Server Error nasıl araştırılır ve çözülür?

500 Internal Server Error, sunucunun isteği işlerken beklenmeyen bir durumla karşılaştığını belirten genel HTTP hata kodudur. Tek başına hangi dosyanın veya ayarın hatalı olduğunu söylemez. Bu nedenle çözüm, aynı kodu veren başka sitenin ayarını kopyalamak değil, kendi isteğinizin hata kaydını ve son değişikliklerini incelemektir.
Hatanın kapsamını belirleyin
Ana sayfa mı, belirli bir form mu, yönetim paneli mi etkileniyor? Yalnız dosya yüklerken oluşan hata ile her sayfada oluşan hata farklı adaylara işaret eder. Tarayıcı Network bölümünde gerçekten 500 yanıtı alındığını doğrulayın. Bazen sayfada “sunucu hatası” yazmasına rağmen HTTP kodu başka olabilir; bu ayrım teşhis için önemlidir.
İsteğin saatini, yolunu ve yaptığınız işlemi kaydedin. Şifre, ödeme verisi veya oturum belirteci içeren isteğin tamamını destek talebine yapıştırmayın. Güvenli biçimde paylaşılabilen hata kimliği varsa bunu ekleyin. Sunucu yöneticisi aynı kimlikle ilgili kaydı bulabilir.
Adım adım kontrol
- Son değişiklikleri listeleyin. Kod yayını, PHP sürümü, eklenti, dosya izni veya yönlendirme değişikliği yapılmış mı bakın.
- Hata günlüğünü okuyun. Olay saatindeki uygulama, PHP veya web sunucusu kaydını inceleyin.
- Tekrar üretin. Aynı işlemi kontrollü test ortamında deneyin; gerçek ödeme veya tekrar sipariş oluşturmayın.
- Nedeni daraltın. Sözdizimi, eksik modül, bağlantı, izin ve kaynak hatalarını birbirinden ayırın.
- Tek düzeltme uygulayın. Değişiklik öncesi geri dönüş imkânını koruyun.
- İşlevi doğrulayın. Hata kodunun kaybolmasının yanında beklenen sonucun oluştuğunu görün.
Sık görülen nedenleri doğru ayırın
Geçersiz .htaccess kuralı web sunucusunun isteği reddetmesine neden olabilir. Uygulama kodundaki ölümcül hata, eksik PHP uzantısı veya veritabanı erişim sorunu da 500 üretebilir. Dosya sahipliği ve izinleri uygulamanın gerekli dosyayı okuyamamasına yol açabilir. Her durumda aynı “izinleri 777 yapın” önerisi uygun değildir.
Bellek veya çalışma süresi sınırına ulaşılması da araştırılabilir, ancak sınırları artırmak altta yatan verimsiz sorguyu veya sonsuz işlemi çözmez. Önce hangi sınırın, hangi iş sırasında aşıldığını belirleyin. Paylaşımlı hosting paketinin kaynak sınırları uygulama ayarından farklı olabilir; ölçümle karşılaştırın.
Hata çıktısını herkese açmayın
Üretim sitesinde ayrıntılı hata görüntülemek dosya yollarını ve gizli bilgileri açığa çıkarabilir. Günlük tutmayı, ziyaretçiye hata göstermeden yapılandırın. Desteğe yalnız gerekli kayıtları iletin. Geçici hata ayıklama ayarlarını sorun çözüldükten sonra gözden geçirin; büyüyen günlükler başka bir disk sorununa dönüşmesin.
Örnek senaryo ve geri dönüş
Yeni kod sürümünden sonra sadece rapor sayfası hata veriyorsa bütün sunucuyu yeniden kurmak gerekmez. İlgili isteğin günlüğünde eksik bir PHP uzantısı veya yanlış veritabanı sorgusu görülebilir. Düzeltme zaman alacaksa önceki sürüme dönmek değerlendirilebilir; fakat yeni sürüm veritabanı şemasını değiştirdiyse eski kodun uyumunu ayrıca kontrol edin. Geri dönüş de test gerektiren bir işlemdir.
Sık sorulan sorular
Tarayıcı önbelleğini temizlemek yeterli mi? Gerçek sunucu hatasının kök nedenini genellikle çözmez; eski yanıtı ayırmak için kullanılabilir.
500 hatası sunucunun kapalı olduğunu mu gösterir? Bir HTTP yanıtı alınmıştır; sorun isteği işleme aşamasında olabilir.
Destekten ne istemeliyim? Olay zamanı ve URL ile ilgili uygulama/web sunucusu hata kaydının incelenmesini isteyin.
İlgili teknik kaynak
İlgili rehberler
Thanks for your feedback!

