HTTP 500 hatası internette karşımıza sıkça çıkan hata kodlarından bir tanesidir. Genellikle “500 Internal Server Error” olarak karşımıza çıkan bu hata WordPress site sahiplerinin sitelerini tekrar yayına sokmaları için kontrol etmeleri gereken bir dolu etmene sahiptir. Bu hatanın birden fazla nedeni olabilmektedir. Sitenin tekrardan hayatına devam edebilmesi için HTTP 500 taşına neden olan problemi bulmak ve çözmek gerekir.
Bu hata genellikle aşağıdaki durumlarda ekrana gelmektedir,
- Tarayıcı önbelleği.
- Veritabanı giriş bilgilerinde hata.
- Bozuk veritabanı.
- WordPress kurulumundaki dosyaların bozulması.
- Veritabanı sunucusu ile ilgili problemler.
- WordPress çekirdek dosyalarının bozulması.
- .htaccess dosyasının ve PHP bellek limitinin bozulması.
- Üçüncü taraf plugin ya da temaların problem çıkarması.
- Üçüncü taraf pluginlerde PHP aman aşımı ya da büyük PHP hataları.
- Yanlış dosya ve klasör izinleri.
- Sunucudaki PHP bellek limitinin dolması.
- .htaccess dosyasının bozulması ya da içeriğinin değişmesi.
- CGI ve Perl betiklerinde hatalar.
HTTP 500 Hatası Nedir?
Bir internet sitesini ziyaret ettiğinizde tarayıcınız bu sitenin yer aldığı sunucuya bir istek gönderir. Sunucu bu isteği alır, işler ve istenen kaynakları (PHP, HTML, CSS vb.) HTTP başlığı ile beraber geri gönderir. Burada yer alan durum kodu ise size isteğiniz ile ilgili durumu bildirir. 200 durum kodu her şeyin yolunda olduğunu gösterir ya da 500 hata kodu bir yerlerde problem olduğunu belirtir.
500, 501, 502, 503, 504 gibi birden çok 500 hata kodu bulunmaktadır ve hepsi birbirinden farklı noktalara işaret etmektedir.
500 Internal Server Error Türleri
500 hata kodu genellikle kullanılan web sunucularına, işletim sistemlerine ve tarayıcılara bağlı olarak farklı şekillerde karşımıza çıkmaktadır. Ancak bu kodlar her ne kadar birbirinden çok farklı gözükse de hepsi aynı duruma işaret etmektedir. Aşağıda farklı 500 hata kodlarından en sık karşımıza çıkanları görebilirsiniz.
- “500 Internal Server Error”
- “HTTP 500”
- “Internal Server Error”
- “HTTP 500 – Internal Server Error”
- “500 Error”
- “HTTP Error 500”
- “500 – Internal Server Error”
- “500 Internal Server Error. Sorry something went wrong.”
- “500. That’s an error. There was an error. Please try again later. That’s all we know.”
- “The website cannot display the page – HTTP 500.”
- “Is currently unable to handle this request. HTTP ERROR 500.”
Bunların dışında sadece beyaz boş bir sayfada ekrana gelebilmektedir. Bu genellikle Firefox ya da Safari gibi tarayıcılarda oldukça sık karşılaşılan bir durumdur. Büyük firmalar ya da çok fazla trafiğe sahip internet siteleri aynı zamanda kendi özel 500 hata ekranlarını da gösterebilmektedir.
Internet Information Services 7.0 (Windows) ve üzeri sunucularda 500 hatasının kaynağını gösterebilecek ek hata kodları bulunmaktadır. Bu gibi sunucularda aşağıdaki 500 hata kodları gösterilmektedir.
- 500.0 – Module or ISAPI error occurred.
- 500.11 – Application is shutting down on the web server.
- 500.12 – Application is busy restarting on the web server.
- 500.13 – Web server is too busy.
- 500.15 – Direct requests for global.asax are not allowed.
- 500.19 – Configuration data is invalid.
- 500.21 – Module not recognized.
- 500.22 – An ASP.NET httpModules configuration does not apply in Managed Pipeline mode.
- 500.23 – An ASP.NET httpHandlers configuration does not apply in Managed Pipeline mode.
- 500.24 – An ASP.NET impersonation configuration does not apply in Managed Pipeline mode.
- 500.50 – A rewrite error occurred during RQ_BEGIN_REQUEST notification handling. A configuration or inbound rule execution error occurred.
- 500.51 – A rewrite error occurred during GL_PRE_BEGIN_REQUEST notification handling. A global configuration or global rule execution error occurred.
- 500.52 – A rewrite error occurred during RQ_SEND_RESPONSE notification handling. An outbound rule execution occurred.
- 500.53 – A rewrite error occurred during RQ_RELEASE_REQUEST_STATE notification handling. An outbound rule execution error occurred. The rule is configured to be executed before the output user cache gets updated.
- 500.100 – Internal ASP error.
HTTP Status 500 Hatasının SEO’ya Etkileri
WordPress’in bakımda olduğu durumlarda çıkan ve Google’a daha sonra tekrar kontrol et bilgisini veren 503 hatasının aksine 500 hatası hemen düzeltilmediği durumlarda SEO üzerinde olumsuz etkilere sahiptir. Kısa süreli durumlarda her ne kadar sitenin önbellekteki verileri sayesinde bir problem ortaya çıkmasa da uzun süreli durumlarda Google 500 hatasının site genelinde meydana geldiğini düşünmektedir. Bu durum da SEO sıralamasını olumsuz yönde etkilemektedir.
500 Internal Server Error Çözümü
Tipik olarak 500 hataları sunucunun kendisinden kaynaklanmaktadır ancak bazı durumlarda bu hatalar kullanıcıların bilgisayarından kaynaklı olarak da oluşabilmektedir. Kullanıcılar bilgisayarlarından yapacağı bazı ufak adımlar sonrasında siteye sağlıklı bir şekilde erişebilmektedir.
Sayfa Yenileme ve Tarayıcı Önbelleğini Temizleme
Kullanıcıların 500 hatası ile karşılaştıklarında ilk yapması gereken şey sayfayı yenilemektir. Windows bilgisayarlarda F5 tuşu ya da Ctrl + F5 kombinasyonu ile macOS bilgisayarlarda Cmd + R tuş kombinasyonu ile sayfa yenilenebilmektedir. Ayrıca sayfanın yüklenmesini beklerken aynı siteye farklı bir tarayıcıdan da girmeyi denemek problemin çözümünde yardımcı olabilmektedir. Yenilemenin işe yaramadığı durumlarda ise tarayıcının önbelleğini temizlemek gerekebilmektedir.
Site Sahipleri İçin HTTP 500 Hatasının Çözümü
HTTP 500 hata kodu genellikle site ve sunucu tarafında meydana gelen bir problemden dolayı ekrana gelmektedir. Bu durumda hatanın nedenini belirlemek ve çözüm için gerekli adımları atmak için site sahiplerine büyük bir iş düşmektedir.
Sunucu Hata Kayıtlarını Kontrol Etme
Hata kodlarına bakarak HTTP 500 hatasının neden kaynaklandığını bulabilirsiniz. Bazı hostinglerde bu hata kodlarının yer aldığı araçlar bulunmayabilmektedir. Bu gibi durumlarda “wp-config.php” dosyasına aşağıda yer alan kod satırını ekledikten sonra hata günlüğü oluşturabilirsiniz.
define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG_LOG’, true );
define( ‘WP_DEBUG_DISPLAY’, false );
Bu şekilde oluşturulan WordPress hata kodları /wp-content klasörü içerisinde debug.logs dosyasında yer almaktadır.
Bunun yan sıra Apache ve Nginx tartından oluşturulan hata kodlarını da gözden geçirmek site sahipleri ya da yöneticileri için hatanın nedenini öğrenme konusunda yardımcı olmaktadır.
Apache ya da Nginx hata dosyaları aşağıdaki dizinlerde bulunmaktadır.
Apache: /var/log/apache2/error.log
Nginx: /var/log/nginx/error.log
500 hatasının PHP’de meydana gelen bir hatadan ekrana gelmesi durumunda ise PHP hata raporlamasını kontrol etmek gerekmektedir. Bu hata raporuna ulaşmak için Google Chrome’un geliştirici aracı olan DevTools’a aşağıdaki kodları girmek yeterli olmaktadır.
ini_set(‘display_errors’, 1);
ini_set(‘display_startup_errors’, 1);
error_reporting(E_ALL);
Bu hata raporlamasını alabilmek için ayrıca “display_errors = on” komutunu da “php.ini” dosyasına eklemek gerekebilmektedir.
Veritabanı Bağlantısı Kontrol Etme
500 internet server hatası aynı zamanda veritabanı bağlantısında problem olduğunda da meydana gelebilmektedir. Tarayıcınıza bağlı olarak hataları farklı şekilde görebilirsiniz. Ancak bu hata genellikle tarayıcıda “Error establishing a database connection” hata mesajı ile ortaya çıkmaktadır. Sayfanın tamamı boştur çünkü bağlantı düzgün olmadığı için ekrana getirilebilecek herhangi bir veri yoktur. Bu durumda sadece sitenin anasayfasına değil aynı zamanda WordPress paneline de ulaşmak mümkün değildir.
Bu hatanın birden fazla nedeni bulunmaktadır. En çok karşılaşılan neden ise veritabanı giriş bilgilerinin yanlış olmasıdır.
- WordPress siteniz MySQL sunucuya bağlanmak için ayrı bir giriş bilgisi kullanır. Bunun yanlış olması durumunda da orta HTTP 500 hatası ekrana gelmektedir.
- WordPress veritabanınız bozulmuş olabilir. Temalarda yer alan çok fazla sayıda hareketli parça, plugin, erişim izni olanların sürekli olarak silmesi ve tekrar yüklemesi veritabanının bozulmasına neden olabilmektedir. Bir tablonun kaybolması ya da bozulması veya yanlışlıkla silinmesi bu hataya neden olmaktadır.
- WordPress kurulumunda yer alan dosyaların bozulmuş olması da göz önünde bulundurulması gerekenler arasında yer almaktadır. Bazı durumlarda bu dosyalar siber saldırganlar tarafından da değiştirilebilmektedir.
- Hosting tarafında yanlış giden bir şeyler de olabilmektedir. Özellikle ani trafik artışı ya da birçok mevcut bağlantıya cevap verilememesi gibi durumlarda da bu hata oluşabilmektedir. Paylaşımlı sunucularda yer alan sitelerin kaynaklarını diğer sitelerle paylaşmak zorunda olması nedeniyle HTTP 500 hatası meydana gelmektedir.
Pluginleri ve Temaları Kontrol Etme
Üçüncü taraflara ait pluginler ya da temalar 500 hatalarının en sık karşılaşılan nedenlerinden bir tanesidir. Hatanın bunlardan kaynaklanıp kaynaklanmadığını anlamak için atılcak ilk adım tüm pluginleri inaktif hale getirmektir. Eğer WordPress yönetim paneline erişebiliyorsanız bunu Plugins menüsünden kolay bir şekilde yapabilirsiniz.
Eğer WordPress yönetim paneline erişemiyorsanız bunu cPanel ya da DirectAdmin gibi kontrol panelinin dosya yöneticisi üzerinden ya da FTP ile sunucuya bağlanarak yapmanız gerekmektedir. Plugin dosyasının adını değiştirerek onların WordPress tarafından erişilememesini sağlayabilirsiniz. Bu işlemi yaptıktan sonra HTTP 500 hata kodunun ortadan kalkması durumunda pluginleri tek tek aktifleştirerek ya da plugin klasörlerinin isimlerini tek tek değiştirerek hangisinin ataya neden olduğunu bulabilirsiniz. WordPress’in, pluginlerin ve kullandığınız temanın güncel sürümünde olduğuna emin olun. Güncellenmelerin yapılmadığı takdirde bu hata ekrana gelebilmektedir.
WordPress Çekirdeğini Yeniden Kurmak
Bazı durumlarda WordPress’in çekirdek dosyaları bozulabilmektedir. Bu durum özellikle uzun süredir yayında olan siteler için geçerli olmaktadır. WordPress çekirdeğini site içeriğini bozmadan yeniden kurma son derece basittir. Ancak bu işlemi yapmadan önce sitenizin yedeğini mutlaka almanız gerekmektedir. Sitenin içeriğine zarar vermeden WordPress’in çekirdeğini yeniden kurmanın üç farklı yöntemi bulunmaktadır.
WordPress yönetim paneli üzerinden Başlangıç menüsü altında yer alan Güncellemeler kısmına girerek buradaki yeniden kur kısmına tıklayabilir ve WordPress’in çekirdeğini yeniden kurabilirsiniz.
WordPress yönetim paneline erişemediğiniz durumlarda ise WordPress kurulum dosyasını indirdikten sonra FTP ile sunucuya bağlanarak WordPress içerisinde yer alan “wp-content” klasörü haricindeki tüm dosya ve klasörleri sunucudaki “public_html” klasörü altına gönderebilirsiniz. Burada önemli olan nokta gönderilen dosyaların sunucuda yer alan dosyaların üzerine yazılması gerektiğidir.
Ayrıca WP-CLI kullanarak da WordPress’in çekirdeğini yeniden kurabilirsiniz. Bir komut satırı aracı olan WP-CLI ile aynı zamanda kullanıcıları, gönderileri, kategorileri ekleyip kaldırabilir, veritabanı içerisinde arama ve değişiklik yapabilirsiniz. WordPress çekirdeğini yeniden kurmak için aşağıdaki komutu WP-CLI’a girmeniz yeterli olacaktır.
wp core download –skip-content –force
HTTP 500 Hatasının Diğer Çözümleri
HTTP hatası genel olarak yukarıda bahsedilen sebeplerden ortaya çıkmaktadır. Ancak yapılacak bazı ufak tefek diğer değişiklikler ya da yukarıdaki adımların işe yaramadığı durumlarda denenecek yollar da yardımcı olabilmektedir. HTTP 500 hatası ayrıca aşağıdaki yöntemlerle de çözülebilmektedir.
- Tüm dosyalara 644 (-rw-r—r—) ya da 640 izni vermek
- Tüm klasörlere 755 (drwxr-xr-x) ya da 750 izni vermek
- PHP Bellek limitini arttırmak
- CGI/Perl betiğini kontrol etmek
500 internal server hatası korkutucu olabilir ancak problemin kaynağını doğru tespit etmek kısa sürede çözmenizi sağlayacaktır.