WordPress + Fatal error: Allowed memory size of xxx bytes exhausted

Jeśli po włączeniu jakiejś wtyczki (np. W3 Total Cache) pokazuje się na ekranie taki komunikat, to masz do dyspozycji trzy wyjścia (cztery, jeżeli masz dostęp do serwera). Przede wszystkim – nie panikuj. Da się to odkręcić.

1. Usunięcie katalogu z wtyczką/zmiana jego nazwy (dodane po komentarzu Marcina)

WordPress powinien automatycznie wyłączyć wtyczkę, do której stracił dostęp. Wystarczy więc zmiana nazwy katalogu z problematyczną wtyczką lub całkowite jego usunięcie.

Zanim wyłączysz wtyczkę całkowicie możesz spróbować zmienić ustawienia limitu pamięci.

2. Edycja pliku wp-config.php

Otwórz w edytorze plik wp-config.php (pamiętaj o wyłączeniu znacznika BOM od UTF-8) i dodaj linijkę

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

(cyferki w rozsądnym zakresie, wystarczy powyżej limitu pokazanego w komunikacie, w tym przypadku limit ustawiony jest na 96 megabajtów).

3. Edycja w bazie danych

Otwórz phpMyAdmina i w tabeli wp_options odszukaj kolumnę, w której option_name = active_plugins. To tutaj, w option_value umieszczone są wszystkie aktywowane wtyczki. Option_value to nic innego jak json. Jeżeli znasz php, to nie powinieneś mieć problemów ze zdekodowaniem zawartości do zwykłej tablicy (json_decode), wyrzuceniem elementu sprawiającego problem i zakodowaniem z powrotem do odpowiedniej postaci (json_encode). Jeżeli jednak nie znasz się na php, to czeka Ciebie małe wyzwanie.

Dane w kolumnie option_value mają postać:

a:X:{i:L;s:D:”N”;[i:L;s:D:”N”;[]]}

gdzie:

X – liczba aktywowanych wtyczek

L  – liczba określająca numer wtyczki, wtyczki są numerowane kolejno

D – długość napisu zawierającego ścieżkę do wtyczki

N – napis przedstawiający ścieżkę do wtyczki

Chcesz wyłączyć jedną wtyczkę, więc operacja sprowadza się do kilku prostych kroków:

0. Zrób kopię modyfikowanej treści

1. Zmniejsz X o 1

2. Znajdź ciąg i:L;s:D:”N”; zawierający nazwę kłopotliwej wtyczki

3. Usuń ten ciąg

4. We wszystkich kolejnych ciągach „iLsDN” zmniejsz L o 1

5. Zapisz zmiany

Jeżeli zrobiłeś wszystko prawidłowo, to po przeładowaniu kokpitu zobaczysz prawidłowy ekran WordPressa, a po wejściu na listę wtyczek przekonasz się, że zdezaktywowałeś tą sprawiającą problemy.

2 Comments on “WordPress + Fatal error: Allowed memory size of xxx bytes exhausted

  1. Zdecydowanie łatwiej będzie użytkownikowi nieinformatycznemu przenieść lub skasować niefortunną wtyczkę, albo wręcz zmienić nazwę katalogu „wp-content/plugins”, bo to też wyłącza wtyczki. A grzebanie w pokazanych przez Ciebie polach jest mało bezpieczne.

  2. Hmm .. słuszna uwaga. Chociaż zmiany w JSON nie są aż takie trudne, tylko tak wyglądają 😉 Trudne było rozpracowanie formatu plików w grach firmy JAST, a potem napisanie edytora, którym można wstawiać tekst bez obaw, że się wskaźniki rozlecą.

Dodaj komentarz

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

*