Jak zwiększyć limit pamięci PHP (memory_limit) w WordPressie i naprawić błąd "Allowed memory size exhausted"
Jeśli zobaczyłeś komunikat "Fatal error: Allowed memory size of X bytes exhausted", to znaczy, że jakiś proces w WordPressie — instalacja wtyczki, generowanie miniatur zdjęć, import danych — potrzebował więcej pamięci PHP, niż ma do dyspozycji. To jeden z najczęstszych błędów w WordPressie i w większości przypadków da się go naprawić w kilkanaście minut, bez pomocy programisty. Poniżej pokazuję kolejno wszystkie sposoby, od najprostszego do tych wymagających panelu hostingowego, oraz jak rozpoznać sytuację, w której sam limit pamięci nie jest prawdziwą przyczyną problemu.
- Zrób kopię zapasową pliku
wp-config.php— zaloguj się do panelu plików hostingu (lub przez FTP), znajdź ten plik w głównym katalogu WordPressa i pobierz jego kopię na dysk, zanim cokolwiek zmienisz. - Otwórz plik
wp-config.phpdo edycji w panelu plików hostingu lub w kliencie FTP z wbudowanym edytorem tekstu. - Znajdź w pliku linię
/* That's all, stop editing! Happy publishing. */— to miejsce, przed którym trzeba wstawić nowy kod. - Wklej nad tą linią dwa wpisy:
define('WP_MEMORY_LIMIT', '256M');orazdefine('WP_MAX_MEMORY_LIMIT', '512M');— pierwszy podnosi limit dla zwykłego działania strony, drugi dla panelu administracyjnego, gdzie zużycie pamięci bywa wyższe. - Zapisz plik i sprawdź, czy strona nadal się wczytuje — wejdź na stronę główną oraz na wp-admin, żeby upewnić się, że nie popełniłeś literówki w kodzie.
- Powtórz czynność, która wcześniej kończyła się błędem (np. instalację wtyczki albo import pliku), żeby sprawdzić, czy limit ustawiony w
wp-config.phpwystarczył. - Jeśli błąd nadal się pojawia, sprawdź w panelu hostingowym (cPanel, DirectAdmin, Plesk lub panel własny Twojego hostingu), czy jest tam sekcja "Wybór wersji PHP" lub "PHP Selector" — w wielu przypadkach to tam znajduje się rzeczywisty, twardy limit
memory_limit, któregowp-config.phpnie jest w stanie przebić. - W tej sekcji panelu hostingowego odszukaj opcję
memory_limitna liście dyrektyw PHP i ustaw ją na wyższą wartość, np. 256M lub 512M, a następnie zapisz zmiany. - Jeśli hosting nie ma takiego panelu albo nie widzisz w nim opcji
memory_limit, sprawdź, czy w głównym katalogu strony istnieje plik.user.inilubphp.ini— jeśli nie, utwórz nowy plik tekstowy o takiej nazwie. - Wpisz w tym pliku linię
memory_limit = 256M, zapisz go w głównym katalogu WordPressa (tam, gdzie znajduje sięwp-config.php) i odczekaj kilka minut — zmiany w.user.ininie działają natychmiast, serwer odświeża je cyklicznie. - Sprawdź efekt zmiany, wchodząc na stronę Narzędzia → Zdrowie witryny → Informacje w kokpicie WordPressa i rozwijając sekcję "Serwer" — zobaczysz tam aktualną wartość
memory_limitwidzianą przez WordPressa. - Jeśli żadna z powyższych metod nie podniosła realnie limitu (wartość w Zdrowiu witryny się nie zmienia), skontaktuj się z działem wsparcia hostingu i poproś wprost o podniesienie
memory_limitdla Twojego konta — część hostingów blokuje tę zmianę po stronie klienta i robi to tylko na żądanie.
Co zrobić, gdy coś pójdzie nie tak
Po edycji wp-config.php strona przestała się wczytywać (biały ekran lub błąd składni). Najczęściej to literówka — brakujący średnik, zbędny cudzysłów albo wklejenie kodu w złym miejscu. Wgraj z powrotem zapisaną wcześniej kopię pliku przez FTP lub panel plików, a przy kolejnej próbie wklej kod dokładnie w takiej formie, jak podano wyżej, bez dodatkowych znaków.
Zmieniłeś memory_limit, a błąd "Allowed memory size exhausted" i tak wraca. To znak, że problemem może nie być sam limit, tylko wtyczka lub motyw, które zużywają nienaturalnie dużo pamięci — np. wadliwa wtyczka do importu, źle zoptymalizowany motyw albo konflikt dwóch wtyczek robiących to samo. Wyłącz tymczasowo wszystkie wtyczki (albo przełącz się na domyślny motyw WordPressa) i włączaj je pojedynczo, obserwując, po której z nich błąd wraca — to pozwoli znaleźć faktyczne źródło problemu zamiast w nieskończoność podnosić limit.
Nie masz dostępu do panelu hostingowego z opcją PHP Selector ani możliwości edycji .user.ini. Zdarza się to na bardzo podstawowych planach hostingowych, gdzie limit pamięci jest sztywno narzucony przez dostawcę. W takiej sytuacji jedyną skuteczną drogą jest kontakt z supportem hostingu z prośbą o podniesienie limitu — a jeśli hosting odmawia takiej zmiany mimo realnych potrzeb Twojej strony, warto sprawdzić, jak limity pamięci PHP wyglądają u innych dostawców w naszym bieżącym rankingu na stronie głównej, zanim zdecydujesz się na migrację.