Wszyscy dobrze znamy słowo „server”. Niestety czasem możemy zobaczyć obok niego inne, źle kojarzące się słowo „error”. „Server error” to dla właścicieli stron WWW komunikat, który wzbudza słuszny niepokój. Widząc taki błąd, wiele osób uważa, że odpowiedzialność za jego pojawienie się i naprawę leży w całości po stronie firmy hostingowej. Tu musimy Cię zdziwić – wszystko zależy od Ciebie! Odpowiedzi znajdziesz w tym artykule.
Codziennie spotykamy się z tym, że używane urządzenia elektroniczne wysyłają do nas komunikaty o błędach czy problemach w swoim funkcjonowaniu. Jesteśmy przyzwyczajeni do tego, że coś czasem wymaga naprawy. Pralka, telefon, ekspres do kawy czy samochód mogą nas informować o konieczności podjęcia stosownego działania. Nie inaczej jest w przypadku serwerów, dzięki którym funkcjonują strony internetowe – tak bardzo kluczowe dla dzisiejszego biznesu.
Wyobraź sobie sytuację, w której rozładował Ci się akumulator w samochodzie. Czy będziesz za ten stan rzeczy obwiniał producenta pojazdu? Z pewnością nie, bo wiesz, że to była konsekwencja Twojego działania. A co ze stroną internetową? Duża grupa właścicieli podchodzi do sprawy zupełnie inaczej. Winą za każdy ewentualny błąd, który zauważą na swojej witrynie, obarczają firmę udostępniającą im hosting stron internetowych.
Co znaczy Internal Server Error?
To komunikat diagnostyczny protokołu HTTP (ang. Hypertext Transfer Protocol), który oznacza, że na serwerze występują wewnętrzne problemy. W sieci możemy trafić na różne typu błędów, również rozpoczynające się na 5xx (np. 501, 503, 504 itd.) czy na 4xx (401, 404, 408 itd.). Każdy komunikat informuje o konkretnym problemie. Przykładem jest dobrze wszystkim znany błąd 404, który oznacza „nie znaleziono” (ang. Not found). W takim przypadku wiemy, że przyczyną jego występowania jest zasób, którego serwer nie jest w stanie odnaleźć, np. usunięty plik. Właściciele stron WWW dzięki temu zostają poinformowani o naturze problemu i są w stanie go samodzielnie naprawić.
Gdy serwer nie jest w stanie precyzyjnie określić przyczyny napotkanego kłopotu ze stroną, wyświetla wówczas mało zrozumiały komunikat „Internal Server Error”, podając dodatkowo identyfikator liczbowy „500”.
500-tka na serwisach WWW
Po pojawieniu się na naszej stronie internetowej błędu „Internal Server Error” bardzo często nie pamiętamy o możliwości jego samodzielnej analizy i diagnostyki. Jak się okazuje, jest ona bardzo prosta i można ją skutecznie przeprowadzić. Trzeba jednak znać kilka podstawowych przyczyn, które powodują wyświetlanie tego błędu. Niestety 500-tka na stronie WWW często uniemożliwia wykonanie jakichkolwiek czynności. W takiej sytuacji kluczowa jest wiedza, która pozwala poradzić sobie z zaistniałą sytuacją.
Jak pozbyć się błędu 500?
Gdy już zobaczymy błąd „Internal Server Error”, to pierwszą rzeczą, którą powinniśmy sprawdzić, jest ważność certyfikatu SSL przy naszej stronie WWW (o ile korzysta ona z szyfrowanego połączenia). Wywoływanie części zasobów witryny przez połączenie nieszyfrowane, a części przez szyfrowane, może powodować wystąpienie komunikatu o błędzie 500. Co wtedy powinniśmy zrobić? Rozwiązanie jest niezmiernie proste, wystarczy zaktualizować certyfikat SSL.
Częstym zabiegiem w aplikacjach internetowych jest automatyczna aktualizacja. Weźmy za przykład platformę WordPress. Producenci tego CMS-u wraz z pojawieniem się najnowszych wersji PHP wydają nowe wersje swojego oprogramowania. Jednak Twoja strona WWW niekoniecznie będzie wówczas kompatybilna z wersją PHP, którą masz ustawioną na serwerze. To może spowodować pojawienie się naszego tytułowego błędu. Tak samo jest w przypadku dodatkowych wtyczek, które również mogą automatycznie się aktualizować. Teraz już wiesz, że przy pojawieniu się błędu 500 należy sprawdzić kompatybilność wersji PHP ze stroną.
Dodatkowo warto zaznaczyć, że przy CMS-ach z otwartym kodem źródłowym należy dbać o to, żeby były one zaktualizowane. Niestety bardzo często takie aplikacje są celem działań cyberprzestępczych, po których witryna jest zawirusowana, a złośliwy kod powoduje błąd 500. Takie ataki można przeanalizować poprzez logi serwera.
Posiadając stronę internetową, często zwraca się uwagę na wyniki jej pozycjonowania. Im wyżej znajduje się ona w wyszukiwarce Google, tym jest bardziej popularna. Nieodpowiednio skonfigurowane pliki robots.txt czy sitemap.xml mogą zaburzać właściwe pozycjonowanie serwisu i prowadzić do generowania błędów 500. Warto więc zweryfikować ich poprawność i w trakcie rozwijania strony WWW na bieżąco je aktualizować.
Popularną przyczyną występowania 500-tki jest również wyczerpanie się miejsca na serwerze. W trakcie rozbudowy witryny należy sprawdzać systematycznie zajętość, np. utworzonej na samym początku bazy danych, która może już nie mieć miejsca na dodatkowe informacje.
Jakie jeszcze przyczyny mogą powodować komunikaty „Internal Server Error”? Na przykład błędna konfiguracja Web Application Firewall (WAF) w .htaccess, próba zmiany wersji PHP poprzez plik .htaccess, pętla przekierowań, użycie magic_quotes_gpc czy nieprawidłowa konfiguracja połączenia z bazą danych – jak widzimy, istnieje wiele sytuacji, które mogą doprowadzić do generowania się błędu 500. Wszystkie z nich jesteśmy w stanie samodzielnie zweryfikować.
Access Log i Error Log
Przyczynę wystąpienia błędu 500 na stronie można ustalić za pomocą dzienników zdarzeń nazywanych logami. Przechowują one informacje związane z działaniem witryny. Jeśli hosting, którego używasz, pozwala Ci na dostęp do dwóch typów logów – Access Log i Error Log – to z pewnością będziesz w stanie dogłębniej przeanalizować problem.
Access Log zapisuje wszystkie informacje o żądaniach związanych ze stroną WWW. Dodatkowo przechowuje dane o błędach, których przyczyną jest wynik działania interpretera PHP. Poniżej przykład błędu związanego z niepoprawną konfiguracją połączenia z bazą danych:
Z kolei Error Log przechowuje informacje o problemach z ustawieniami serwera. Mogą być to zatem np. błędy w ustawieniach w .htaccess, brak uprawnień dostępu do plików czy brak certyfikatu. Poniżej przykład błędu związanego z użyciem niedozwolonej dyrektywy w .htaccess:
Diagnostyka to podstawa!
Mamy nadzieję, że po przeczytaniu tego artykułu błąd „Internal Server Error” nie wydaje się już taki straszny. Wiedza o potencjalnych przyczynach problemów i możliwościach ich rozwiązania to klucz do prawidłowej diagnostyki. W tym kontekście bardzo pomocny jest hosting od nazwa.pl, ponieważ udostępniane przez nich narzędzie do administrowania serwerem – CloudHosting Panel – umożliwia w bardzo łatwy sposób analizę wszystkich opisanych w artykule informacji.