Jak naprawić błąd „504 Gateway Timeout” w WordPressie?

Błąd „504 Gateway Timeout” w WordPressie pojawia się, gdy serwer pośredniczący (tzw. gateway) nie otrzymuje odpowiedzi w odpowiednim czasie od serwera, który przetwarza żądanie. Oznacza to, że serwer, na którym znajduje się Twoja strona, jest przeciążony lub ma problem z przetwarzaniem żądań, co powoduje, że nie może odpowiedzieć w przewidzianym limicie czasu. Ten błąd jest często wynikiem przeciążenia serwera, problemów z konfiguracją serwera, zbyt dużej liczby żądań lub problemów z zasobami (np. zbyt niski limit pamięci).

W tym artykule omówimy najczęstsze przyczyny błędu „504 Gateway Timeout” oraz jak go naprawić.

1. Sprawdzenie stanu serwera

Pierwszym krokiem w diagnozowaniu błędu „504 Gateway Timeout” jest sprawdzenie, czy serwer, na którym znajduje się Twoja strona, działa prawidłowo. Problem ten może być spowodowany przeciążeniem serwera lub awarią po stronie dostawcy usług hostingowych.

Jak sprawdzić stan serwera?

  1. Skontaktuj się z dostawcą hostingu: Zaloguj się do panelu klienta swojego hostingu lub skontaktuj się z działem wsparcia technicznego, aby sprawdzić, czy serwer działa poprawnie i czy nie ma problemów z infrastrukturą hostingową (np. przerwy w dostępie, przeciążenie serwera).
  2. Sprawdź logi serwera: W panelu hostingowym (np. cPanel lub Plesk) przejdź do sekcji logów serwera, takich jak Error Logs. Możesz znaleźć tam więcej informacji o problemach z serwerem, które powodują błąd 504.
  3. Użyj narzędzi monitorujących: Jeśli masz dostęp do narzędzi monitorujących, takich jak UptimeRobot lub Pingdom, sprawdź, czy Twoja strona ma przerwy w działaniu lub jest przeciążona.

2. Zwiększenie limitu czasu wykonywania skryptów PHP

Błąd „504 Gateway Timeout” może być spowodowany tym, że skrypty PHP na Twojej stronie przekraczają maksymalny czas wykonywania, zanim serwer będzie w stanie zakończyć operację. Zwiększenie limitu czasu wykonywania skryptów może pomóc rozwiązać ten problem.

Jak zwiększyć limit czasu wykonywania skryptów PHP?

  1. Edytuj plik php.ini:
  • Jeśli masz dostęp do pliku php.ini, znajdź go na swoim serwerze i dodaj lub edytuj następujące linie:
    plaintext max_execution_time = 300 max_input_time = 300
  1. Edytuj plik .htaccess (jeśli nie masz dostępu do pliku php.ini):
  • Zaloguj się na serwer przez FTP lub menedżer plików i dodaj poniższy kod do pliku .htaccess:
    plaintext php_value max_execution_time 300 php_value max_input_time 300
  1. Edytuj plik wp-config.php:
  • Możesz również spróbować dodać poniższą linię do pliku wp-config.php:
    php set_time_limit(300);

Po zwiększeniu limitu czasu wykonania spróbuj ponownie załadować stronę i sprawdź, czy problem został rozwiązany.

3. Zwiększenie limitu pamięci PHP

Błąd „504 Gateway Timeout” może również wystąpić, gdy serwer nie ma wystarczającej pamięci PHP do przetwarzania żądań. Zwiększenie limitu pamięci PHP może pomóc rozwiązać problem.

Jak zwiększyć limit pamięci PHP?

  1. Edytuj plik wp-config.php:
  • Zaloguj się na serwer przez FTP i otwórz plik wp-config.php.
  • Dodaj poniższą linię kodu:
    php define('WP_MEMORY_LIMIT', '256M');
  1. Edytuj plik php.ini:
  • Jeśli masz dostęp do pliku php.ini, zaktualizuj lub dodaj następującą linię:
    plaintext memory_limit = 256M
  1. Edytuj plik .htaccess:
  • Dodaj poniższy kod do pliku .htaccess:
    plaintext php_value memory_limit 256M

Zwiększenie limitu pamięci PHP powinno pomóc w przetwarzaniu większych żądań przez serwer, co może zapobiec wystąpieniu błędu 504.

4. Sprawdzenie wtyczek

Błąd „504 Gateway Timeout” może być spowodowany przez wtyczki, które generują zbyt wiele zapytań do serwera, przeciążając go i powodując przekroczenie czasu odpowiedzi. Niekiedy wtyczki, które komunikują się z zewnętrznymi usługami (np. API), mogą generować problemy, jeśli te usługi są niedostępne lub działają zbyt wolno.

Jak sprawdzić, czy wtyczka powoduje problem?

  1. Wyłącz wszystkie wtyczki:
  • Zaloguj się na serwer przez FTP i przejdź do katalogu wp-content/plugins.
  • Zmień nazwę folderu plugins (np. na plugins_old), co tymczasowo wyłączy wszystkie wtyczki.
  1. Sprawdź, czy błąd zniknął:
  • Jeśli strona zacznie działać prawidłowo, oznacza to, że problem powoduje jedna z wtyczek.
  1. Włączaj wtyczki pojedynczo:
  • Zmień nazwę folderu plugins z powrotem na oryginalną, a następnie włączaj wtyczki pojedynczo, aby zidentyfikować, która z nich powoduje problem.

Po zidentyfikowaniu problematycznej wtyczki możesz spróbować ją zaktualizować, skontaktować się z jej twórcami lub znaleźć alternatywne rozwiązanie.

5. Używanie Content Delivery Network (CDN)

W przypadku stron o dużym ruchu, używanie CDN (Content Delivery Network) może pomóc w odciążeniu serwera i zmniejszeniu liczby błędów „504 Gateway Timeout”. CDN przechowuje kopie statycznych elementów strony, takich jak obrazy, CSS i pliki JavaScript, na różnych serwerach zlokalizowanych na całym świecie. Dzięki temu zmniejsza liczbę bezpośrednich zapytań do głównego serwera.

Jak skonfigurować CDN dla WordPressa?

  1. Zarejestruj się w usłudze CDN: Popularne usługi CDN to Cloudflare, KeyCDN czy MaxCDN.
  2. Zainstaluj wtyczkę do integracji z CDN: Wtyczki takie jak W3 Total Cache lub Cloudflare pomogą w integracji CDN z Twoją stroną WordPress.
  3. Skonfiguruj CDN: Skorzystaj z dokumentacji wybranego CDN, aby poprawnie skonfigurować usługę.

6. Optymalizacja bazy danych

Przeładowana lub nieoptymalna baza danych może również powodować błędy „504 Gateway Timeout”. Jeśli baza danych jest zbyt duża lub ma problemy z wydajnością, serwer może nie być w stanie przetworzyć żądań w odpowiednim czasie.

Jak zoptymalizować bazę danych?

  1. Zainstaluj wtyczkę do optymalizacji bazy danych: Wtyczki takie jak WP-Optimize lub WP-Sweep pomogą oczyścić i zoptymalizować Twoją bazę danych, usuwając niepotrzebne dane, takie jak wersje postów, komentarze spamowe, tymczasowe dane itp.
  2. Użyj narzędzi do optymalizacji w panelu hostingowym: Jeśli Twój hosting oferuje narzędzia do zarządzania bazą danych (np. phpMyAdmin), możesz ręcznie zoptymalizować tabele bazy danych.

Regularna optymalizacja bazy danych pomoże utrzymać jej wydajność i zmniejszyć ryzyko przeciążenia serwera.

7. Sprawdzenie ustawień serwera proxy

Jeśli Twoja witryna korzysta z serwera proxy, błąd „504 Gateway Timeout” może być spowodowany problemami z

konfiguracją tego serwera. Proxy może nie być w stanie przekazać żądania do serwera backendowego w odpowiednim czasie.

Jak naprawić problemy z proxy?

  1. Skontaktuj się z dostawcą hostingu lub administratorem serwera, aby sprawdzić, czy ustawienia proxy są poprawne.
  2. Jeśli korzystasz z zewnętrznego serwera proxy, upewnij się, że jest on skonfigurowany prawidłowo i nie powoduje opóźnień w przesyłaniu żądań.

8. Kontakt z dostawcą hostingu

Jeśli wszystkie powyższe kroki nie pomogły, problem może leżeć po stronie serwera. Warto skontaktować się z dostawcą hostingu, aby uzyskać więcej informacji i pomoc techniczną.

Co zapytać dostawcę hostingu?

  • Czy serwer jest przeciążony?
  • Czy są problemy z konfiguracją serwera, które mogą powodować błędy 504?
  • Czy możesz zwiększyć zasoby serwera, takie jak limit pamięci lub czas wykonania skryptów?
  • Czy serwer proxy działa prawidłowo?

Podsumowanie

Błąd „504 Gateway Timeout” w WordPressie najczęściej wynika z problemów z serwerem, takich jak przeciążenie, zbyt długi czas wykonywania skryptów lub problemy z pamięcią. Aby naprawić ten błąd, sprawdź stan serwera, zwiększ limity czasu wykonania skryptów oraz pamięci PHP, a także sprawdź, czy niektóre wtyczki nie przeciążają serwera. W razie potrzeby optymalizuj bazę danych, użyj CDN do odciążenia serwera, a jeśli problem nie ustąpi, skontaktuj się z dostawcą hostingu, aby uzyskać dodatkową pomoc.

Previous Article

Jak naprawić błąd "403 Forbidden" w WordPressie?

Next Article

Jak naprawić błąd "Unable to Write to Disk" w WordPressie?

Write a Comment

Leave a Comment

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Subscribe to our Newsletter

Subscribe to our email newsletter to get the latest posts delivered right to your email.
Pure inspiration, zero spam ✨