Jak sprawdzić i ustawić limit pamięci dla WordPressa?

Zdarza się, że w niespodziewanym momencie pojawia się błąd, a przecież do tej pory wszystko działało bez zarzutu. Co więcej błędy często pojawiają się po instalacji nowej wtyczki i wtedy rezygnujemy w przypadku darmowej wersji lub atakujemy od razu autora.

Często bywa tak, że nowa wtyczka działa bez zarzutów, a problem leży w naszej konfiguracji lub po stronie naszego hostingu. Jednym z takich problemów jest limit pamięci dostępny dla naszego WordPressa. W tym wpisie przedstawię sposoby na zwiększenie limitu pamięci.

O jakim błędzie mowa i co on oznacza?

Fatal error: Allowed memory size of 12345678 bytes exhausted (tried to allocate 2345678 bytes) in /home/your-username/public_html/wp-includes/plugin.php on line 1000

Komunikat informuje nas o ilości bajtów 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 natrafił na ten błąd i konkretna linijka kodu w tym pliku. Jest to informacja przydatna, jeśli żadna z podanych przeze mnie metod zwiększenia limitu nie pomoże. Wówczas z takim komunikatem warto się zwrócić do autora wtyczki o pomoc.

Możesz się również spotkać z inną wersją komunikatu:

Fatal error: Out of memory (allocated 12345678) (tried to allocate 2345678bytes) in /home/your-username/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 dla pojedynczej strony oraz 64 MB dla multisite’a. Jeśli twoja instalacja zwraca omawiany błąd to znaczy, że powyższe wartości są za małe. Jaki limit jest odpowiedni? To zależy od tego co robią twoje wtyczki. Zazwyczaj wystarczy 128 MB ale jeśli wtyczka pobiera np. dużą listę punktów odbioru paczki czy listę kilkudziesięciu tysięcy kategorii produktów to może nie wystarczyć.

W WooCommerce limit pamięci można sprawdzić w statusie systemu. Gdzie znaleźć Status systemu i do czego służy przeczytasz w innym artykule.

Pamiętaj, że status systemu niekoniecznie wyświetli faktyczny limit pamięci. Jeśli serwer ma ustawiony wyższy limit niż ten ustawiony dla WordPressa to w statusie zobaczysz tylko maksymalną wartość dla WP. W odwrotnej sytuacji tzn. gdy w wp-config.php limit będzie wyższy niż ten na serwerze to status może pokazać nieprawidłową wartość.

Edycja pliku php.ini

Jeśli masz dostęp do pliku php.ini, możesz edytować rozmiar pamięci bezpośrednio w pliku. Znajdź poniższą linijkę w kodzie i zmień wartość. M oznacza liczbę megabajtów.

memory_limit = 128M

Edycja pliku .htaccess

Jeśli edycja php.ini nie pomogła lub nie masz dostępu do tego pliku możesz spróbować edytować plik .htaccess na swoim serwerze. Plik .htaccess znajdziesz w głównym katalogu WordPressa. Na końcu pliku dodaj poniższą linijkę z ustalonym limitem pamięci.

php_value memory_limit 128M

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 twojego WordPressa. Dodaj poniższą linijkę na końcu pliku ale przed komentarzem „..Miłego blogowania!”.

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

Nic nie pomaga. Zmiana wersji 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.

Przetestowałem wielokrotnie wtyczki, które miały problemy z pamięcią na PHP 5.6 i starszych wersjach. Podczas gdy na starszym PHP wtyczka nadal zwracała błąd nawet przy 256 MB to przy PHP 7 spokojnie wystarczało nawet 32 MB. Ale uwaga! Zanim podejmiesz się aktualizacji PHP upewnij się, że wszystkie wtyczki na twojej instalacji wspierają nową wersję.

Ekskluzywne porady, triki i trendy bezpośrednio na Twoją skrzynkę odbiorczą. Adres e-mail

[shopmagic_form id="3782" name=false labels=false doubleOptin]

Ekskluzywne porady, triki i trendy bezpośrednio na Twoją skrzynkę odbiorczą. Adres e-mail

[shopmagic_form id="3782" name=false labels=false doubleOptin]