500 Internal Server Error Hatası ve Çözümü

Bu eğitselimizde 500 internal server hatası ve çözümü, Web Sitenizde Kritik Bir Hata Oluştu hatası ve çözümü konularına yer verdik.

Giriş
500 Internal Server Error hatası, kimi zaman bir yazılım hatası, kimi zaman bir sunucu hatası olarak isimlendirilen ve çözümü can sıkıcı bir hata türüdür.
Websitenin içerisinde yapılan bir kod değişikliği, manuel veya otomatik güncelleme işlemi ya da yanlış çalışan bir kod nedeniyle zaman zaman 500 hatalarıyla karşı karşıya kalmak mümkündür.
500 Internal Server Error hatası, kısmen sunucu tarafında kaynaklanan bir hatadan dolayı karşımıza çıkabilse de; her gün sunucu konfigürasyonu değişikliği yapılmadığından (genellikle web sunucuları, özellikle paylaşımlı web hosting sunucuları ilk kurulduğu gün konfigüre edilir ve sonrasında aylık periyotlarda yazılım güncellemesi yapılır) ve sunucu tarafındaki tüm yazılımlar dünya genelinde milyonlarca sunucu tarafından kullanılmakta olduğundan stabilitesi yüksek yazılımlardır. Sonuç itibari ile her 500 hatası ile her karşılaşıldığında 500 hatasının sebebini sunucu konfigürasyonunda aramak sadece çözüm sürecini uzatır.
500 Internal Server Error Hatası Nedir?
Bu hatanın Türkçe'de karşılığı 500 İç Sunucu Hatası şeklindedir. Web sunucu, ilgili HTTP isteğini işlerken beklenmedik ve/veya tanımlanamayan bir hata ile karşılaştığında 500 Internal Server Error hatasını döndürür.
500 Internal Server Error Hatasının Nedenleri Nelerdir?
- Yazılımda hatalı çalışan bir kod,
- Yazılımında, web sunucu ve servisleri ile uyumlu olmayan bir kod,
- Yazılımın gerektirdiği ve sunucu üzerinde eksik olan bir bileşen ya da servis,
- Manuel veya otomatik güncellenen yazılım,
- Sunucu üzerinde pasif durumda olan bir servis (apache, nginx, mysql, postgresql vb.)
- Hatalı ya da değişen sunucu konfigürasyonu,
500 Internal Server Error Hatası Nasıl Çözülür?
Bu hatanın birden fazla çözüm yolu mevcuttur. Biz bu yazıda 500 hatasını PHP ile hazırlanmış websiteleri ve PHP'ye göre konfigüre edilmiş sunuculara göre çözüm yollarını hazırladık.
Yöntem 1 - Yedek Dosyası Geri Yüklemek
Öncelikle websitenize ve kullanıyorsanız veritabanınıza ait bir yedek dosyanız var ise bu yedeği geri yüklemeniz hatanın çözümünü hızlandıracaktır. Daha önce çalışır olduğuna emin olduğunuz yedek dosyasını geri yüklediğiniz halde hata devam ediyor ise konfigürasyonları incelemekte fayda vardır.
Yöntem 2 - Hata Gösterimlerini Aktif Etmek
Yazılımınızın en çok ve ilk yüklenen dosyasına hata gösterimlerini aktif etmek için aşağıdaki kod satırlarını ekleyebilirsiniz. Örneğin; WordPress web sitelerinde index.php veya wp-config.php dosyaları en çok ve ilk sırada yüklenen PHP dosyalarıdır.
Hata gösterimlerini aktif ettikten sonra ekrana çıktısı gelen hataları inceleyip, hangi dosyalarda ne gibi sorun olduğuna bakabilir, dilerseniz o dosyaları ve dosya grubunu tekrar yüklemeyi ya da oradaki sorunları yazılımsal olarak çözümleyebilirsiniz.
Yöntem 3 - Yapılan Değişiklikleri Geri Almak
Eğer yazılımınız üzerinde manuel veya otomatik bir güncelleme gerçekleştiyse yapılan değişiklikleri geri almak hızlı bir çözüm olabilir. Örneğin; WordPress websiteleri siz pasif hale getirmedikçe çekirdek dosyalarını yeni güncelleme geldiğinde otomatik günceller. Yeni sürüm web sunucunuz ile uyumsuz çalışıyor olabilir veya yeni sürümde hatalar olabilir.
Yöntem 4 - Yazılımı ve Konfigürasyonunu İncelemek
Yazılımınız lisanslı bir yazılımsa, yazılımınızın lisans kontrolü yaptığı API servislerinde sorun olabilir. Bu nedenle yazılımınızı temin ettiğiniz firma veya kişi ile irtibata geçebilirsiniz.
Bunun haricinde, yazılımınızın konfigürasyonunda da hatalar olabilir. Örneğin; veritabanı ayarlarınızın olduğu konfigürasyon dosyasında veritabanı bilgileriniz hatalı olabilir ya da veritabanı kullanıcınızın yetkilerinde sorun olabilir.
Yöntem 5 - Bir Yazılımcı veya Sistem Yöneticisinden Destek İsteyin
Herhangi bir sonuca varılamayan durumlarda bir yazılımcı veya sistem yöneticisinden destek istemekte fayda var. Size hatanın sebebi ya da çözümü hakkında bilgi verebilir.
Örneğin; yazılımınızda herhangi bir düzenleme, otomatik güncelleme ya da veri girişi olmadığı halde bir anda bir problem olduysa, belki web sunucu üzerinde anlık ya da bir süreliğine bir problem yaşanıyor olabilir (web sunucunun durması gibi, dosya izinlerinizde problem veya bir bileşenin kaldırılması gibi).
Bu son yöntem mümkün olduğunca son başvurulması gereken yöntemlerden biridir. Çünkü, incelemelerimiz sonucunda çok yüksek bir oranla 500 internal server error hatasının yazılım tarafında oluşan bir hata olduğunu fark ettik. Yöntem 2'deki gibi hata gösterimlerini aktif ederek, nerede sorun olduğunu tespit edebilmek mümkün.
Web Sitenizde Kritik Bir Hata Oluştu Hatası
WordPress web sitelerinde 500 internal server error hatası çoğunlukla bizi Web Sitenizde Kritik Bir Hata Oluştu şeklinde karşımıza çıkmaktadır. Aynı çözüm önerileri ve yöntemler burada da geçerlidir.
Fakat, WordPress üzerindeki sorunları gidermek nispeten diğer yazılımlara göre daha kolaydır.
wp-config.php dosyanızda WP_DEBUG parametresini true olarak değiştirerek ve yukarıda belirttiğim hata gösterimlerini aktif etmek için kodları index.php dosyanıza ya da wp-config.php dosyanızın başına ekleyebilirsiniz.
Yöntem 1 - WordPress'te Hata Gösterimlerini Aktif Etmek
wp-config.php dosyanızı açın ve aşağıdaki satırı;
define( 'WP_DEBUG', false );
şu şekilde güncelleyin;
define( 'WP_DEBUG', true );
Daha sonrasında yukarıdaki hata gösterimlerini aktif etme kodlarını yine wp-config.php dosyanızın en başına ekleyin.
Hata gösterimlerini aktif ettikten sonra karşınıza çıkan hatalara göre çözüm üretebilirsiniz.
Yöntem 2 - Eklentileri Pasif Hale Getirin
Güncellenen veya yeni eklenen bir eklentiniz varsa, WordPress admin panelinize de erişemiyorsanız, FTP üzerinden veya kullandığınız hosting kontrol panelinin dosya yöneticisi üzeirnden eklentileri pasif hale getirebilirsiniz.
Bunu yapmanın kolay bir yolu var. wp-content/plugins klasörüne girdikten sonra tek tek hangi eklentide sorun olduğunu bulmak için klasörleri sonuna _disabled ekleyerek yeniden isimlendirin.
Yöntem 3 - Farklı Bir Temaya Geçici Olarak Geçin
PhpMyAdmin üzerinden ilgili web sitenizin veritabanına ulaştıktan sonra wp_options tablosunu açın (sizinki farklı önekle başlıyor olabilir). Ardından template ve stylesheet isimli satırları bulun ve wp-content/themes klasörünüzde varolan WordPress'in varsayılan temalarına geçiş yapın. Örneğin oradaki satırları eğer "twentytwentyone" teması varsa onun ismiyle güncelleyebilirsiniz.
Yöntem 4 - Yedek Geri Yükleyin
Eğer herhangi bir sonuca varamıyorsanız, varolan ve çalışan bir yedeğinize geri dönüş yapmanız sizin için uygun bir seçenek olabilir.
Sonuç
Buradaki yöntem ve çözüm önerilerini uygulayarak, websitenizdeki can sıkıcı 500 internal server error hatası ile başa çıkabilirsiniz. Hatanın adında 500 internal server error yazdığı için topu sunucu sorunu diyerek sistem yöneticilerimize attığımız bu sorun genellikle yazılım kaynaklı olduğu için çözüm süreçleri sunucu konfigürasyonlarındaki değişiklikleri incelerken uzamaktadır. Burada ki yöntemleri uyguladığınız halde bir sonuca varılamıyorsa, bir yedek yüklenmesinde veya bir sistem yöneticisinin ya da yazılımcının sorunu incelemesinde elbette fayda var.