Błąd 500 na stronie WWW – co oznacza? Jak zapobiegać?
Na wstępie podkreślam, że poniższa treść opisana jest możliwie jak najmniej technicznym językiem i skierowana głównie do użytkowników stron WWW oraz właścicieli prostych usług hostingowych, np. współdzielonych. Jeśli masz uwagi lub pytania dot. tego artykułu, pozostaw komentarz.
Popularny błąd 500 ma wiele twarzy i może równie dobrze oznaczać różne błędy, które go powodują. W sieci, szukając odpowiedzi na pytanie czym jest i dlaczego występuje błąd 500, możemy spotkać się z różnym nazewnictwem jak i treścią komunikat. Wynika to tak naprawdę z różnych ustawień samego serwera, różnych operatorów, ale oznaczenie pozostaje niezmienne:
- HTTP 500 – wewnętrzny błąd serwera” (HTTP 500 – Internal Server Error)
- Błąd HTTP 500” (HTTP Error 500)
- Wewnętrzny błąd serwera” (Internal Server Error)
- Wewnętrzny błąd serwera 500” (500 Internal Server Error)
- Wewnętrzny błąd HTTP 500” (HTTP 500 Internal Error)
- Errore 500″
Błąd 500 to komunikat, informujący o tym, że serwer, np. stron WWW napotkał jakiś błąd i nie może wyświetlić strony www. Jednak samo źródło problemu wcale nie musi leżeć po stronie serwera, co, np. naszych ustawień witryny WWW, plików konfiguracyjnych. Serwer, nie mogąc ich poprawnie użyć/załadować, zwraca błąd. Błąd 500 nie jest więc błędem skierowanym dla typowego użytkownika, który jest zmuszony „coś z tym zrobić” co dla administratora/właściciela strony WWW, że coś się dzieje z jego usługą lub witryną internetową.
I to jest tak naprawdę pierwszy sygnał, wyjaśniający skąd się bierze błąd. Wyjaśnia on też co należy zrobić: sprawdzić działanie strony WWW, hostingu oraz przeanalizować raport błędów.
Jednym z najczęściej pojawiających się rozwiązań (poza szczegółowym planem co analizować w konfiguracji strony WWW) jest… wyczyścić pamięć cache przeglądarki z której korzystamy. Dlaczego?
Sprawnie działające usługi hostingowe oraz strony WWW nie generują zwykle błędów widocznych dla użytkownika. Jeśli jednak te zaczną się pojawiać istnieje duże prawdopodobieństwo, że są one wynikiem chwilowych działań, np. przekroczenia parametrów bezpieczeństwa usługi (zbyt wielu użytkowników korzysta ze strony WWW) czy też chwilowy brak połączenia z bazą danych. W efekcie, użytkownik, który odwiedza stronę WWW czeka na jej załadowanie. To nie następuje, otrzymuje komunikat błędu. Przy ponownej próbie załadowania strony, komunikat powtarza się. I teraz są dwie opcje, albo powtarza się, bo strona nadal nie działa, albo, co jest bardzo możliwe, przeglądarka zapamiętała ten komunikat w pamięci cache i zamiast podjąć próbę ponownego wczytania witryny WWW, zwraca nam jej „obraz” z pamięci, a tym był komunikat błędu.
Oczywiście dla użytkownika to dobra wiadomość, gdyż może podjąć próbę wyczyszczenia pamięci cache przeglądarki i ponowne odwiedzenie strony www. Dla administratora to sygnał, że problem był przejściowy, ale należy przyjrzeć się ustawieniom i znaleźć jego przyczynę, np. w parametrach usługi.
Dlatego konieczne jest odróżnienie, czy szukasz informacji o błędzie 500 jako użytkownik strony WWW (nie masz wpływu na to czy strona WWW działa czy nie) czy szukasz informacji o przyczynie występowania błędu 500 jako administrator (który zapewne w pierwszej kolejności skontaktuje się z BOK aby zgłosić, że jego serwer nie działa).
No dobrze, jeśli wyczyszczenie pamięci cache pomogło Ci, skorzystaj ze strony www. Jeśli witryna nadal nie odpowiada. Czekaj, ale pamiętaj, że po powrocie na stronę, np. po kilku godzinach, także pamiętać o wyczyszczeniu pamięci przeglądarki.
A co zrobić, jeśli jesteś administratorem tej strony i masz problem? Przyczyny należy szukać po stronie serwisu WWW oraz ustawień serwera. Pomocne w tym wszystkim będzie sprawdzenie logów błędów serwera (dostępnych w Direct Admin lub po kontakcie z Biurem Obsługi Klienta) lub np. poprzez ich ręczne włączenie, w formie logowania błędów PHP do pliku. Oczywiście druga opcja nie rozwiąże wszystkich problemów, ale jeśli oczywiście wiesz jak interpretować wyniki, mogą one być bardzo pomocne.
Jeśli problem leży w działaniu skryptów PHP, to zgodnie z powyższym możesz włączyć logowanie błędów PHP do pliku. Na serwerze FTP na który kieruje strona dodaj pliki php.ini o treści:
error_reporting = E_ALL & ~E_NOTICE error_log = /errors.log log_errors = On
W wyniku jego działania już po kilku minutach powinien pojawić się nowy plik errors.log z zapisem pierwszych informacji.
Idźmy jednak dalej w stronę problemów z serwerem. Warto zacząć od prosty rzeczy jak, np. zmienić wersję interpretera PHP na hostingu (dla nowych stron WWW może być wymagane użycie nowszych wersji PHP), niewykluczone także że sam dokonałeś wcześniej zmiany wersji nie uwzględniając jej zgodności z wersją serwisu www.
Jeśli komunikat błędu występuj raz na jakiś czas, np. co kilka minut, godzin, okazjonalnie, ale mimo to jest dostrzegalny, można zaobserwować jego powtarzalność, to możliwe, że skrypty, ich działanie, obciążają zbyt mocno hosting wykorzystując za dużo zasobów i przekraczając dopuszczalne parametry bezpieczeństwa usługi.
Niewykluczone, że w większości przypadków dokonasz samemu ich „podniesienia” stosując odpowiednie wpisu w pliku php.ini umieszczonym w katalogu głównym serwera, ale może pomocny okazać się kontakt z Burem Obsługi Klienta, który będzie mógł skonsultować wykorzystanie zasobów z administratorami. To pozwoli nam określić czy parametry faktycznie są przekraczane oraz czy istnieje możliwość ich chwilowego podniesienia, np. celem testu lub doprowadzenia strony do porządku.
Oczywiście idąc tym tropem, możemy też przyjąć, że problem leży po stronie hostingu, np. ogólnego obciążenia maszyny na której znajduje się np. nasz hosting współdzielony. Tu jednak administratorzy usług nie powinni mieć problemu z szybkim przywróceniem sprawności maszyny. Warto zawsze chwilę wstrzymać się z oceną i kontaktem z BOK.
Jeśli błąd występuje stale, a więc pomimo odczekania i podjęcia prób otwarcia witryny WWW nadal jest ona niedostępna i widoczny jest błąd 500, szukałbym przyczyny bezpośrednio po stronie serwisu WWW, jego ustawień, konfiguracji i zapisów w plikach, typu .htaccess.
Wyróżniamy więc takie elementy jak:
- nieprawidłowe uprawnienia plików i folderów, ograniczające dostęp skryptom i tym samym uniemożliwiające ich wykonanie,
- błędne wpisu w pliku .htaccess, np. linki, funkcje Options, php_flag, SymLinks,
- błędnie ustawiona wersja PHP (patrz wyżej),
- błąd połączenie z serwerem SQL, zwłaszcza z zewnętrznym hostem (to jednak zwykle skutkuje komunikatem o braku połączenia z bazą danych i wyświetleniem pustej strony WWW),
- złamanie zabezpieczeń strony WWW, włamanie, modyfikacja skryptu, zwłaszcza dla WordPress, Joomla i innych popularnych CMSów.
Niestety, tu możliwości jest naprawdę wiele a ich opisanie może być skomplikowane, dlatego, warto w tym miejscu powrócić na początek artykułu i rozpocząć diagnozę od sprawdzenia podstawowych elementów. Połączenie ze stroną WWW, przeglądarka, pamięć cache, częstotliwość i okoliczności występowania błędu, sprawdzenie i zmiana wersji PHP na serwerze (interpreter PHP), sprawdzenie działania serwera i domeny (testowe uruchomienie pliku index.html, stworzenie subdomeny, sprawdzenie działania poczty w domenie), logowanie błędów PHP do pliku i na końcu kontakt z Biurem Obsługi Klienta, jeśli sami nie potrafimy znaleźć przyczyny.
Podczas kontaktu z dostawcą hostingu, warto podejść do rozmowy profesjonalnie, a więc od zadawania pytań, a nie stawiania zarzutów. Posiadam usługę XYZ i odnotowuję pojawianie się błędu 500:
- czy wykonywane są jakieś prace na mojej usłudze lub serwerze na którym znajduje się ona?
- czy odnotowaliście podobne zgłoszenia?
- proszę o sprawdzenie wykorzystania zasobów usługi?
- proszę o wskazanie w jaki sposób mogę sprawdzić logi błędów serwera lub czy możecie je udostępnić?
- czy mogę liczyć na pomoc w analizie działania strony WWW? (tu firmy często oferują różnego rodzaju płatne lub bezpłatne analizy stron WWW).