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

Sprawdzona opieka techniczna dla Twojego sklepu.

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

Opublikowano: / Ostatnia modyfikacja:

Zobacz, co zrobić, gdy Twoja strona internetowa (wtyczki, funkcje, płynność) nie funkcjonuje poprawnie. Jeśli zauważysz kod błędu Allowed memory size albo Out of memory, to poniżej znajdziesz odpowiedź, dlaczego tak się dzieje, jak podnieść limit pamięci w WordPress na kilka sposobów w tym przez wp-config i WP_MEMORY_LIMIT.

Czym jest limit pamięci w WordPressie

Limit pamięci to maksymalna ilość pamięci RAM, jaką serwer przydziela pojedynczemu skryptowi PHP. Obowiązują dwa limity naraz: jeden ustawia serwer w php.ini, drugi WordPress w stałej WP_MEMORY_LIMIT. Działa zawsze ten niższy, dlatego zwiększenie limitu tylko w WordPressie nic nie da, jeśli serwer daje mniej.

Domyślnie WordPress przydziela 40 MB dla pojedynczej strony i 64 MB dla multisite. W panelu administracyjnym obowiązuje osobna stała WP_MAX_MEMORY_LIMIT, domyślnie 256 MB, dlatego niektóre błędy pojawiają się tylko na stronie sklepu, a w panelu nie.

Komunikaty, które zobaczysz

Tu wstaw oba dotychczasowe komunikaty błędu, Allowed memory size i Out of memory, razem z akapitami wyjaśniającymi.

Komunikat błędu Allowed memory size

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

Limit pamięci w WordPressie zwiększysz, dodając do pliku wp-config.php linijkę define('WP_MEMORY_LIMIT', '256M');. Jeśli to nie pomoże, limit blokuje serwer i trzeba go zmienić w php.ini (memory_limit = 256M) albo poprosić o to hostingodawcę. Komunikaty Allowed memory size i Out of memory oznaczają dokładnie to samo: skryptom PHP zabrakło pamięci.

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.

Kod błędu Out of memory

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.

Zobaczmy, jak podnieść wp memory limit w WordPress, aby kod błędu Out of memory lub komunikat Allowed memory size już się nie pojawiły 🙂.

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 wp memory limit będzie wyższy niż ten na serwerze to status może pokazać nieprawidłową wartość.

Jak zwiększyć limit pamięci, krok po kroku

Zacznij od wp-config.php, bo masz do niego dostęp zawsze. Jeśli limit się nie zmieni, znaczy, że blokuje go serwer, i wtedy przechodzisz do php.ini. Przed każdą zmianą zrób kopię pliku.

Metoda Plik Co wpisać Kiedy zadziała
WordPress wp-config.php define('WP_MEMORY_LIMIT', '256M'); gdy serwer pozwala na więcej, niż ustawia WordPress
PHP php.ini memory_limit = 256M gdy masz dostęp do php.ini w panelu hostingu
Serwer Apache .htaccess php_value memory_limit 256M tylko na Apache, na nginx i LiteSpeed nie działa

Linijkę w wp-config.php dodaj przed komentarzem „Miłego blogowania!”. Po zapisaniu odśwież WooCommerce → Status i sprawdź, czy wartość się zmieniła.

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ć wartość, gdzie 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');

To powinno zmienić wartość wp memory limit dla Twojej strony WordPress.

Nic nie pomaga. Zmiana wersji PHP dla WordPress

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

Zapobiegaj błędom Allowed memory size i Out of memory

💡 Posiadanie najnowszych wersji WordPress, WooCommerce, motywu oraz wtyczek może pomóc – pamiętaj o wykonaniu kopii (backupu) przed aktualizacjami lub optymalizacją strony WordPress.

Jeśli interesuje Cię opieka premium dla sklepu (w tym przyspieszenie, kopie zapasowe, optymalizacja, aktualizacje) sprawdź usługę WP Desk Care ⭐.

Kompleksowa opieka nad stroną z WP Desk Care →

 

Zobacz też poniższe wpisy pomocne dla płynnego działania Twojego WordPress i WooCommerce:

 

FAQ, czyli najczęstsze pytania o limit pamięci

Jaki limit pamięci ustawić w WooCommerce?

Dla większości sklepów 256 MB. Przy dużym katalogu, imporcie produktów albo integracji z hurtownią warto ustawić 512 MB.

Czym różni się WP_MEMORY_LIMIT od memory_limit?

Pierwsza stała to limit WordPressa, druga to limit serwera. Obowiązuje ten niższy z nich.

Czy wyższy limit przyspieszy sklep?

Nie. Limit decyduje o tym, czy skrypt się wykona, a nie o tym, jak szybko. Na szybkość wpływają wersja PHP, hosting, cache i liczba wtyczek.

Dlaczego błąd pojawia się tylko w panelu albo tylko na stronie sklepu?

Panel korzysta z osobnej stałej WP_MAX_MEMORY_LIMIT, domyślnie 256 MB. Dlatego ta sama operacja może przejść w panelu i nie przejść na stronie.

Czy mogę ustawić limit bez dostępu do plików?

Część hostingów pozwala zmienić memory_limit z poziomu panelu klienta, w ustawieniach PHP. Jeśli tej opcji nie ma, zostaje kontakt z pomocą techniczną hostingu.

Co dołączyć do zgłoszenia, gdy błąd nie znika?

Pełną treść komunikatu ze ścieżką do pliku i numerem linii, obecny limit ze statusu WooCommerce, wersję PHP i listę ostatnio dodanych wtyczek.