Błąd:
Błąd krytyczny: wyczerpany dozwolony rozmiar pamięci X bajtów (próbował przydzielić Y bajtów)
Aby przekonwertować bajty X na MB, podziel przez 1024 * 1024 lub sprawdź w Wolfram .
zdarza się, gdy PHP próbuje przydzielić bajty Y, ale istnieje sztywny limit X bajtów ustawionych w memory_limit
ustawieniach konfiguracji PHP .
Aktualny limit można sprawdzić, przechodząc do Administracja »Raporty» Raport o stanie »PHP (URL:) /admin/reports/status/php
lub drukując ini_get('memory_limit')
w PHP (zwróć uwagę, że limit może być inny dla interfejsu użytkownika i CLI).
Aby to naprawić, musisz zmniejszyć zużycie zasobów, na przykład:
wyłącz wszystkie moduły programistyczne, których obecnie nie używasz (zalecane),
Obejmuje to: Devel, Devel Themer (jeśli włączony).
wyłącz wszystkie moduły, których nie używasz,
wyłącz niektóre zmienne debugowania, które mogą mieć wpływ na zasoby pamięci, np. kilka przykładów z drush
:
drush -y vset rules_debug 0
drush -y vset rules_debug_log 0
wyłącz niektóre rozszerzenia PHP, takie jak XDebug,
- włącz pamięć podręczną redis / memcached i niektóre pamięci podręczne PHP (np. OPCache / XCache),
- w końcu jeśli powyższe nie pomoże - wzrost
memory_limit
konfiguracji PHP .
Jeśli zdecydujesz się na zwiększenie limitu pamięci, wiele osób doradza ci włamanie się do twojego rdzenia poprzez wklejenie kodu PHP w index.php
celu zwiększenia pamięci PHP - nigdy tego nie rób ! To bardzo zła praktyka.
Zamiast tego edytuj swój settings.php
(lub settings.local.php
jeśli go masz) i wklej następujący kod na końcu:
ini_set('memory_limit', '512M');
lub lepszym sposobem na to jest edycja pliku konfiguracyjnego PHP ( php.ini
) i zmiana następującego wiersza:
memory_limit = 512M ; Maximum amount of memory a script may consume
Jeśli nie masz pewności, gdzie jest twój php.ini
, sprawdź:
drush status
dowództwo
- lub przechodząc do
/admin/reports/status/php
.
Aby dalej zbadać, które strony / komponenty zużywają najwięcej pamięci, masz następujące możliwości:
Aby uzyskać więcej informacji, sprawdź: