Komunikat błędu
Fatal error: Allowed memory size of 12345678 bytes
exhausted (tried to allocate 23456789 bytes) in public_html/wp-includes/plugin.php
on line 1111
Błąd informuje o ilości pamięci, która jest aktualnie wykorzystywana oraz ile bajtów już się nie zmieściło. Podana jest również ścieżka do pliku, który w którym wystąpił ten błąd i konkretna linijka kodu w tym pliku. Jest to informacja przydatna, jeśli żadna z podanych poniżej metod zwiększenia limitu nie zadziała.
Lub też inna wersja komunikatu:
Fatal error: Out of memory (allocated 12345678) (tried to allocate 23456789bytes)
in public_html/wp-includes/plugin.php
on line 1000
Obydwa komunikaty informują, że skończyła się pamięć dla skryptów PHP. Wynika to z ograniczeń serwera i ogranicza się głównie do zmiany konfiguracji. Czasami jednak, szczególnie na darmowych serwerach może się okazać, że takiej konfiguracji nie ma lub maksymalny limit jest mocno ograniczony.
Zwiększenie limitu pamięci dla WordPressa
Domyślnie WordPress przydziela do 40 MB
Jeśli serwer zwraca powyższy błąd oznacza, że powyższe wartości są za małe.
Jaki limit jest odpowiedni?
To zależy od tego co wykonuje wywołująca błąd wtyczka/szablon.
Zazwyczaj wystarczy 128 MB ale jeśli wtyczka pobiera np. duży plik xml czy listę kilkudziesięciu tysięcy produktów to może nie wystarczyć.
Sposoby na zwiększenie limitu pamięci WordPress
- Edycja pliku php.ini
- Edycja pliku .htaccess
- Edycja pliku wp-config.php
php.ini
Konieczny będzie dostęp do pliku php.ini, hostingi współdzielone bardzo rzadko pozwalają na edycje pliku.
Aby zmienić wartość należy odnaleźć linijkę:
memory_limit = xxxM
Edycja pliku .htaccess
Jeśli edycja php.ini nie pomogła lub nie ma dostępu do tego pliku można spróbować edytować plik .htaccess na serwerze.
Plik .htaccess znajduje się w głównym katalogu WordPressa.
Na końcu pliku należy dodać poniższą linijkę z ustalonym limitem pamięci.
php_value memory_limit xxxM
Edycja pliku wp-config.php
W przypadku gdy żaden z powyższych sposobów nie pomoże, pozostaje edycja pliku wp-config.php w głównym katalogu WordPressa.
Należy dodać poniższą linijkę na końcu pliku ale przed komentarzem „..Miłego blogowania!”.
define('WP_MEMORY_LIMIT', 'xxxM');
Nic nie pomaga. Zmień wersję PHP
Może się zdarzyć, że żadna z opcji nie zadziała. Hostingi często nie pozwalają na edycję limitu pamięci lub ten limit w wybranym pakiecie jest mocno ograniczony. Należy wówczas skontaktować z administratorem z prośbą o zwiększenie limitu pamięci. Jeśli maksymalny limit pamięci nie będzie wystarczający konieczna będzie zmiana pakietu na wyższy lub po prostu zmiana hostingu.
Jest jeszcze jedna możliwość! Wiele hostingów pozwala na samodzielną zmianę wersji PHP do najnowszej wersji 7 lub też umożliwia taką zmianę na żądanie. Nowy PHP jest tak wydajny, że bardzo często nie trzeba zwiększać limitu pamięci.
Wtyczki, które mają problemy z pamięcią na PHP 5.6 i starszych wersjach nie stwarzają problemów przy PHP 7 przy niższych limitach pamięci. Uwaga! Przed aktualizacją PHP należy upewnić się, że wszystkie wtyczki w sklepie wspierają nową wersję.