Podczas korzystania z WordPressa, sporo jego użytkowników w pewnym momencie natyka się na pewien błąd, którego przykładowy komunikat wygląda jak niżej:
Fatal error: Out of memory (allocated 59244544) (tried to allocate 10632 bytes) in /homepages/2/d375563231/htdocs/myfolder/wp-content/plugins/nextgen-gallery/lib/gd.thumbnail.inc.php on line 179
Najczęściej owy błąd pojawia się w przypadku próby instalacji WordPressa na darmowych serwerach, próby jego aktualizacji, lub próby aktywowania jakiejś wtyczki albo szablonu.
Powyższy kod prezentuje komunikat błędu wynikły najprawdopodobniej w wyniku próby aktywowania wtyczki nextgen-gallery, co widać po katalogach w adresie do skryptu który na błąd natrafił – wp-content/plugins/nextgen-gallery/
Co ten błąd oznacza?
Fatal error: Out of memory … – oznacza że skończyła się skryptom PHP pamięć, jaka została dla nich przydzielona. Jest to kwestia ograniczeń administracji serwera, lub kwestia ograniczeń w konfiguracji serwera – jeśli mamy do takowych dostęp, lub też cały serwer należy do Nas. Zazwyczaj pojawiają się dwie wersje komunikatu:
Fatal error: Out of memory (allocated XXX) (tried to allocate YYY bytes) in ...
Fatal error: Allowed memory size of XXX bytes exhausted (tried to allocate YYY bytes) in ...
W samym komunikacie można znaleźć informację ile bajtów pamięci jest obecnie w użyciu, oraz ile bajtów się już nie zmieściło. Dalej znajdziemy także informację który plik skryptowy natrafił na błąd, oraz w której linijce owy błąd wystąpił. Zazwyczaj te informacje nikogo szczególnie nie interesują, chyba że jesteście programistami którzy właśnie położyli swojego WordPressa, wtedy nos w kod i optymalizować. Jeżeli natomiast jesteście zwykłymi użytkownikami, wtedy możecie spróbować jednego z poniższych rozwiązań.
Zwiększenie limitu pamięci dla PHP
Aby pozbyć się problemu, należy zwiększyć limit pamięci dla PHP. Oczywiście nie zawsze to zadziała, ale można spróbować. O ile zwiększymy ten limit – to zależy od Was, zazwyczaj 64M lub 128M wystarczy w zupełności. Mamy 3 możliwości zwiększenia tego limitu.
1. Edycja pliku .htaccess
Jeżeli takowy posiadamy i używamy, to znajduje się on w głównym katalogu WordPressa – w większości klientów FTP jest on ukryty ( trzeba w ustawieniach pomajstrować aby pliki ukryte nam wyświetlało ). Jeżeli już go znajdziemy, to należy dopisać w nim taką linijkę:
php_value memory_limit 64M
2. Edycja pliku wp-config.php
Domyślnie WordPress sam sobie przydziela 32Mb pamięci dla PHP, w związku z czym 32M lub mniej w ogóle nie ma sensu definiować. Przykładowy kod wraz z linijką poniżej której go wklejamy:
/* To wszystko, zakończ edycję w tym miejscu! Miłego blogowania! */ define(‘WP_MEMORY_LIMIT’, ’64M’);
3. Edycja pliku php.ini
Jeżeli jesteśmy w posiadaniu serwera dedykowanego, VPSa lub też po prostu mamy dostęp do php.ini
, wtedy możemy zmienić ustawienia limitu wyszukując kod podobny do tego:
memory_limit = 64M
W przypadku większości hostingów nie będziemy mieli dostępu do pliku php.ini
, w związku z czym zostają nam jedynie pierwsze dwie opcje. Jeżeli żadna z nich nie działa, oznacza to że administrator serwera zabronił zmieniania limitu pamięci dla PHP, i sami go nie zwiększymy. Dlatego w takim wypadku mamy kolejne dwie opcje – napisać do administratora i poprosić go o zwiększenie tego limitu, bądź zmiana pakietu albo hostingu na lepszy.
Sprawdzanie limitu pamięci dla PHP
Jest możliwość także sprawdzenia jaki mamy ustawiony limit pamięci dla PHP, i sprawdzenia czy można go zmienić drugim sposobem. Aby tego dokonać wystarczy utworzyć sobie plik test.php
w głównym katalogu naszej strony, i wkleić do niego któryś z poniższych kodów:
<?php phpinfo(); ?>
<?php echo ini_get("memory_limit"); ini_set("memory_limit","320M"); echo ini_get("memory_limit"); ini_restore("memory_limit"); echo ini_get("memory_limit"); ?>
Po czym zapisujemy zmiany w pliku, i wywołujemy go zaraz za adresem naszej strony, np. http://www.nasza-domena.pl/test.php
W przypadku pierwszego kodu, szukamy rzędu z memory_limit
.
W przypadku drugiego kodu, powinny się wyświetlić trzy wartości, pierwsza oznacza nasz obecny limit pamięci, druga pokazuje limit pamięci po próbie zmiany go na 320M, trzecia pokazuje limit pamięci po przywróceniu go do oryginalnej wartości. Jeżeli nasza druga liczba wynosi 320, oznacza to że możemy sobie samemu zmienić limit pamięci, definiując nową wartość w pliku wp-config.php
. W przypadku kiedy wszystkie liczby są takie same, wtedy możliwość zmiany została nam zablokowana.
Z ciekawości oraz dla potomnych, jeśli już sprawdzacie jaki macie limit pamięci, napiszcie w komentarzach z jakiego korzystacie hostingu, z jakiego pakiety, i ile taki limit wynosi. Dla przykładu, na hostingu lh.pl na wszystkich pakietach domyślny limit to 128M – ale można go sobie bez problemu samemu zmienić :)
6 stycznia 2013 14:59
Hosting nazwa.pl
brak możliwość zmiany wartości :
64M x3 :D
22 stycznia 2013 11:35
Na niektórych hostingach faktycznie nadal jest problem tego typu, w większości jednak już poszli po rozum do głowy i dają wystarczające limity aby wszystkie popularne cmsy raczej działały stabilnie.
23 stycznia 2013 22:15
Ja jeszcze niedawno miałem problem z hostingiem iswift. Zmienił się jednak z tego co wiem właściciel i jest o niebo lepiej i teraz faktycznie można korzystać z tego hostingu i nie ma takich kwiatów jak np out of memory :)
30 kwietnia 2013 13:42
Hosting: friko.pl
Brak możliwości zmiany wartości:
22M22M22M
24 kwietnia 2014 22:18
1and1
120M
wyświetla się zmieniona liczba, ale przy większych plikach błąd nadal, będę musiał kod poprawić
6 października 2014 00:36
Najciekawsze to są przygody na z instalacją wordpressa na home.pl… tam to jest dopiero koszmar. O ile sama instalacja jeszcze przechodzi o tyle na etapie wtyczek zaczynają się problemy… .
3 listopada 2014 20:41
Parę lat temu też miałam ten problem przy wtyczce WP e-commerce u klienta. O ile dobrze pamiętam strona postawiona była na home.pl. Wpisy w .htaccess rozwiązały wtedy problem.
17 grudnia 2014 21:32
na prv.pl 32M32M32M
11 marca 2015 10:45
Niestety popularne hostingi typu home, nazwa czy zenbox często mają liczne ograniczenia powodujące problemy w instalacji i konfiguracji podstawowych wtyczek.
16 marca 2015 12:37
Dzięki dobry Człowieku, pokazałeś GDZIE DOKŁADNIE wkleić define(‘WP_MEMORY_LIMIT’, ’64M’). Jesteś wielki! DZIAŁA!
18 grudnia 2015 10:14
O rany, a ja się tak długo z tym męczyłam i nie wiedziałam, co robić, ani skąd ten błąd! Wielkie dzięki! :)
21 lutego 2016 03:33
W moich plikach wp-config i htaccess nie ma ciągu znaków „MEMORY_LIMIT” :/
5 kwietnia 2016 11:44
Na home.pl zmiana tych parametrów zdaje się działać prawidłowo.
30 listopada 2016 13:27
Dla 1&1 po teście: 256M 320M 256M
…tyle że WP położyło przy 45mb i od dwóch dni czekam na odpowiedź ;)
11 lutego 2017 14:19
miałem ten problem nie raz, ale tylko interwencja do hostingu podziałała.
3 lutego 2019 10:24
Dzień dobry, wgryzam się w informacje o WordPressie. Chce zacząć prowadzić bloga na WordPress org lub com tylko jeszcze się nie zdecydowałam. Nie mam wielkich umiejętności informatycznych ale sobie radzę.
Moge zamieścić link do Państwa strony w stopce.