Jak Naprawić Błąd 500 Internal Server Error w WordPressie

Błąd 500 Internal Server Error w WordPressie to jeden z najbardziej frustrujących błędów, ponieważ nie podaje żadnych informacji o tym, co poszło nie tak. Może pojawić się na dowolnej stronie, całkowicie wyłączyć witrynę i wpłynąć na pozycję w wynikach wyszukiwania, jeśli pozostanie nierozwiązany dłużej niż kilka godzin.

Pobierz WP STAGING, aby w przyszłości uniknąć tego i innych błędów. Wtyczka WP STAGING pozwala utworzyć kopię Twojej witryny WordPress w kilka sekund. Możesz testować nowe wtyczki, projekty i inne aktualizacje w bezpiecznym środowisku na tej witrynie staging.

W skrócie: Pięć najczęstszych rozwiązań błędu 500 w WordPressie to: (1) włączenie trybu debugowania, aby odczytać dziennik błędów, (2) sprawdzenie i wygenerowanie na nowo pliku .htaccess, (3) zwiększenie limitu pamięci PHP, (4) wyłączenie wszystkich wtyczek i włączanie ich pojedynczo oraz (5) ponowna instalacja plików rdzenia WordPressa. Zacznij od trybu debugowania, aby wiedzieć, które konkretne rozwiązanie zastosować.

Czym Jest Błąd 500 Internal Server Error w WordPressie?

Kod statusu 500 to ogólny sposób, w jaki serwer informuje, że "coś poszło nie tak". Gdy przeglądarka żąda strony, serwer uruchamia kod PHP, aby ją zbudować. Jeśli coś w tym procesie zawiedzie, zanim powstanie prawidłowa odpowiedź, serwer zwraca kod HTTP 500 zamiast samej strony.

Błąd może wyglądać tak:

Error-500

Albo może wyglądać tak:

Error 500 - Internal Server Error

Kluczową cechą jest to, że błąd jest ogólny. Informuje, że żądanie się nie powiodło, ale nie mówi dlaczego. To właśnie sprawia, że jest trudniejszy do naprawienia niż bardziej szczegółowy błąd, taki jak 404 (nie znaleziono strony) lub 403 (odmowa dostępu). Reszta tego przewodnika prowadzi Cię systematyczną ścieżką przez najczęstsze przyczyny.

Co Powoduje Błąd 500 w WordPressie?

Najczęstsze przyczyny to:

  • Uszkodzony lub nieprawidłowo sformatowany plik .htaccess
  • Wyczerpanie pamięci PHP
  • Konflikt wtyczki lub motywu powodujący krytyczny błąd PHP
  • Uszkodzone pliki rdzenia WordPressa
  • Awaria na poziomie serwera (awaria PHP-FPM, błędna konfiguracja, uprawnienia plików)

Skorzystaj z poniższej tabeli, aby dopasować swoją sytuację do najbardziej prawdopodobnej przyczyny i najszybszego pierwszego rozwiązania:

Kiedy pojawił się błąd 500? Zakres Najbardziej prawdopodobna przyczyna Pierwsze rozwiązanie do wypróbowania
Po instalacji lub aktualizacji wtyczki Cała witryna Konflikt wtyczek Rozwiązanie 4: Wyłącz wszystkie wtyczki
Po edycji wp-config.php lub .htaccess Cała witryna Błąd składni w pliku konfiguracyjnym Rozwiązanie 2: Wygeneruj na nowo .htaccess
Po aktualizacji rdzenia WordPressa Cała witryna Uszkodzone pliki rdzenia Rozwiązanie 5: Zainstaluj ponownie pliki rdzenia
Brak ostatnich zmian, cała witryna nie działa Cała witryna Wyczerpanie pamięci Rozwiązanie 3: Zwiększ limit pamięci PHP
Brak ostatnich zmian, dotknięta jedna strona Tylko jedna strona Problem z bezpośrednimi odnośnikami lub mod_rewrite Rozwiązanie 2: Wygeneruj na nowo .htaccess
Brak dostępu do wp-admin Cała witryna Nieznana przyczyna Rozwiązanie 1: Najpierw włącz tryb debugowania

Szybkie Sprawdziany na Początek

Zanim dotkniesz jakichkolwiek plików, wykonaj te dwa szybkie kroki. Każdy z nich może rozwiązać błąd 500 spowodowany nieaktualną pamięcią podręczną.

Wymuś odświeżenie strony: Naciśnij Ctrl + F5 w systemie Windows lub Cmd + Shift + R na Macu, aby pominąć wersję z pamięci podręcznej i wczytać najnowszą kopię strony.

Wyczyść pamięć podręczną przeglądarki: Wyczyszczenie pamięci podręcznej przeglądarki wyklucza problem z buforowaniem po stronie klienta, zanim zmienisz jakiekolwiek pliki serwera.

  1. Google Chrome: Naciśnij Ctrl + Shift + Delete, wybierz żądany zakres czasu i kliknij "Wyczyść dane".
Wyczyść pamięć podręczną przeglądarki
  1. Mozilla Firefox: Naciśnij Ctrl + Shift + Delete, wybierz odpowiedni zakres czasu i kliknij "Wyczyść teraz".
Wyczyść pamięć podręczną przeglądarki Firefox
  1. Apple Safari: Naciśnij Command + Option + E, aby natychmiast wyczyścić pamięć podręczną.
  2. Microsoft Edge: Naciśnij Ctrl + Shift + Delete, zaznacz "Buforowane obrazy i pliki" i kliknij "Wyczyść teraz".

Jeśli błąd zniknie po wyczyszczeniu pamięci podręcznej, to koniec. Jeśli nadal występuje, przejdź do numerowanych rozwiązań poniżej.

Następne kroki są bardziej złożone i wpływają na bazę danych/pliki witryny WordPress. Aby nie spowodować dalszych szkód i jeśli nadal masz dostęp do pulpitu WordPressa, utwórz witrynę staging za pomocą WP STAGING i spróbuj naprawić błąd na stronie staging zamiast na witrynie produkcyjnej.

Za pomocą WP STAGING możesz utworzyć witrynę testową, aby bezpiecznie przetestować każde rozwiązanie przed zastosowaniem go na witrynie produkcyjnej.

Rozwiązanie 1: Włącz Tryb Debugowania WordPressa

Najbezpieczniejszym pierwszym krokiem jest włączenie dziennika debugowania WordPressa, aby odczytać dokładny błąd, który spowodował odpowiedź 500. Bez dziennika każde kolejne rozwiązanie to zgadywanie. W zgłoszeniach do pomocy technicznej WP STAGING najczęstszą pierwszą przyczyną, jaką widzimy, jest konflikt wtyczek, a dziennik debugowania ujawnia go natychmiast.

Otwórz plik wp-config.php (znajdujący się w katalogu głównym instalacji WordPressa, dostępny przez FTP lub menedżera plików Twojego hostingu) i dodaj te trzy linie:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Edytuj plik wp-config

Zapoznaj się z tym artykułem, aby uzyskać instrukcję krok po kroku dotyczącą aktywacji dziennika debugowania WordPressa.

Dziennik debugowania jest zapisywany w /wp-content/debug.log. Otwórz plik i poszukaj pierwszego błędu w pobliżu góry. Jeśli dziennik wskazuje na konkretną wtyczkę, zmień nazwę jej folderu, aby ją wyłączyć. Na przykład zmień nazwę /wp-content/plugins/woocommerce na /wp-content/plugins/woocommerce-disabled.

Jeśli dziennik debugowania jest pusty, sprawdź dziennik błędów na poziomie serwera:

  • Apache: /var/log/apache2/error.log
  • Nginx: /var/log/nginx/error.log

Uzyskaj do nich dostęp przez FTP lub panel sterowania hostingu. Niektóre panele sterowania udostępniają dziennik błędów również przez swój interfejs.

Rozwiązanie 2: Wygeneruj na Nowo Plik .htaccess

Uszkodzony plik .htaccess to jedna z najczęstszych przyczyn błędu 500 na serwerach opartych na Apache. Plik znajduje się w katalogu głównym WordPressa, obok folderów wp-admin, wp-includes i wp-content.

Edytuj plik .htaccess

Aby wygenerować go na nowo:

  1. Połącz się z witryną przez FTP lub menedżera plików hostingu.
  2. Zmień nazwę istniejącego pliku .htaccess na .htaccess_backup, aby mieć kopię zapasową.
  3. Utwórz nowy plik o nazwie .htaccess i wklej do niego domyślne reguły przepisywania WordPressa:
# BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

# END WordPress

Przeładuj witrynę. Jeśli przyczyną był uszkodzony plik .htaccess, błąd znika natychmiast.

Alternatywa przez panel WordPressa: Jeśli nadal masz dostęp do kokpitu, przejdź do Ustawienia > Bezpośrednie odnośniki i kliknij "Zapisz zmiany" bez wprowadzania żadnych zmian. WordPress automatycznie generuje na nowo plik .htaccess podczas tego zapisu.

Rozwiązanie 3: Zwiększ Limit Pamięci PHP

PHP przetwarza każde żądanie strony w ramach budżetu pamięci. Gdy wtyczka, motyw lub złożone zapytanie przekroczy ten budżet, serwer zwraca błąd 500. Z naszych testów na współdzielonych środowiskach hostingowych wynika, że wyczerpanie pamięci PHP jest najczęstszym wyzwalaczem po stronie serwera, jaki napotykamy, gdy błąd nie był poprzedzony żadnymi ostatnimi zmianami w witrynie.

Limit możesz zwiększyć na dwa sposoby:

Opcja A: Przez cPanel (jeśli Twój hosting go udostępnia)

  1. Zaloguj się do cPanel.
  2. Otwórz "Select PHP Version".
  3. Kliknij "Switch to PHP Options".
  4. Kliknij memory_limit i zwiększ wartość do 256 lub 512 (MB), a następnie zapisz.

Opcja B: Przez wp-config.php

Edytuj plik wp-config

Otwórz wp-config.php i dodaj tę linię w pobliżu góry:

define('WP_MEMORY_LIMIT', '256M');

Zapisz plik i przeładuj witrynę. Jeśli przyczyną było wyczerpanie pamięci, błąd znika po zapisaniu.

Rozwiązanie 4: Wyłącz Wszystkie Wtyczki

Konflikty wtyczek to częsta pierwotna przyczyna błędu 500 w WordPressie. Jeśli Rozwiązanie 1 potwierdziło konflikt wtyczek w dzienniku debugowania lub jeśli nie możesz odczytać dziennika, wyłączenie wszystkich wtyczek i włączanie ich pojedynczo pozwala zidentyfikować winowajcę.

Jeśli masz dostęp do panelu WordPressa:

  1. Przejdź do sekcji Wtyczki w kokpicie.
  2. Zaznacz wszystkie wtyczki za pomocą pola wyboru u góry.
  3. Z listy rozwijanej "Operacje zbiorcze" wybierz "Wyłącz", a następnie kliknij "Zastosuj". Kokpit WordPressa Zaznacz wtyczki Wyłącz wtyczki, aby rozwiązać błędy w kokpicie administracyjnym WordPressa
  4. Przeładuj witrynę. Jeśli błąd zniknął, włączaj wtyczki pojedynczo, przeładowując po każdej z nich, aż błąd pojawi się ponownie. Ostatnia włączona wtyczka jest winowajcą.

Jeśli nie masz dostępu do panelu WordPressa:

Połącz się przez FTP i zmień nazwę folderu wtyczek:

  1. Zmień nazwę /wp-content/plugins na /wp-content/plugins-disabled.
  2. Przeładuj witrynę. Jeśli wróci, potwierdziłeś konflikt wtyczek.
  3. Zmień nazwę folderu z powrotem na /wp-content/plugins.
  4. Wyłączaj poszczególne wtyczki, zmieniając nazwy ich podfolderów (na przykład zmień nazwę /wp-content/plugins/woocommerce na /wp-content/plugins/woocommerce-disabled), a następnie przeładuj po każdej zmianie nazwy.

Rozwiązanie 5: Zainstaluj Ponownie Pliki Rdzenia WordPressa

Jeśli błąd pojawił się bez żadnej zmiany wtyczki lub motywu, przyczyną mogą być uszkodzone pliki rdzenia WordPressa. Możesz ponownie zainstalować rdzeń bez nadpisywania treści, wtyczek ani motywów.

  1. Pobierz najnowszą kopię WordPressa ze strony wordpress.org.
  1. Rozpakuj pobrane archiwum.
  2. Połącz się z serwerem przez FTP lub menedżera plików hostingu.
  3. Zmień nazwy istniejących folderów /wp-admin i /wp-includes na /wp-admin-backup i /wp-includes-backup.
  1. Prześlij nowe foldery /wp-admin i /wp-includes z rozpakowanego archiwum w to samo miejsce.
  1. Przeładuj witrynę. Jeśli przyczyną były uszkodzone pliki rdzenia, błąd znika po zakończeniu przesyłania.

Podczas tego procesu nie zastępuj pliku wp-config.php ani folderu wp-content. Te pliki przechowują dane logowania do bazy danych oraz wszystkie przesłane multimedia.

Rozwiązanie 6: Skontaktuj się z Dostawcą Hostingu

Jeśli żadne z pięciu powyższych rozwiązań nie usunęło błędu, problem najprawdopodobniej leży na poziomie serwera, a nie wewnątrz Twojej instalacji WordPressa. Przyczyny na poziomie serwera obejmują:

  • Proces PHP-FPM, który uległ awarii lub zatrzymał się po cichu
  • Błędną konfigurację Apache lub Nginx wprowadzoną podczas aktualizacji serwera
  • Zmiany uprawnień plików, które blokują odczyt plików WordPressa przez PHP
  • Limity zasobów na poziomie serwera niezwiązane z limitem pamięci PHP

Skontaktuj się z zespołem pomocy technicznej swojego hostingu i udostępnij odpowiednie linie z dziennika błędów serwera, który znalazłeś w Rozwiązaniu 1. Większość zarządzanych hostingów WordPress potrafi szybko zdiagnozować błędy 500 na poziomie serwera na podstawie dziennika.

Jeśli Twój hosting nie potrafi rozwiązać problemu lub jeśli błędy 500 często powracają przy normalnym obciążeniu, może być czas, aby rozważyć bardziej wydajne środowisko hostingowe dla wymagań Twojej witryny.

Subskrybuj nasz kanał YouTube, aby uzyskać więcej tutoriali wideo o WordPressie i połącz się z nami na Twitterze oraz Facebooku.

Co Zrobić, Gdy Żadne z Rozwiązań Nie Działa

Jeśli przeszedłeś przez wszystkie sześć rozwiązań, a błąd nadal występuje, użyj tej tabeli, aby zawęzić pozostałe możliwości:

Objaw Co sprawdzić
Dziennik debugowania jest pusty po włączeniu WP_DEBUG Sprawdź dziennik błędów na poziomie serwera (ścieżka Apache lub Nginx z Rozwiązania 1); błąd PHP może nie docierać do warstwy dziennika WordPressa
Wszystkie wtyczki wyłączone, błąd nadal występuje Przełącz się na domyślny motyw WordPressa (taki jak Twenty Twenty-Four) przez FTP, zmieniając nazwę folderu aktywnego motywu w /wp-content/themes/
Błąd tylko w wp-admin, nie na stronie głównej Wtyczka lub plik specyficzny dla administratora w /wp-content/mu-plugins/ może się wczytywać i zawodzić; sprawdź ten katalog
Błąd 500 pojawia się tylko na jednym adresie URL Shortcode, pole niestandardowe lub blok specyficzny dla wpisu może wywoływać błąd krytyczny; włącz WP_DEBUG i odwiedź ten adres URL, aby przechwycić wpis w dzienniku
Hosting twierdzi, że nie ma błędu serwera Zapytaj konkretnie o kondycję procesu PHP-FPM oraz o to, czy pula workerów PHP była ostatnio ponownie uruchamiana

Powiązane Artykuły

Rene Hermenau

Autor: Rene Hermenau

O autorze: René Hermenau jest założycielem WP STAGING. Zajmuje się kopiami zapasowymi WordPressa, środowiskami stagingowymi, migracjami, obsługą baz danych oraz bezpiecznymi procesami wdrażania.