Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)

Przyczyny
Komunikat oznacza, że w trakcie wykonywania skryptu PHP została przekroczona graniczna wartość pamięci jaką PHP może wykorzystać. Wartość ta ustawiana jest w pliku konfiguracyjnym PHP. W zależności od platformy i konfiguracji serwera, plik może być umiejscowiony w różnych miejscach, czasem nawet kilku jednocześnie. W wypadku lokalnej instalacji będzie to na przykład C:xampplitephpphp.ini
Rozwiązania
Zwiększyć ilość dostępnej dla PHP pamięci. Są na to 3 sposoby: 1) Jeśli możemy zmodyfikować plik z konfiguracją PHP (zwyczajowo jest to plik php.ini), odszukajmy w nim zmienną memory_limit i po znaku równości podajmy większą wartość (np. zamiast 16M wstawmy tam 64M). Metoda ta z pewnością zadziała na naszym lokalnym serwerze. Plik php.ini jest umieszczony w katalogu C:xampplitephp a po jego zmianie wymagany jest restart serwera apache (wystarczy na panelu sterowania xampp kliknąć stop a po chwili start przy serwerze Apache. wiele firm w których możemy kupić konto na stronę www z obsługą php i mysql podaje w informacjach jakie są możliwości zmian konfiguracji php. Jeśli nie znajdziemy takiej informacji warto o nią zapytać przed kupnem konta. Więcej porad dotyczących wyboru hostingu znajdziecie w rozdziale 14. „Uruchomienie witryny”. 2) jeśli nie mamy dostępu do php.ini, spróbujmy ustawić to w pliku settings.php umieszczonym w katalogu ./sites/default naszej instalacji Drupala. Dodajmy do niego linijkę ini_set('memory_limit', '64M') 3) Ostatnią deską ratunku może być plik .htaccess, który znajdziemy w głównym katalogu Drupala. Dodajmy do niego linię: php_value memory_limit 64M Niestety znakomita większość firm nie zezwala na taką opcję w .htaccess i często dodanie jej spowoduje komunikat błędu wewnętrznego serwera (Error 500). W takim wypadku wystarczy usunąć niedozwoloną opcję z pliku .htaccess i odświeżyć stronę.... (uzpln) 4) zrestartować serwer Apache, sprawdzić czy limit jest zwiększony tworząc plik info.php o zawartości i odszukać zapis memory_limit.

Jednym z najczęściej pojawiających się problemów z Drupalem (ale też z dowolnym skryptem PHP) jest ten z brakiem pamięci.

Objawia się on na różne sposoby – zależnie od konfiguracji wyświetlania błędów przez PHP – od pojawienia się całkiem białej strony, do komunikatu, który zazwyczaj odnajdziemy też w dzienniku zdarzeń PHP:

Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)

gdzie X i Y mogą być dowolnymi wartościami.