Promocja: pl – od 5 zł | eu – od 5 zł | com – od 20 zł

Błąd 500 Internal Server Error - dlaczego się pojawia?

Błąd HTTP 500 informuje o wystąpieniu wewnętrznego problemu, który napotkał serwer podczas przetwarzania strony internetowej. Pojawienie się takiego błędu powoduje, że użytkownik odwiedzający stronę nie może wykonać na niej żadnych czynności. Sam komunikat nie wskazuje jednak dokładnie na przyczynę takiego stanu rzeczy, co utrudnia zdiagnozowanie i wyeliminowanie błędu 500.

Poniżej zamieszczamy możliwe przyczyny występowania błędów 500 oraz sposoby usuwania tych błędów ze strony:

 

    • Próba zmiany wersji PHP poprzez .htaccess
      1. W przypadku usług hostingowych nazwa.pl, zmiana wersji PHP możliwa jest tylko poprzez CloudHosting Panel (szczegółowy opis funkcji).
      2. Należy usunąć z pliku .htaccess jakiekolwiek wpisy typu AddHandler application/x-httpd-php, a następie zmienić wersję PHP korzystając z CloudHosting Panel.
      3. Logi nie zawierają informacji na temat tego błędu. Należy zweryfikować .htaccess.

 

    • Próba zmodyfikowania WAF poprzez .htaccess
      1. Ustawieniami WAF (Web Application Firewall) możesz zarządzać samodzielnie, korzystając z CloudHosting Panel (Sprawdź: Web Application Firewall). Na Twoje życzenie, nasz Dział Techniczny może dodać pojedyncze reguły do wyjątków w zabezpieczeniach WAF. W tym celu prześlij do nas swoje zgłoszenie z kontaktowego adresu e-mail zdefiniowanego w Panelu Klienta na adres kontakt@nazwa.pl.
      2. Plik .htaccess na serwerze nie może zawierać samodzielnie dodanych wpisów typu SecRuleRemoveById. Jeżeli plik .htaccess na Twoim serwerze zawiera takie wpisy, musisz je z niego usunąć, aby nie generowały błędu 500.
      3. Przykładowa informacja w Error Log (Sprawdź: Logi serwera):
    • [Sun Nov 14 13:37:12.738689 2021] [core:alert] [pid 47:tid 140183773116160] [client ip] ścieżka: SecRuleRemoveById not allowed here

 

    • Błędna sitemapa
      1. Dość często błędy na stronie wywoływane są przez boty/crawlery, które wykonują potężną ilość losowych zapytań. Boty odwołują się często do nieistniejących plików, co z kolei wywołuje błędy.
      2. Należy zweryfikować poprawność pliku sitemap.xml i wprowadzić ewentualne poprawki lub stworzyć ten plik od nowa. Popularne systemy CMS posiadają wtyczki, które umożliwiają generowanie pliku sitemap.xml.
      3. Błędna sitemap'a nie objawia się błędem w logach. Błędy 500 pokazują się wówczas w Access log, jako zapytania botów o nieistniejące lub niedostępne miejsca w ramach strony.

 

    • Użycie magic_quotes_gpc na wersji PHP wyższej niż 5.3
      1. Magic_quotes w PHP może być użyte tylko dla PHP w wersji 5.3. Nie ma możliwości użycia tej funkcji przy wyższych wersjach PHP, ze względu na jej wycofanie.
      2. Jeśli korzystasz z PHP w wersji wyższej niż 5.3, to usuń odwołanie do magic_quotes_gpc w .htaccess.
      3. Przykładowa informacja w Error Log (Sprawdź: Logi serwera):
    • [Mon Sep 06 23:02:07.179720 2021] [proxy_fcgi:error] [pid 7962:tid 140292288149248] [client ip] AH01071: Got error 'Passing INI directive through FastCGI: unable to set 'magic_quotes_gpc'Passing INI directive through FastCGI: unable to set 'magic_quotes_runtime'Passing INI directive through FastCGI: unable to set 'register_globals''

 

    • Pętla przekierowań
      1. Pętla przekierowań występuj, gdy na stronie wykonywana jest zbyt duża ilość przekierowań, które w swoich zapytaniach zapętlają się (najczęściej jest to zapytanie z jednej strony, na drugą, i z powrotem).
      2. Należy zweryfikować plik .htaccess na serwerze pod kątem przekierowań (reguła Rewrite, moduł mod_rewrite) i sprawdzić, czy jakiekolwiek reguły nie kolidują ze sobą.
      3. Przykładowa informacja w Error Log (Sprawdź: Logi serwera):
    • [Mon Oct 04 15:27:21.817202 2021] [core:error] [pid 239:tid 139845200504576] [client ip] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

 

    • Duża liczba zapytań wykonywana przez boty/crawlery
      1. Zdarza się tak, że z niewyjaśnionych przyczyn boty/crawlery wykonują dużą liczbę zapytań do strony. Może to powodować błędy z powodu nadmiernego ruchu na stronie.
      2. Należy stworzyć plik robots.txt (jeśli nie istnieje) i zablokować lub ograniczyć w nim ruch botów na stronie. W przypadku popularnych systemów CMS istnieją dedykowane do tego moduły.
      3. Przykładowa informacja w Access Log (Sprawdź: Logi serwera):
    • [07/Oct/2021:22:13:54 +0200] "GET /robots.txt HTTP/1.1" 500 672 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" waw1

 

    • Zawirusowane pliki
      1. Mimo posiadania różnych zabezpieczeń na stronach, takich jak firewall lub wtyczki antyexploitowe, może zdarzyć si, że strona zostanie zawirusowana. To może generować błędy 500.
      2. Należy zweryfikować pliki strony pod kątem złośliwego kodu. Zazwyczaj objawia się on ciągiem losowych znaków w plikach strony, lub dziwnymi nazwami plików lub folderów jak np. ghblrdsvyx.php. Można również poprosić o skan Pomoc Techniczną nazwa.pl przesyłając zgłoszenie z kontaktowego adresu e-mail na adres kontakt@nazwa.pl.
      3. Przykładowa informacja w Access Log (Sprawdź: Logi serwera):
    • [02/Nov/2021:22:55:15 +0100] "GET /x8p1DIR1e HTTP/1.1" 503 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" waw1

 

    • Brak miejsca w bazie danych lub baza danych jest zablokowana
      1. W przypadku braku miejsca w bazie danych lub w przypadku jej zablokowania strony nie mogą wyświetlać informacji, które są w niej zapisane, ze względu na brak możliwości połączenia z bazą.
      2. Należy odblokować bazę (szczegółowy opis funkcji) lub zwiększyć jej zarezerwowaną powierzchnię (szczegółowy opis funkcji) poprzez CloudHosting Panel. W przypadku, gdy baza danych zajmuje już 5 GB, należy zwolnić miejsce w samej bazie, usuwając niepotrzebne rekordy.
      3. Logi nie zawierają informacji o błędzie.

 

    • Nieprawidłowa konfiguracja połączenia z bazą danych
      1. Nieprawidłowa konfiguracja połączenia z bazą danych skutkuje brakiem możliwości działania aplikacji internetowych, takich jak WordPress, Prestashop, itp.
      2. Niezbędne jest poprawienie konfiguracji połączenia aplikacji z bazą danych. W popularnych systemach CMS są za to odpowiedzialne dedykowane pliki konfiguracyjne, jak np. plik wp-config.php, który znajduje się w katalogu głównym aplikacji WordPress.
      3. Nieprawidłowa konfiguracja połączenia z bazą danych powoduje, że w Access log widoczne są praktycznie same błędy 500. Przykładowy zapis z Access Log (Sprawdź: Logi serwera) przy źle skonfigurowanym połączeniu z bazą danych:
    • [26/Oct/2021:12:59:49 +0200] "GET /main.php?g2_GALLERYSID=54cf2359fc39d018e068f3517bc14d4a&g2_itemId=380 HTTP/1.1" 500 0 "-" "Mozilla/5.0 (compatible; SemrushBot/7~bl; +http://www.semrush.com/bot.html)" was1

 

    • Brak dostępu do plików
      1. Plik .htaccess umożliwia zablokowanie dostępu do wybranych plików. Czasami jednak pliki te są niezbędne do działania aplikacji lub reguły blokowania są błędnie wpisane.
      2. Należy sprawdzić poprawność utworzonych reguł Files w plikach .htaccess, upewniając się, czy wskazane w nich pliki mają być blokowane lub czy wpisy są dobrze zdefiniowane.
      3. Przykładowa informacja w Error Log (Sprawdź: Logi serwera):
    • [Mon Nov 15 05:41:54.274237 2021] [access_compat:error] [pid 661:tid 140533393512192] [client ip] AH01797: client denied by server configuration: ścieżka

 

    • Brak certyfikatu SSL
      1. Brak certyfikatu SSL, który zabezpiecza stronę, może być powodem występowania błędów 500. Niektóre zasoby strony mogą być wywoływane przez http (bez zabezpieczenia), a inne przez https (połączenie szyfrowane). Następuje wówczas mieszanie treści, przez co mogą być one niedostępne na stronie.
      2. Należy zainstalować ważny certyfikat SSL korzystając z CloudHosting Panel (szczegółowy opis funkcji), dokonując jego zakupu w nazwa.pl.
      3. Przykładowa informacja w Error Log (Sprawdź: Logi serwera):
    • [Tue Oct 26 12:59:58.871270 2021] [proxy_fcgi:error] [pid 5281:tid 140492653270784] [client ip] AH01071: Got error 'PHP message: getimagesize(): SSL operation failed with code 1. OpenSSL Error messages:\nerror:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed\nPHP message: [resources/views/layout.php:40] getimagesize()\nPHP message: [controllers/SPCtrl/page.php:159] View->render()\nPHP message: [controllers/SPCtrl/page.php:413] SPCtrl\\page->render()\nPHP message: [controllers/SPCtrl/page.php:110] SPCtrl\\page->subpage()\nPHP message: [controllers/SPCtrl/_run.php:64] SPCtrl\\page->showPage()\nPHP message: [index.php:172] Base→run()\n'

 

    • Brak favicon
      1. Jeżeli konieczność występowania favicony jest zdefiniowana w kodzie strony, jej brak może powodować występowanie błędu 500.
      2. W przypadku braku pliku favicon.ico, należy umieścić go na serwerze i zdefiniować w kodzie aplikacji prawidłową ścieżkę dostępu do tego pliku. W przypadku popularnych systemów CMS, informacje na temat favicony oraz jej ustawienie można edytować w panelu konfiguracyjnym aplikacji.
      3. Przykładowa informacja w Access Log (Sprawdź: Logi serwera):
    • [29/Sep/2021:20:35:34 +0200] "GET /favicon.ico HTTP/1.1" 500 1028 "URL" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0" krk2

 

    • Nieodpowiednia wersja PHP
      1. Na serwerze ustawiono wersję PHP nieodpowiednią do działania uruchamianej aplikacji.
      2. Należy zmienić wersję PHP na serwerze korzystając z CloudHosting Panel (szczegółowy opis funkcji).
      3. Brak szczegółowych informacji w logach. Objawia się to zwykłym zapytaniem z błędem 500 w Access Log (Sprawdź: Logi serwera):
    • [10/Nov/2021:01:24:42 +0100] "GET /makijaz/354-szminka-true-colour-szminki-i-pomadki-avon.html HTTP/1.1" 500 0 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" waw1

 

    • Problemy z wtyczkami/modułami
      1. Zainstalowanie wtyczek/modułów, które nie współpracują z wersją wykorzystywanej przez nas aplikacji, może być powodem pojawiania się błędów 500 na stronie.
      2. Należy zweryfikować dostępność aktualizacji modułów i zaktualizować te, które mają taką możliwość. Uprzednio należy się upewnić, że moduły mogą ze sobą współpracować i nie będą powodowały błędów w obecnej wersji aplikacji.
      3. Brak informacji o błędzie w logach. Należy zweryfikować działanie systemu, wyłączając poszczególne moduły po kolei, poprzez np. zmianę nazw folderów z modułami na serwerze FTP.

 

    • Przestarzała wersja aplikacji
      1. Przestarzała wersja aplikacji może powodować błędy podczas korzystania z nowszej wersji PHP.
      2. Należy zaktualizować aplikację utrzymywaną na serwerze tak, aby współgrała z używaną wersją PHP, jeśli nie ma możliwości zmiany wersji PHP na niższą.
      3. Brak informacji o błędzie w logach. Niezbędne jest sprawdzenie na stronie producenta aplikacji, czy dana wersja współpracuje z obecną wersją PHP na serwerze.

     

    W przypadku problemów ze zdiagnozowaniem przyczyny występowania błędu 500 na Twojej stronie, skontaktuj się z naszym Działem Obsługi Klienta, wysyłając swoje zgłoszenie na adres kontakt@nazwa.pl. Pamiętaj, że zgłoszenie musi być wysłane z kontaktowego adresu e-mail, który masz wpisany w swoim Panelu Klienta.

Table of Contents