09/02/202210 min

HTTP Error 500: co to jest i jak go naprawić w Twoim sklepie internetowym PrestaShop?

Czy kiedykolwiek pracując przy Waszym sklepie internetowym natknęliście się na ekran podobny do zrzutu ekranu poniżej? Nie jesteście jedyni, a prawdopodobnie nawet trafiliście na taki korzystając z aplikacji, które nie są sklepami.

Error 500 - Internal server error

Jest to problem, który może się Wam przytrafić podczas pracy z oprogramowaniem, które obsługujecie przez przeglądarkę internetową. Pracując z taką aplikacją wykonujemy różne czynności, aktualizujemy ją, dodajemy nowe elementy, uruchamiamy zadania. Zadania, które mogą być czasami zbyt dużym obciążeniem dla naszego serwera, albo żądania wysyłane przez aplikacje są z jakiegoś powodu niepoprawne.

Jednak bez paniki, to nic strasznego. W tym artykule postaramy się wyjaśnić wam czym jest w ogóle ten błąd, co może do niego doprowadzić, a także jak sobie z nim poradzić.

 

Error 500. Co to?

Opisując to tak prosto jak się da, serwer wyświetla błąd HTTP 500 (lub wewnętrzny błąd serwera), gdy nie może obsłużyć żądania wysłanego przez oprogramowanie. Przyczyny, przez które nie może tego dokonać mogą być różne i opisujemy kilka z nich w dalszej części artykułu.

Ponieważ każdy serwer może korzystać z własnych tekstów i słownictwa, komunikat o błędzie może przybierać różne formy. Wspomniany błąd 500 jest sposobem serwera na mówienie: „Ups! Wystąpił błąd, ale nie umiem powiedzieć nic więcej”. Często nazywa się to po prostu problemem po stronie serwera. Kod 500 jest ogólną informacją, że coś poszło nie tak, bez wskazywania konkretnego problemu.

Bardzo ważne jest, aby nie mylić go z błędem HTTP 404: nieodnaleziona strona, o którym również piszemy na naszym blogu i o którym możesz w każdej chwili przeczytać lub innymi komunikatami, które może zwracać serwer.

  • Oto niektóre z najczęściej pojawiających się komunikatów o błędach tego typu:
  • „Błąd 500 (Internal Server Error)”
  • „Błąd 500 - wewnętrzny błąd serwera”
  • „Wewnętrzny błąd serwera”
  • „HTTP ERROR 500”
  • „Błąd 500”
  • „Błąd HTTP 500”

Błędy z grupy 5xx zawsze przekazują nam informacje o tym, że coś złego dzieje się na linii aplikacja <-> serwer. Możecie spotkać się również z błędami takimi jak:

  • 503 Service Unavailable
  • 504 Gateway Timeout - problem z interpre

Które również informują nas, że nasz serwer miał problem z obsługą żądania. Mogło ono zostać przerwane z powodu zbyt dużego obciążenia, lub w ogóle nie mogło zostać poprawnie obsłużone przez inne nieprawidłowości.

Szczególnie popularnym jest błąd 503, który często informuje nas o zbyt dużym obciążeniu serwera przez aplikację.

Error 503 - Service anavailable
Serwer może zwrócić nam komunikaty, które pochodzą z grupy błędów 5xx w wielu przypadkach ale te najczęściej spotykane to:

  • przekroczenie limitów serwera (czas wykonywania żądań, limit pamięci)
  • problem w skryptach, np. skryptach PHP
  • problem z uprawnieniami plików i folderów

Bardzo często aby uniknąć błędów tego typu należy posiadać serwer, który skonfigurowany jest wg wymagań aplikacji, której używamy. Może się oczywiście zdarzyć, że musimy dokonać takich zmian samodzielnie, czasami jednak lepiej skorzystać z pomocy osoby, która posiada wiedzę techniczną.

Limity serwera często możemy ustawiać sami (w jakimś określonym zakresie) w panelu do zarządzania naszym serwerem. Możemy również zapytać o nie pomoc techniczną firmy, w której posiadamy hosting.

Jeżeli korzystacie z PrestaShop w wersji 1.7.7 i wyższej, w przypadku wystąpienia błędu o kodzie 500, możecie zaobserwować ekran podobny do tego poniżej.

HTTP Error 500 - unexpected error occured - software PrestaShop

Jak zdiagnozować błąd HTTP 500 w waszym sklepie PrestaShop?

Chociaż komunikat HTTP 500 o błędzie nie mówi zbyt wiele, PrestaShop może podać więcej szczegółów na temat tego problemu. Niektóre serwery, ze względu na swoją konfigurację, często maskują bardziej szczegółowe informacje o błędach.

Aby zobaczyć więcej szczegółów na temat błędu powinniście włączyć tryb developerski (tryb debugowania) w waszym sklepie. Jeśli błąd wystąpił w back office i widzicie ekran, na który macie przycisk, który na to zezwala, użyjcie go.

Jeśli błąd występuje tylko i wyłącznie na froncie waszego sklepu, możecie przejść do zakładki Zaawansowane -> Wydajność i włączyć tryb debugowania. Opcja jest widoczna na poniższym zrzucie ekranu.

Jak zdiagnozować błąd HTTP 500 w waszym sklepie PrestaShop
Może się jednak zdarzyć, że błąd spowoduje, że nie będziecie mieć dostępu do sklepu, ani z frontu, ani z zaplecza. Wtedy tryb debugowania można włączyć edytując jeden z plików silnika PrestaShop na serwerze. Oto krótka instrukcja dla PrestaShop w wersji 1.6 i 1.7:

  • Połączcie się z serwerem gdzie posiadacie sklep, np. za pomocą klienta FTP
  • Edytujcie plik config/defines.inc.php
  • Znajdziecie w nim coś takiego: define('_PS_MODE_DEV_', false);
  • Zmieńcie false na true i zapisz plik

Teraz, jeżeli Wasz serwer pozwala na wymuszenie wyświetlania się szczegółów błędów z poziomu kodu, powinniście widzieć więcej informacje o problemie, który dotknął Wasz sklep internetowy po odświeżeniu strony. Często przeczytanie co dokładnie jest problemem pozwala na natychmiastową reakcję i naprawienie problemu.

Powinniście mieć jednak świadomość, że jeżeli Waszym sklepem opiekuje się agencja partnerska lub freelancer to taki błąd powinniście w pierwszej kolejności zgłosić właśnie do nich. Samodzielna próba naprawy może czasami wyrządzić więcej szkód niż pożytku, a eksperci pracujący z PrestaShop na co dzień będą wiedzieć jak sobie z nią poradzić.

 

Co może powodować Error 500 w sklepie internetowym PrestaShop?

W przypadku gdy widzicie komunikaty błędów, ustalenie przyczyny powinno być łatwiejsze. Komunikaty często są precyzyjne i dostarczają nam informacji, których potrzebujemy aby taki problem rozwiązać.

Na początek jednak spójrzmy na przegląd różnych sytuacji, przy okazji których taki błąd może się pojawić.

 

Długo wykonywujące się żądanie

Błąd 500 może dotknąć Wasz sklep internetowy również podczas wykonywania niektórych czynności w sklepie. Jeśli limity serwera są zbyt restrykcyjne, może upłynąć ustalony z góry czas wykonywania się żądania na serwerze co będzie skutkowało błędem 500.

Może to być również związane ze zbyt małą ilością pamięci RAM serwera przeznaczoną na wykonywanie zadań, zostanie ono wtedy przerwane i wyświetli się błąd.

Często limit czasowy serwera wynosi 30 sekund, jest to czas, który dla niektórych skryptów jest niewystarczający. Limit pamięci natomiast można spotkać ustawiony na 128MB gdzie bardziej optymalną wartością byłoby np. 512MB.

Oto czynności w PrestaShop, których wykonywanie może potrwać zbyt długo:

  • Importowanie plików CSV
  • Tworzenie kopii zapasowych
  • Aktualizacja tłumaczeń
  • Importowanie/eksportowanie danych
  • Regeneracja miniatur zdjęć
  • Czyszczenie pamięci podręcznej

 

Oczywiście, w przypadku poprawnie skonfigurowane serwera nie powinniście mieć problemów z żadną z tych czynności. Czasami może być potrzeba zoptymalizowania działania niektórych skryptów tak aby nie obciążały one tak bardzo serwera. Można zweryfikować zadania, które trwają nawet kilka minut, a powinny być wykonywane szybciej.

 

Problemy z modułami

Gdy decydujecie się na instalację nowego modułu w Waszym sklepie internetowym PrestaShop, może być tak, że wystąpią z nim problemy. Wtedy również w skrajnych przypadkach może dotknąć Was błąd 500. Często szybkim rozwiązaniem tego problemu jest zalogowania się na serwer Waszego sklepu i usunięcie modułu bezpośrednio z katalogu /modules/ w miejscu gdzie zainstalowany macie sklep internetowy.

Te problemy mogą również wystąpić podczas migracji z PrestaShop 1.6 na 1.7 np. przez przestarzałe moduły. Czy Wasze moduły są kompatybilne z wersją PrestaShop, której używacie możecie zobaczyć na karcie każdego modułu, który kupujecie z oficjalnego PrestaShop Addons Marketplace.

W przypadku gdy problemy są spowodowane modułami, które instalujecie warto w pierwszej kolejności pomyśleć o kontakcie z ich autorami. Bardzo prawdopodobnym jest, że będą potrafili Wam pomóc szybciej niż ktokolwiek inny.

 

Problem z uprawnieniami do czytania/zapisu katalogów na serwerze

W niektórych przypadkach uprawnienia do katalogów są nieprawidłowo ustawione, ale ewentualne problemy z nimi powinniście jednak zauważyć często już po instalacji oprogramowania.

Aby naprawić ten błąd, często wystarczy ustawić uprawnienia (CHMOD) pliku lub folderu na 755 zamiast 777 (lub odwrotnie).

Może być również tak, że Wasz hosting wymaga specyficznych uprawnień, wtedy warto skonsultować problem z nimi. To ważne by wasz sklep internetowy nie miał ustawionych uprawnień, które niepotrzebnie pozwalają na zbyt wiele.

 

Błędna konfiguracja pliku .htaccess

Wewnętrzne problemy z serwerem mogą być spowodowane źle skonfigurowanym plikiem .htaccess. Składnia pliku .htaccess jest bardzo istotna i nawet jeden nieprawidłowy znak lub jedno polecenie może wywołać wewnętrzny błąd serwera 500.

Problem z .htaccess warto skonsultować z administratorem Waszego serwera lub osobami odpowiedzialnymi za opiekę techniczną Waszego sklepu.

W przypadku gdy musicie edytować ten plik warto tuż przed edycją zrobić jego kopię zapasową tak by móc w razie potrzeby przywrócić ten wcześniej działający.

 

Czyszczenie pamięci podręcznej / cache sklepu

Ten problem występuje rzadko, ale możemy się na niego natknąć na niektórych serwerach. Gdy posiadacie większy sklep, powstaje więcej plików pamięci podręcznej na nim. Podczas czyszczenia pamięci podręcznej może dojść do sytuacji, w której wasz serwer nie będzie mógł dokończyć tego zadania.

To znak, że warto zastanowić się nad tym czy przypadkiem moduły w waszym sklepie nie tworzą zbyt dużo takich plików, albo czy nie powinniście zastanowić się nad migracją waszego sklepu na hosting oferujący szybkie dyski SSD/NVMe.

 

Co zrobić, jeśli błąd HTTP 500 utrzyma się w moim sklepie po przeprowadzonej analizie?

W tym momencie warto zgłosić się po pomoc techniczną. Macie na szczęście wiele sposobów jej uzyskania.

Poproście o pomoc społeczność. Zachęcamy do zadawania pytań na naszym oficjalnym polskim forum PrestaShop. Znajdziecie tam wiele tematów, które mogą dać Wam rozwiązanie, możecie również tworzyć nowe wątki z opisem Waszych problemów.

W społeczności liczącej ponad milion osób z pewnością znajdziecie odpowiedzi na swoje pytania dzięki wsparciu innych użytkowników.

Gdy problemy dotyczą modułów, które kupiliście, w pierwszej kolejności spróbujcie skontaktować się z ich autorami, którzy są najlepszymi osobami aby Wam pomóc.

Istnieją również oficjalne plany wsparcia PrestaShop. Umożliwią Wam one skontaktowanie się z nami, aby jeden z naszych przedstawicieli mógł udzielić Wam informacji niezbędnych do dalszej pomocy.

 

Błąd HTTP 500, podsumowanie

Tak jak zaznaczyliśmy we wstępie artykułu, błąd HTTP 500 lub wewnętrzny błąd serwera nie jest taki straszny jak się wydaje.

Teraz macie odpowiednie wskazówki i narzędzia do naprawienia błędu budzącego strach wśród internautów.

Zbuduj swój sklep internetowy z oprogramowaniem e-commerce PrestaShop i kontynuuj sprzedaż swoich produktów lub usług bez najmniejszych zakłóceń!

Co dwa tygodnie, nasz newsletter e-commerce na Twojej skrzynce

Wysyłając ten formularz, zgadzasz się na wykorzystanie przez PrestaShop S.A. wprowadzonych przez Ciebie danych do wysyłania newsletterów i ofert promocyjnych. Możesz zrezygnować z subskrypcji w dowolnym momencie, klikając na link znajdujący się w otrzymywanych wiadomościach. Dowiedz się więcej o naszej polityce prywatności.