WP Desk Care - zadbaj o swój biznes online!

Sprawdzona opieka techniczna dla Twojego sklepu

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

Komunikat błędu

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 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 poniżej metod zwiększenia limitu nie zadziała. Z takim komunikatem można się zwrócić do autora wtyczki o pomoc.

Inna wersja 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 serwer 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 wykonuje wywołująca błąd wtyczka. 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 w menu WooCommerce > Status systemu.

Więcej informacji nt. statusu systemu można znaleźć w artykule na woocommerce.pl.

Status systemu może wyświetlać błędny limit pamięci. Jeśli serwer ma ustawiony wyższy limit niż ten ustawiony dla WordPressa to w statusie będzie pokazana tylko maksymalna 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

Konieczny jest dostęp do pliku php.ini, w którym można edytować rozmiar pamięci bezpośrednio w pliku. W poniższej linijce w kodzie należy zmienić zmień wartość. M oznacza liczbę megabajtów.

memory_limit = 128M

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 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 WordPressa. Należy dodać 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.

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ę.