Jak naprawić błąd „Allowed Memory Size Exhausted” w WordPressie?

Błąd „Allowed Memory Size Exhausted” w WordPressie oznacza, że skrypt PHP przekroczył dostępny limit pamięci na serwerze. Jest to jeden z częstszych problemów, który może wystąpić, szczególnie na bardziej rozbudowanych stronach WordPressa z dużą ilością wtyczek lub danych. Błąd ten może prowadzić do zawieszenia strony lub wyświetlania niepełnych treści, a najczęściej pojawia się w formie komunikatu podobnego do:

„Fatal error: Allowed memory size of xxx bytes exhausted (tried to allocate xxx bytes) in /path/to/file.php on line xx.”

W tym artykule omówimy, dlaczego ten błąd występuje oraz jak go naprawić, zwiększając limit pamięci PHP.

1. Dlaczego błąd „Allowed Memory Size Exhausted” występuje?

Ten błąd oznacza, że WordPress, który działa na skryptach PHP, próbował użyć więcej pamięci, niż jest dozwolone w konfiguracji serwera. Może to być spowodowane:

  • Zbyt niskim limitem pamięci PHP ustawionym na serwerze.
  • Zbyt dużą liczbą wtyczek lub zasobożernymi wtyczkami.
  • Przetwarzaniem dużych ilości danych, na przykład w WooCommerce.
  • Problematycznym motywem, który zużywa dużo pamięci.

2. Jak zwiększyć limit pamięci PHP w WordPressie?

Najprostszym sposobem na naprawę tego błędu jest zwiększenie limitu pamięci PHP, co pozwoli WordPressowi na dostęp do większej ilości pamięci. Można to zrobić na kilka sposobów.

1. Zwiększenie limitu pamięci w pliku wp-config.php

Plik wp-config.php zawiera kluczowe ustawienia dla Twojej strony WordPress. Możesz w nim zwiększyć limit pamięci PHP, edytując odpowiedni fragment kodu.

  1. Zaloguj się na serwer przez FTP lub menedżer plików w panelu hostingowym.
  2. Znajdź plik wp-config.php w głównym katalogu WordPressa i otwórz go do edycji.
  3. Dodaj poniższą linię tuż przed komentarzem „That’s all, stop editing!”:
   define('WP_MEMORY_LIMIT', '256M');
  • Ta linia zwiększa limit pamięci do 256 MB. Możesz zmodyfikować tę wartość, w zależności od potrzeb strony i dostępnych zasobów serwera.
  1. Zapisz zmiany i spróbuj ponownie załadować stronę.

2. Zwiększenie limitu pamięci w pliku php.ini

Plik php.ini jest głównym plikiem konfiguracyjnym PHP, a jego ustawienia kontrolują, jak skrypty PHP działają na serwerze.

  1. Zaloguj się przez FTP lub panel hostingowy i znajdź plik php.ini (jeśli masz dostęp do tego pliku).
  2. Jeśli nie ma pliku php.ini, możesz go stworzyć samodzielnie.
  3. Otwórz plik php.ini i dodaj lub zaktualizuj następującą linię:
   memory_limit = 256M
  • To ustawienie również zwiększy limit pamięci do 256 MB.
  1. Zapisz plik i spróbuj ponownie otworzyć stronę.

3. Zwiększenie limitu pamięci w pliku .htaccess

Jeśli nie masz dostępu do pliku php.ini, możesz spróbować zwiększyć limit pamięci za pomocą pliku .htaccess.

  1. Zaloguj się na serwer przez FTP i znajdź plik .htaccess w głównym katalogu WordPressa.
  2. Otwórz plik .htaccess i dodaj poniższą linię:
   php_value memory_limit 256M
  1. Zapisz zmiany i spróbuj ponownie załadować stronę.

3. Sprawdzenie wtyczek i motywów

Jeśli problem nadal występuje po zwiększeniu limitu pamięci, warto sprawdzić, czy któraś z wtyczek lub motyw nie zużywa nadmiernie zasobów serwera.

1. Wyłączanie wtyczek

  1. Zaloguj się do panelu WordPressa i przejdź do Wtyczki > Zainstalowane wtyczki.
  2. Zaznacz wszystkie wtyczki i wybierz opcję Dezaktywuj.
  3. Sprawdź, czy problem ustąpił.
  • Jeśli strona działa poprawnie, włączaj wtyczki pojedynczo, aby zidentyfikować tę, która powoduje problem.
  1. Wyłącz wtyczki przez FTP:
  • Jeśli nie możesz zalogować się do panelu, zaloguj się na serwer przez FTP, przejdź do katalogu wp-content/plugins i zmień nazwę folderu z wtyczkami (np. na plugins_old), aby tymczasowo je wyłączyć.

2. Sprawdzenie motywu

  1. Przełącz motyw na domyślny (np. Twenty Twenty-Three) w sekcji Wygląd > Motywy.
  2. Jeśli strona działa poprawnie po przełączeniu motywu, problem może leżeć w motywie, który wcześniej był używany. Warto rozważyć jego aktualizację lub kontakt z jego twórcami.

4. Sprawdzenie logów serwera

Jeśli standardowe kroki nie pomagają, możesz sprawdzić logi serwera, aby zobaczyć, jakie błędy PHP powodują problem. W logach znajdziesz szczegółowe informacje o tym, które skrypty powodują nadmierne zużycie pamięci.

Jak sprawdzić logi serwera?

  1. Zaloguj się do panelu hostingowego i przejdź do sekcji logów serwera (np. Error Logs w cPanel).
  2. Sprawdź logi błędów PHP, aby zobaczyć szczegółowe informacje na temat problemu, w tym ścieżkę do pliku, który spowodował błąd.

5. Kontakt z dostawcą hostingu

Jeśli zwiększenie limitu pamięci i sprawdzenie wtyczek lub motywów nie rozwiązuje problemu, może być konieczne skontaktowanie się z dostawcą hostingu. Niektóre serwery hostingowe mają ograniczenia dotyczące maksymalnej dostępnej pamięci, które nie mogą być zmienione przez użytkownika.

Co zrobić, gdy hosting ogranicza zasoby?

  1. Skontaktuj się z obsługą techniczną hostingu i zapytaj, czy możesz zwiększyć limit pamięci PHP na serwerze.
  2. Jeśli korzystasz z taniego hostingu współdzielonego, rozważ przejście na bardziej zaawansowany plan, który oferuje większe zasoby serwera, takie jak VPS lub serwer dedykowany.

Podsumowanie

Błąd „Allowed Memory Size Exhausted” w WordPressie jest wynikiem przekroczenia limitu pamięci PHP dostępnej dla skryptów. Aby naprawić ten problem, możesz zwiększyć limit pamięci poprzez edycję pliku wp-config.php, php.ini lub .htaccess. Jeśli problem nadal występuje, sprawdź, czy nadmiernego zużycia pamięci nie powodują wtyczki lub motyw. W ostateczności skontaktuj się z dostawcą hostingu, aby zwiększyć zasoby serwera. Dzięki tym krokom możesz przywrócić poprawne działanie swojej witryny.

Previous Article

Jak naprawić błąd "The site is experiencing technical difficulties" w WordPressie?

Next Article

Jak naprawić błąd "Briefly Unavailable for Scheduled Maintenance" 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 ✨