zaplanuj wycenę
Poradniki techniczne

Błąd 500 Internal Server Error — bezpieczna diagnostyka krok po kroku

ok. 6 min czytania Aktualizacja: 2026 Zespół TwojaWizytówka.pl

Kod 500 oznacza, że serwer napotkał nieoczekiwany problem i nie potrafił zwrócić bardziej precyzyjnej odpowiedzi. Sam komunikat nie wskazuje przyczyny. Najwięcej informacji daje czas wystąpienia, zakres awarii i log błędów — nie kolejne przypadkowe zmiany w plikach.

Krótka odpowiedź: zapisz dokładny URL, godzinę i ostatnią wykonaną zmianę. Sprawdź, czy błąd obejmuje całą stronę, panel czy pojedynczą funkcję. Jeśli pojawił się natychmiast po edycji .htaccess, przywróć kopię. Następnie odczytaj log serwera lub PHP. Nie włączaj publicznego wyświetlania szczegółów błędu i nie kasuj wtyczek, bazy ani zabezpieczeń bez kopii.

Co naprawdę mówi kod 500?

500 Internal Server Error jest ogólną odpowiedzią 5xx. Przyczyną może być m.in.:

  • błąd składni konfiguracji;
  • niedozwolona dyrektywa .htaccess;
  • wyjątek PHP;
  • brak pamięci;
  • wadliwa aktualizacja wtyczki lub motywu;
  • nieprawidłowe prawa pliku;
  • uszkodzony plik aplikacji;
  • konflikt reguł i wewnętrzna pętla;
  • niedostępna baza albo usługa zależna;
  • problem po stronie hostingu.

Kod nie dowodzi włamania i nie oznacza automatycznie awarii serwera fizycznego.

Krok 1: nie niszcz dowodów

Zapisz:

  • pełny URL;
  • dokładną godzinę ze strefą czasową;
  • urządzenie i sposób odtworzenia;
  • ostatnie zmiany;
  • treść komunikatu;
  • identyfikator żądania, jeśli jest pokazany;
  • zrzut ekranu;
  • wynik nagłówków.
curl -I https://example.pl/problem/

Informacja „nie działa od rana” utrudnia znalezienie właściwego wpisu w logu.

Krok 2: ustal zakres

Sprawdź bez wielokrotnego odświeżania:

  • stronę główną;
  • problematyczny URL;
  • panel WordPress;
  • prosty statyczny plik, jeśli masz bezpieczny adres testowy;
  • inną domenę na tym samym koncie, jeśli wolno ją kontrolować.

Interpretacja:

Zakres Prawdopodobny kierunek
Cała domena po zmianie .htaccess składnia lub niedozwolona dyrektywa
Tylko WordPress, statyczny plik działa PHP, aplikacja, baza, wtyczka
Tylko jedna funkcja konkretny kod, integracja lub dane
Kilka usług hostingu awaria lub limit konta
Tylko po zalogowaniu sesja, rola, wtyczka panelu

To hipotezy, nie diagnoza. Potwierdzenie powinno znaleźć się w logu.

Krok 3: cofnij ostatnią kontrolowaną zmianę

Jeżeli błąd wystąpił bezpośrednio po edycji jednego pliku, przywróć jego kopię. Nie cofaj kilku niezależnych rzeczy naraz.

Po zmianie .htaccess

Użyj panelu hostingu lub SFTP, ponieważ panel WordPress może być niedostępny. Przywróć poprzedni plik. Apache dokumentuje, że niedozwolona dyrektywa albo błąd składni w .htaccess może wygenerować 500, a szczegół będzie w error logu.

Nie usuwaj całego pliku bez zachowania kopii. Może zawierać reguły WordPressa, przekierowania i zabezpieczenia.

Po aktualizacji WordPressa

Jeśli hosting oferuje staging lub bezpieczny rollback, użyj go zgodnie z dokumentacją. Przywrócenie wyłącznie plików przy zmianie bazy może tworzyć niespójność. Kopia powinna obejmować pliki i bazę z tego samego momentu.

Krok 4: znajdź log błędów

Szukaj w:

  • panelu hostingu;
  • logach Apache/Nginx;
  • logu PHP;
  • dzienniku aplikacji;
  • panelu monitoringu;
  • pomocy dostawcy hostingu.

Znajdź wpis o tej samej godzinie i ścieżce. Przykładowe typy komunikatów:

.htaccess: RewriteCond: bad flag delimiters
PHP Fatal error: Allowed memory size ... exhausted
Uncaught Error ... in /path/to/plugin/file.php on line ...

Nie publikuj pełnych logów. Mogą zawierać ścieżki, adresy, parametry i dane użytkowników.

Krok 5: diagnostyka .htaccess

Jeśli log wskazuje konfigurację:

  1. porównaj plik z kopią;
  2. sprawdź ostatnią dodaną dyrektywę;
  3. upewnij się, że jest dozwolona w kontekście .htaccess;
  4. sprawdź cudzysłowy, nawiasy i flagi;
  5. usuń duplikaty RewriteEngine On tylko wtedy, gdy rozumiesz cały plik;
  6. testuj zmianę w stagingu;
  7. po naprawie sprawdź także podobne URL-e.

Apache zaleca główną konfigurację serwera zamiast .htaccess, jeśli masz do niej dostęp. Na hostingu współdzielonym zwykle pracujesz jednak w zakresie udostępnionym przez dostawcę.

Krok 6: diagnostyka WordPressa

Jeśli log wskazuje wtyczkę lub motyw:

  • zrób kopię;
  • użyj trybu odzyskiwania, jeśli WordPress go wysłał;
  • wyłącz tylko wskazany komponent przez panel albo zmianę nazwy jego katalogu;
  • sprawdź stronę;
  • nie usuwaj katalogu przed zabezpieczeniem ustawień i danych;
  • skontaktuj się z producentem z wersją, logiem i krokami odtworzenia.

Nie wyłączaj wszystkich wtyczek na stronie produkcyjnej bez planu. Możesz unieruchomić formularze, bezpieczeństwo, cache i integracje.

Bezpieczne logowanie WordPressa

Na stagingu można skonfigurować zapis błędów do pliku bez pokazywania ich użytkownikom. Nie włączaj display_errors publicznie. Szczegółowa konfiguracja zależy od hostingu i powinna zostać opisana w osobnym poradniku o WP_DEBUG.

Krok 7: limity pamięci i czasu

Komunikat o wyczerpaniu pamięci wskazuje miejsce, w którym limit został osiągnięty, ale nie zawsze pierwotną przyczynę. Samo zwiększenie memory_limit może ukryć:

  • pętlę w kodzie;
  • niekontrolowane zapytanie;
  • zbyt duży import;
  • konflikt wtyczek;
  • nieodpowiedni plan hostingu.

Najpierw oceń operację, zużycie i rekomendacje dostawcy. Nie ustawiaj przypadkowo ogromnych limitów w publicznym .htaccess, szczególnie jeśli hosting używa innego sposobu konfiguracji PHP.

Krok 8: prawa plików i właściciel

Popularne wartości 644 dla plików i 755 dla katalogów nie są uniwersalną receptą. Model zależy od serwera i właściciela procesu. Nie ustawiaj 777 — nadmierne prawa tworzą ryzyko i często nie rozwiązują przyczyny.

Jeśli błąd pojawił się po migracji lub rozpakowaniu archiwum, poproś hosting o sprawdzenie właściciela plików i zalecanych uprawnień.

Krok 9: kiedy pisać do hostingu?

Zgłoszenie powinno zawierać:

  • domenę i URL;
  • czas zdarzenia;
  • sposób odtworzenia;
  • zakres awarii;
  • ostatnią zmianę;
  • kod odpowiedzi;
  • fragment logu bez danych wrażliwych;
  • informację, co już bezpiecznie cofnięto;
  • prośbę o sprawdzenie logu, limitów i stanu usług.

Nie wysyłaj hasła w zwykłym e-mailu. Hosting ma własny mechanizm autoryzacji klienta.

Co zobaczy wyszukiwarka?

Długotrwałe 5xx utrudniają crawling i dostęp użytkownikom. Nie przekierowuj błędu 500 na stronę główną kodem 200. Jeśli prowadzisz planowane prace i serwis jest czasowo niedostępny, właściwa obsługa może obejmować 503 i Retry-After, lecz konfigurację trzeba przetestować, by nie zablokować panelu ani monitoringu.

Po naprawie:

  • sprawdź kody najważniejszych URL-i;
  • przetestuj formularze;
  • przejrzyj log po wdrożeniu;
  • sprawdź monitoring;
  • skontroluj raporty crawlowania i konkretne URL-e.

Najczęstsze niebezpieczne „naprawy”

  • usunięcie całego .htaccess bez kopii;
  • ustawienie praw 777;
  • zwiększenie limitów bez analizy;
  • publiczne włączenie szczegółów błędów;
  • wyłączenie wszystkich zabezpieczeń;
  • kasowanie wtyczki zamiast kontrolowanego wyłączenia;
  • przywrócenie plików bez zgodnej bazy;
  • wielokrotne odświeżanie operacji płatniczej;
  • ukrycie 500 przez stronę 200;
  • zmiana kilku warstw jednocześnie.

Checklista awaryjna

  • ☐ Zapisano URL, czas i ostatnią zmianę.
  • ☐ Ustalono zakres awarii.
  • ☐ Wykonano lub potwierdzono kopię.
  • ☐ Odczytano log związany z żądaniem.
  • ☐ Cofnięto tylko ostatnią kontrolowaną zmianę.
  • ☐ Nie ujawniono błędów publicznie.
  • ☐ Nie ustawiono nadmiernych praw.
  • ☐ Test wykonano na stagingu, jeśli było to możliwe.
  • ☐ Po naprawie sprawdzono funkcje i statusy.
  • ☐ Przyczyna oraz zmiana zostały udokumentowane.

Log przed zgadywaniem

Kod 500 jest punktem startowym. Najbezpieczniejsza droga to zawężenie zakresu, odczytanie właściwego logu i cofnięcie jednej potwierdzonej zmiany. Jeśli nie masz dostępu do logów lub kopii, przerwij eksperymenty i przekaż hostingowi kompletne dane — to szybsze i bezpieczniejsze niż kolejne fragmenty kodu z przypadkowych poradników.

wróć do Wiedzy