WordPress

Błąd 500 w WordPressie

HTTP 500 to komunikat serwera, że coś przerwało wykonanie kodu. Sam w sobie nic nie mówi - cała praca polega na dotarciu do logu.

3 min czytania

HTTP 500 to Internal Server Error — zbiorcza odpowiedź serwera na sytuację, w której coś poszło nie tak, ale nie da się tego zakomunikować precyzyjniej. Komunikat celowo nic nie zdradza, żeby nie ujawniać szczegółów konfiguracji. Dlatego cała praca polega na dotarciu do logu, w którym szczegóły są.

Znajdź log serwera

To pierwszy i najważniejszy krok — reszta to zgadywanie. Log błędów znajdziesz zwykle w jednym z tych miejsc:

  • panel hostingu, sekcja „Logi" lub „Error log",
  • plik error_log w katalogu głównym strony lub w public_html,
  • przy dostępie SSH: tail -n 50 /var/log/nginx/error.log albo odpowiednik dla Apache.

Dodatkowo włącz log WordPressa, dopisując w wp-config.php:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Zapis trafi do wp-content/debug.log. Jedna linia z tego pliku oszczędza zwykle godzinę szukania po omacku.

Plik .htaccess

Na serwerach Apache uszkodzony .htaccess to bardzo częsta przyczyna. Zmień jego nazwę na .htaccess-old i sprawdź stronę. Jeśli wróciła, wejdź w panelu WordPressa w Ustawienia → Bezpośrednie odnośniki i kliknij Zapisz — plik wygeneruje się od nowa w poprawnej postaci.

Uwaga przy Nginx. Tam .htaccess nie działa w ogóle i nie ma go co sprawdzać. Reguły przepisywania adresów siedzą w konfiguracji serwera, do której zwykle potrzebujesz hostingodawcy.

Limit pamięci i czasu wykonania

Jeśli błąd pojawia się przy konkretnej operacji — imporcie, generowaniu miniatur, aktualizacji — to zwykle kwestia limitów. W wp-config.php:

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

Limit czasu wykonania (max_execution_time) ustawia się po stronie serwera, najczęściej w panelu hostingu. Jeśli operacja potrzebuje więcej niż 300 sekund, podnoszenie limitu jest objawowe — lepiej podzielić ją na części.

Wtyczki i motyw

Procedura jest ta sama co przy białym ekranie: zmień nazwę katalogu wp-content/plugins, sprawdź stronę, a potem wracaj do wtyczek pojedynczo. Przy błędzie 500 szczególnie często winne są wtyczki cache i te dopisujące reguły do .htaccess.

Niezgodna wersja PHP

Po przełączeniu wersji PHP na serwerze starszy kod potrafi przestać się wykonywać. W logu zobaczysz wtedy PHP Fatal error z nazwą pliku. Sprawdź, czego dotyczy — jeśli porzuconej wtyczki, to sygnał, że czas ją wymienić, a nie cofać wersję PHP.

Uprawnienia plików

Rzadsza przyczyna, ale realna po migracji na inny serwer. Katalogi powinny mieć uprawnienia 755, pliki 644. Uprawnienia 777 nie są rozwiązaniem problemu — są zaproszeniem dla kogoś, kto szuka łatwego celu.

Gdy błąd pojawił się nagle, bez Twojej ingerencji

Jeśli nikt nic nie zmieniał, a strona przestała działać, rozważ dwie możliwości: hostingodawca zmienił coś w konfiguracji albo ktoś wszedł na stronę. W drugim przypadku samo przywrócenie działania niczego nie załatwia — trzeba znaleźć i zamknąć drogę wejścia.

Nie udaje się?

Jeśli problem zostaje albo wolisz nie eksperymentować na działającej stronie, napisz do nas - sprawdzimy to za Ciebie. Diagnoza nic nie kosztuje.

Pomoc przy WordPressie