• Pazartesi, Ağustos 8, 2022

HTTP durum kodları, çevrimiçi bir isteğin başarılı olup olmadığı ve başarılı değilse hatanın ne olduğu hakkında bilgi sağlar. Ancak hata mesajları her zaman net değildir. Bu özellikle "500 Dahili Sunucu Hatası" için geçerlidir. Bu ileti, sunucuya bağlantı sırasında bir hata oluştuğunu ve istenen sayfaya erişilemediğini gösterir. Ancak, bunun neden böyle olduğunu size tam olarak söylemez. Neyse ki, nedeni bulmak için farklı yöntemler var. Tipik hata kaynaklarına dikkat çekiyoruz ve HTTP hatası 500 ile karşılaşırsanız ne yapmanız gerektiğine dair ipuçları veriyoruz.

İçerik

  • 500 HTTP sunucu hatası ne anlama geliyor?
  • 500 hatasının nedenleri nelerdir?
  • Hosting sağlayıcıları 500 hatasını nasıl düzeltebilir?
  • Kullanıcılar, 500 hatasına nasıl çözüm üretebilir?

500 HTTP sunucu hatası ne anlama geliyor?

Durum kodlarını kullanarak, web sunucusu bir internet kullanıcısının tarayıcısına (istemciye) bir isteğin (yani bir web sitesine erişmenin) başarılı olup olmadığını söyler. Tarayıcı 200 durum kodunu alırsa, her şeyin yolunda gittiğini bilir. Ancak, istenen içerik bunun yerine göründüğünden kullanıcı bu iletiyi hiçbir zaman görmez. 400 ve 500 durum kodlarında durum farklıdır. İlki istemci hatalarını gösterirken, ikincisi sunucuyla ilgilidir. İç Sunucu Hatası 500, sunucu hataları için toplu bir durum kodudur. Bu nedenle, ilk bakışta, hatanın gerçekte nerede yattığını belirlemek mümkün değildir. Kullanıcı yalnızca sunucunun beklenmeyen bir hata bildirdiğini bilir.

Ancak, sunucu Microsoft Internet Information Services'ı (Microsoft IIS) yüklediyse, hata kodu belirtilir. Ondalık basamaklar, hatanın nedenini daha ayrıntılı olarak gösterir:

  • 500.0: Modül veya ISAPI hatası oluştu.
  • 500.11: Uygulama web sunucusunda kapatılıyor.
  • 500.12: Uygulama web sunucusunda yeniden başlatılmakla meşgul.
  • 500.13: Web sunucusu çok meşgul.
  • 500.15: global.asax için doğrudan isteklere izin verilmez.
  • 500.19: Yapılandırma verileri geçersiz.
  • 500.21: Modül tanınmıyor.
  • 500.22: httpModules yapılandırmasının ASP.NET, yönetilen işlem hattı modunda uygulanmaz.
  • 500.23: ASP.NET httpHandlers yapılandırması Yönetilen İşlem Hattı modunda uygulanmaz.
  • 500.24: ASP.NET kimliğe bürünme yapılandırması Yönetilen İşlem Hattı modunda uygulanmaz.
  • 500.50: RQ_BEGIN_REQUEST bildiriminin işlenmesi sırasında yeniden yazma hatası oluştu. Bir yapılandırma veya gelen kuralı yürütme hatası oluştu.
  • 500.51: GL_PRE_BEGIN_REQUEST bildiriminin işlenmesi sırasında yeniden yazma hatası oluştu. Genel bir yapılandırma veya genel kural yürütme hatası oluştu.
  • 500.52: RQ_SEND_RESPONSE bildiriminin işlenmesi sırasında yeniden yazma hatası oluştu. Bir giden kuralı yürütme oluştu.
  • 500.53: RQ_RELEASE_REQUEST_STATE bildiriminin işlenmesi sırasında yeniden yazma hatası oluştu. Bir giden kuralı yürütme hatası oluştu. Kural, çıkış kullanıcı önbelleği güncelleştirilmeden önce yürütülecek şekilde yapılandırılır.
  • 500.100: İç ASP hatası.

500 hatasının nedenleri nelerdir?

"Dahili Sunucu Hatası", istek web sunucusu tarafından işlendiğinde oluşabilir. Toplu durum kodu, sunucuda olabilecek ve web sitesinin yüklenmesini önleyebilecek planlanmamış her şeyi içerir. Sunucu hatası 500 büyük olasılıkla web sunucusunun yapılandırmasında bir hata oluştuğu için oluşur. Aşağıda, tipik hata kaynaklarından bir seçki verilmiştir:

 

  • İzin hatası: Ana dosya ve klasörlerin izinleri doğru ayarlanmamış.
  • PHP zaman aşımı: Komut dosyası harici bir kaynağa erişmeye çalışır ve zaman aşımı yaşar.
  • .htaccess'te yanlış kod: Bir .htaccess dosyasındaki yapı yanlış olabilir.
  • CGI/Perl komut dosyalarında sözdizimi veya kodda hata: Bazı durumlarda, komut dosyaları yanlıştır. Özellikle yollar yanlış hizalanabilir.
  • PHP bellek sınırı: Bir işlem belleği aşıyor ve bu nedenle doğru şekilde yürütülemiyor.

WordPress siteleri veya diğer içerik yönetim sistemleri söz konusu olduğunda, hatalı veya uyumsuz bir uzantı yüklemek de neden olabilir. Eklentiler ve temalar - özellikle üçüncü taraf sağlayıcılardan - tüm web sitesini etkileyebilir.

Hosting sağlayıcıları 500 hatasını nasıl düzeltebilir?

Web sitenizin ziyaretçileri yalnızca 500 sunucu hatasını mı görüyor? Bir operatör olarak, sorunu hızlı bir şekilde çözmelisiniz, çünkü bu yalnızca ziyaretçilerinizi korkutmakla kalmaz, aynı zamanda Google'ın sıralamanızı düşüreceği anlamına da gelebilir. Harekete geçmeden önce, sunucunuzun hala çalışıp çalışmadığını kontrol edin. Değilse, mümkün olan en kısa sürede barındırma sağlayıcınızla iletişime geçin.

 

Dahili bir hata varsa, ilk adım günlük dosyalarını görüntülemektir. Linux sunucuları için, hata mesajlarının koleksiyonu /var/log/httpd/error_log adresinde bulunmalıdır. HTTP hatası 500 kodunu yeniden oluşturmak ve günlük dosyasının nasıl oluşturulduğunu gözlemlemek için web sitesini yeniden yüklemek mantıklıdır. Bu, hatanın kaynağını oldukça hızlı bir şekilde bulmanıza yardımcı olacaktır. Ayrıca kısa bir süre önce hangi değişikliklerin yapıldığını da göz önünde bulundurun. Çoğu durumda, yanlış programlanmış veya uyumsuz eklentiler hata mesajlarının nedenidir.

Önemli dosyalar için izinleri doğru ayarlamadıysanız da hatalar oluşabilir. Genel olarak, üç tür hak vardır:

  • Oku (r)
  • Yazma (w)
  • Yürütme (x)

Bu izinler üç farklı kullanıcı türü için atanabilir:

  • Dosyanın sahibi
  • Kullanıcı grubu
  • Diğer tüm

Haklar r, w ve x kısaltmalarında veya karşılık gelen sayısal değerlerde belirtilir: okuma için 4, yazma için 2 ve yürütme için 1. Her kullanıcı türü için eklenir ve birbiri ardına belirtilir: rwxr-xr-x (sahip için rwx, grup için r-x ve diğerleri için r-x) veya 755. Bu yapılandırma (755) varsayılan ayar olmalıdır. İzin ataması farklı ayarlanırsa, bir hata oluşabilir. Bunu bir komutla değiştirebilirsiniz:

chmod 755 filename

Bu değişiklik sorunu çözmezse, sınama amacıyla her grubun tüm haklarını da serbest bırakabilirsiniz:

chmod 777 filename

Ancak sorunu bulmak için yalnızca bu ayarı kullanın. Herhangi bir kullanıcının dosyayı yeniden yazmasına izin verilir, bu da anlaşılır bir güvenlik riskidir.

Ardından, komut dosyalarınızın düzgün çalışıp çalışmadığını kontrol edin (hakların dağıtılması hata iletisine neden olmadıysa). Bazen komut dosyaları taşındığı, yeniden adlandırıldığı veya silindiği için hatalar oluşur. Ayrıca .htaccess dosyasını da kontrol edin: bir sözdizimi hatası bile - ne kadar küçük olursa olsun - dahili bir sunucu hatasına neden olabilir. Aynı derecede yaygın bir hata, .htaccess dosyasını yanlış biçimlendirmektir. Bu, Unicode olarak değil, ASCII veya ANSI biçiminde oluşturulmalıdır. Bu nedenle, dosyayı Microsoft Word gibi bir sözcük işlem programında değil, Not Defteri, Notepad ++ veya Sublime Text gibi bir metin düzenleyicisinde yazın. Dosyanın hatadan sorumlu olup olmadığını test etmek için, dosyayı geçici olarak yeniden adlandırabilir ve web sitesini yeniden yükleyebilirsiniz. Sunucu artık web sitesini yüklerken .htaccess'e erişmiyor. Hata iletisini artık almıyorsanız, dosyayı onarabilir veya yeni bir dosya oluşturabilirsiniz.

Zaman aşımı da hata mesajına yol açabilir. Bu durumda, bu bir web sunucusu hatası değil, harici bir kaynağa kesintiye uğramış bir bağlantıdır. Web sitenizdeki PHP betikleri diğer sunuculardaki kaynaklara erişmek için ayarlanmış mı? Belki de kaynak artık mevcut değil veya sunucu iletişimi başka bir nedenden dolayı kapalı. Bu hata kaynağını ortadan kaldırmanın bir yolu elbette sitenizi dış kaynaklara bağımlı hale getirmemektir. Bu mümkün değilse, komut dosyanızın zaman sınırını artırabilirsiniz. PHP betiğindeki hataların daha doğru bir şekilde tespit edilebilmesi için etkili hata işleme uygulamak da mantıklıdır.

Bellek aşırı yüklenmiş olabilir mi? Bellek sınırı, bir işlemin ne kadar bellek kullanabileceğini belirler. Kullanılabilir olandan daha fazla RAM gerekiyorsa, bu dahili sunucu hatasına neden olabilir. Geçici bir çözüm olarak sınırı artırabilirsiniz. Bunu yapmak için, php.ini'e şöyle bir komut ekleyin:

memory_limit = 512M

Bu örnekte, sağlanan belleği 512 MB olarak ayarlarsınız. Bununla birlikte, barındırma sağlayıcınızın, rezervasyon yaptığınız pakette yalnızca belirli bir PHP komut dosyası sınırına izin vereceğini unutmayın. Daha yüksek bir değer girerseniz, web sunucusu bunu yok sayar. Sınırı yükseltmek yalnızca geçici bir çözümdür: siteniz tekrar çalışmaya başladığında, yüksek RAM kullanımının nedenini aramalısınız. Hatanın web sitenizin kodunda bulunma olasılığı yüksektir.

Bu yöntemlerden hiçbiri size bir çözüm sunmuyorsa, barındırma sağlayıcınıza başvurmanız iyi bir fikirdir. Bunu yapmadan önce, sunucuların durumunu kontrol edebilirsiniz: birçok barındırma hizmeti sağlayıcısı, sunucularının durumunu bir durum sayfası aracılığıyla bildirir veya bir sorun oluştuğunda kullanıcıları sosyal medya aracılığıyla bilgilendirir.

Kullanıcılar, 500 hatasına nasıl çözüm üretebilir?

Bir web sitesi ziyaretçisi olarak, dahili bir sunucu hatasıyla karşılaşırsanız yapabileceğiniz çok az şey vardır. Hedef web sitesinin bulunduğu web sunucusu yanlış bir yapılandırmaya sahiptir. Bu, PC ayarlarınızda veya ağ bağlantısı ayarlarınızda hata olmadığı anlamına gelir. Bu nedenle, bir internet kullanıcısı olarak sizin için en kolay çözüm genellikle sayfayı daha sonra tekrar yüklemektir. Bir yandan, web yöneticisinin hatayı zaten düzeltmiş olması mümkündür. Bu, özellikle büyük sağlayıcılar için çok muhtemeldir. Öte yandan, web sitesine web sunucusu için uygun olmayan bir zamanda erişmeye çalışıyor olabilirsiniz. Hizmetin tam olarak yeniden başlatıldığı anı seçtiyseniz, her şey planlanacak olsa bile hata mesajı görüntülenir.

Sayfa görüntülemelerindeki aşırı bir artışın sunucuyu aniden çökertmesi de mümkündür. Bu sorun genellikle birkaç saniye içinde çözülür - web sitesi kalıcı olarak aşırı yüklenmediği sürece. Sayfayı yeniledikten sonra hala hata mesajı alıyorsanız, önce tarayıcınızın önbelleğini temizlemeniz gerekir. Tarayıcı aslında web sitesini yeniden yüklemeyebilir, ancak bunun yerine dahili belleğini kullanabilir. Önbelleği boşalttıktan sonra web sitesine erişmeyi yeniden deneyin.

"500 Dahili Sunucu Hatası" hala görüntüleniyorsa, web sitesi operatörünün sorunu çözmesini beklemekten başka seçeneğiniz yoktur. Bununla birlikte, web sitesinin içeriğine erişmek için kullanabileceğiniz küçük bir numara vardır. (İşleyen) sayfanın en son durumuna bağımlı değilseniz, Google önbelleğine erişebilirsiniz. Önbellek komutunu ve ardından Google arama çubuğuna ilgili URL'yi girerseniz, web sitesinin daha önceki (umarım hala çalışıyor) bir sürümüne erişebilirsiniz. Ancak, sayfada gerçekten gezinmeyeceksiniz, yalnızca Google sunucusundaki kopya içinde gezineceksiniz.

 

Geçmişte daha da geriye gitmeniz gerekiyorsa, Wayback Machine'e bir göz atmaya değer olabilir. Orada bazen onlarca yıllık web sitelerinin eski sürümlerini bulabilirsiniz.

Google’s search bar with the command entered to load a website from the search engine’s cache

Information bar on a website loaded from Google cache

Ziyaret etmek istediğiniz web sitesine daha uzun süre erişilemiyorsa, elbette web yöneticisiyle iletişime geçebilirsiniz. Ziyaretçilerin sitelerine erişemediklerini bile bilmiyor olabilirler, bu yüzden kendilerine söylendiği için minnettar olacaklardır.