Web sitelerinde en çok karşılaşılan hatalardan biri olan 500 internal server error (500 dahili sunucu hatası); web sitenizin sunucusunda meydana gelen bir hata hakkında sizi uyaran fakat bu hatanın kaynağını göstermeyen bir HTTP durum kodudur. Sunucunun cevap verememesi sonucunda bu hata kodu ile karşılaşılır.
HTTP 500 internal server hatası, farklı varyasyonlarla da ekrana yansıyabilir: 500 Internal Server Error, HTTP 500 – Internal Server Error, Temporary Error (500), Internal Server Error, HTTP 500 Internal Error, 500 Error, 500. That’s an error, HTTP Error 500.
HTTP 500 Internal Server Hatasının Sebebi Nedir?
500 internal server hatası, çeşitli faktörler sonucunda ortaya çıkabilir.
HTTP 500 internal server hatasına sebep olan farklı durumları sıralayacak olursak;
- Web site yazılımında kodlama kaynaklı hatalar,
- .htaccess dosyasının bozulması ya da yanlış yapılandırılmış olması,
- Sunucunun cevap vermemesi,
- Sunucuya gelen aşırı istek ya da DDOS/Botnet benzeri saldırılar sonucu sunucunun devre dışı kalması,
- WordPress tabanlı sitenin kök dizininden kaynaklanan sorunlar,
- PHP dosyalarının herkes tarafından yazılabilir olması sonucunda sunucunun PHP bellek limitinin aşılması,
- Manuel uygulama kurulumlarında dosya izinlerinin geçersiz yapılandırılması,
- Uygulama ve yazılımlardaki yanlış kodlama ya da komut hataları,
- Dosya isimlerinin geçersiz olması,
- Yüklenen eklentilerin silinmesi, eski PHP formatında kodlanması ya da güncellenmemiş olması,
- Uyumsuz PHP sürümleri veya WordPress güncellemeleri.
HTTP 500 Internal Server Hatası Nasıl Çözülür?
HTTP 500 internal server hatasını çözmek için öncelikle hatanın kaynağını tespit etmelisiniz. Bunun için cPanel kontrol panelinden hesabınıza giriş yapın. Panelde yer alan Kayıtlar (Loglar) bölümünden Hatalar/Hata Kaydı alanına tıklayın. Hata kaydı kayıtlarından, HTTP 500 internal server hatasınının ana sebebini öğrenerek doğru çözümü uygulayabilirsiniz.
HTTP 500 internal server hatasınının kaynaklandığı soruna göre aşağıdaki adımları izleyerek çözüm bulabilirsiniz.
- Sitenizi yedekleyin: FTP ya da WordPress eklentilerini kullanarak web sitenizi mutlaka yedekleyin. Böylelikle internal server hatasını çözerken ortaya çıkabilecek sorunlara karşı önlem almış olursunuz. (Normal zamanlarda da belli aralıklarla yedekleme işlemi yaparak sitenizi güvence altına almayı ihmal etmeyin.)
- Kodlama hatalarında çözüm: 500 internal server hatasının en yaygın sebeplerinden biri .htaccess (Hypertext Access) dosyasında meydana gelen bozulmadır. Bu durumda ilk olarak .htaccess dosyasını yeniden adlandırmayı deneyebilirsiniz. Bunun için FTP kullanarak WordPress dizinine giriş yapın. Home veya public_html dizini içerisinde yer alan .htaccess dosyasını bularak sağ tıklayın. Açılan sekmeden Yeniden Adlandır seçeneğine tıklayarak dosyayı farklı bir isimle değiştirin. Tarayıcıdan web sitenize giderek 500 internal server hatasının çözülüp çözülmediğini kontrol edin. Eğer sorun hâlâ devam ediyorsa .htaccess dosyasını yeniden oluşturmayı deneyin.
.htaccess dosyasını yeniden oluşturmak için öncelikle FileZilla ya da FTP istemci programı üzerinden WordPress kök dizinini açın. .htaccess dosyasını görüntüleyemiyorsanız, Server’dan Force Showing Hidden Files (Gizli Dosyaları Göster) seçeneğine tıklayın. Genellikle httpdocs olarak adlandırılan dosyayı bularak sağ tıklayın ve Yeniden Adlandır diyerek dosya adını .htaccess.bak olarak değiştirin. Ardından dosyayı silin. Bu işlemden sonra yeni bir .htaccess dosyası oluşturmak için WordPress yönetici panelindeki Ayarlar (Settings) kısmından Permalinks’i seçerek sayfanın en alt bölümüne gidin ve Değişiklikleri Kaydet (Save Changes) butonuna tıklayın. Eğer 500 internal server hatası .htaccess dosyasından kaynaklandı ise, bu adımı izlediğinizde sorun çözülmüş olacaktır.
- PHP bellek limitinde çözüm: PHP hafıza/bellek limiti, hosting firması ve WordPress tarafından belirlenir. Bellek limitini aşmaya başladığınızda WordPress bu limiti arttırmayı dener fakat arttırılabilir limit hosting sağlayıcısı tarafından belirlendiğinden hafıza limiti hataları ortaya çıkar. Bu durumda 500 internal server hatasına PHP bellek limitinin sebep olup olmadığını test etmelisiniz. Bunun için FileZilla ya da FTP istemci programı üzerinden WordPress kök dizinini açın. wp-config.php dosyasını bulun ve üzerine gelip sağ tıkladıktan sonra Download seçeneğine tıklayarak dosyayı bilgisayarınıza indirin. Dosyayı NotePad++ veya Atom benzeri bir metin editörü ile açarak PHP açma tag’i olan /* That’s all, stop editing! Happy blogging. * / satırının hemen üzerine şu kodu ekleyin:
define (‘WP_MEMORY_LIMIT’, ‘300M’);
Böylelikle PHP bellek limitiniz 300 MB’a arttırılacaktır. (Bu kodda yer alan 300 ifadesini istediğiniz limit miktarı ile değiştirebilirsiniz.) Değişiklikleri kaydettikten sonra mevcut wp-config.php dosyasınının üzerine yazarak WordPress kök dizinine yeniden yükleyin. FTP istemcisini ve sitenizi yenilediğinizde hâlâ 500 internal server hatasını görüyorsanız, sorun PHP bellek limitinizden kaynaklanmıyor demektir. Sorunu çözmek için diğer seçenekleri deneyin. PHP bellek limitinizi dosya üzerinden arttırmanız yeterli olmayabilir. Bu durumda hosting firmanızla görüşerek limit arttırma talebinde bulunmalısınız.
- Hata ayıklama (debugging) ile çözüm: 500 internal server hatasını WordPress hata ayıklama modu ile debug.log dosyasına yazdırarak bulabilirsiniz. Bunun için WordPress dizinindeki wp-config.php dosyasını bilgisayarınıza indirerek dosyayı açın. /* That’s it, stop editing! Happy blogging */ satırının hemen üzerine aşağıdaki kodu ekledikten sonra dosyayı kaydedin ve wp-config.php dosyasını mevcut wp-config.php dosyasınının üzerine yazarak WordPress kök dizinine yeniden yükleyin.
define (‘WP_DEBUG_LOG’, true); define (‘WP_DEBUG_DISPLAY’. false); @ini_set (‘display_errors’, 0);
Sitenizi yenileyerek hatanın yeniden ortaya çıkmasını sağlayın. Böylelikle WordPress dizinindeki wp-content klasöründe yer alan debug.log dosyasından 500 internal server hatasının sebebini görüntüleyebilirsiniz.
- Yetki kontrolü: WordPress dizininde yer alan dosya ve klasörlerin Kullanıcı İzin Hakları gibi doğru yetkilere sahip olup olmadığını kontrol edin.
- Bozulmuş WordPress dosyalarında çözüm: Bozulmuş WordPress core dosyalarını düzeltmek için wp-admin ve wp-includes klasörlerinin yeni sürümlerini yükleyin. Bunun için wordpress.org sitesini ziyaret ederek WordPress’in en son sürümünü indirin. İndirdiğiniz dosyadaki WordPress klasörü içerisinde yer alan wp-admin ve wp-includes klasörlerini bulun. FileZilla ya da FTP istemci programını kullanarak WordPress kök dizinini açın ve yeni wp-admin ile wp-includes klasörlerini eski sürümlerin üzerine yazarak yükleyin.
- Eklenti hatalarında çözüm: Siteniz için eklenti yüklemesi ya da güncellemesi yaptıktan sonra 500 internal server hatası aldıysanız, eklentileri devre dışı bırakarak/kaldırarak bu sorunu çözebilirsiniz. Bunun için WordPress yönetici paneline giriş yaparak Eklentiler menüsünden Yüklü eklentiler’i görüntüleyin ve sorun çıkartan eklentiyi seçerek devre dışı bırakın.
- Tema hatalarında çözüm: Web sitenize yeni bir tema yükledikten sonra ya da mevcut temanızı güncelledikten sonra 500 internal server hatası aldıysanız, WordPress yönetici panelinden temayı değiştirerek sorunu çözebilirsiniz.
- Site yedeğini geri yüklemek: Eğer 500 internal server hatasıyla karşılaşmadan önce sitenizi yedeklediyseniz, tüm WordPress site dosyalarını kaldırıp yedeği geri yükleyerek sorunu çözebilirsiniz. Yedeği geri yükleme işlemini manuel yapmak istemiyorsanız All-in-One WP Migration eklentisinden faydalanabilirsiniz.
- Hosting firması ile iletişime geçmek: 500 internal server hatasını çözmek için yukarıdaki tüm adımları denediğiniz hâlde hâlâ çözüm bulamadıysanız, hosting firmanızla iletişime geçerek teknik destek talep edebilirsiniz.
Özellikle e-ticaret sitelerinde 500 internal server hatası gibi sorunlar satış oranlarını olumsuz yönde etkiler. Bu gibi durumlarla karşılaşmamak için sitenizi sık sık kontrol ederek aksamaları anında düzeltmelisiniz. Sitenizi kurarken daha en başında fiyat/performans açısından daha yüksek bir hosting paketi seçebilirsiniz.