Ошибка:
Неустранимая ошибка: допустимый объем памяти X байтов исчерпан (попытался выделить Y байтов)
Чтобы преобразовать байты X в МБ, разделите на 1024 * 1024 или проверьте на Wolfram .
происходит, когда PHP пытается выделить Y байтов, но существует жесткое ограничение на X байтов, установленное memory_limitнастройками конфигурации PHP .
Текущий лимит можно проверить, перейдя в Администрирование »Отчеты» Отчет о состоянии »PHP (URL:) /admin/reports/status/phpили напечатав ini_get('memory_limit')в PHP (обратите внимание, что лимит будет различным для пользовательского интерфейса и CLI).
Чтобы это исправить, вам нужно уменьшить использование ресурсов, например:
отключите все модули разработки, которые вы не используете в настоящее время (рекомендуется),
Это включает в себя: Devel, Devel Themer (если включено).
отключите все модули, которые вы не используете,
отключите определенные переменные отладки, которые могут повлиять на ваши ресурсы памяти, например, несколько примеров с drush:
drush -y vset rules_debug 0
drush -y vset rules_debug_log 0
отключить определенные расширения PHP, такие как XDebug,
- включить кэши redis / memcached и некоторые кэши PHP (например, OPCache / XCache),
- наконец, если выше, это не поможет - увеличьте
memory_limitвашу конфигурацию PHP .
Если вы решите увеличить лимит памяти, многие здесь советуют взломать ваше ядро, вставив в него код PHP, index.phpчтобы увеличить объем памяти PHP - никогда не делайте этого ! Это очень плохая практика.
Вместо этого отредактируйте свой settings.php(или, settings.local.phpесли он у вас есть) и вставьте туда следующий код в конце:
ini_set('memory_limit', '512M');
или лучший способ сделать это - отредактировать файл конфигурации PHP ( php.ini) и изменить следующую строку:
memory_limit = 512M ; Maximum amount of memory a script may consume
Если вы не уверены, где ваш php.ini, проверьте:
drush status команда
- или перейдя на
/admin/reports/status/php.
Чтобы узнать, какие страницы / компоненты используют больше всего памяти, у вас есть следующие возможности:
Для получения дополнительной информации, проверьте: