Composer: Allowed memory size exhausted при установке пакетов

  • Обновлено
  • Чтение ≈ 2 минуты

Краткий ответ

При нехватке памяти во время Composer проверьте CLI memory_limit и доступную RAM, установите зависимости через composer install с имеющимся lock-файлом и лишь временно ослабляйте лимит на контролируемой машине.

В этой статье
  1. Что означает ошибка
  2. Причины и признаки
  3. Пошаговое решение
  4. Проверка результата

#Что означает ошибка

Сообщение
Allowed memory size exhausted

Отключение ограничения памяти Composer допустимо только на контролируемой машине с достаточной RAM; в продакшене предпочтительно composer install по существующему composer.lock.

#Причины и признаки

Возможная причинаКак узнатьЧто делать
Малый лимитComposer сообщает о memory_limit в CLIВременно поднять лимит под контролем RAM
Много пакетовРазрешение зависимостей потребляет много памятиИспользовать install и согласованный lock
Старый ComposerВерсия Composer устарелаОбновить штатным способом
Нет swapLinux завершает процесс по OOMУвеличить доступную RAM или выделить машину сборки

#Пошаговое решение

  1. Определите фактическую нехватку памяти ComposerОткройте терминал в корне PHP-проекта и выполните php --version, php -i | grep memory_limit (Linux/macOS) и composer --version. Если Composer действительно выводит Allowed memory size exhausted, найдите этап (разрешение зависимостей, распаковка, выполнение скрипта). Различайте лимит PHP и нехватку физической RAM, при которой процесс завершается системой. Не удаляйте composer.lock — он фиксирует проверенные версии пакетов.
  2. Запустите проверенную команду с временным лимитомЕсли на сервере достаточно свободной RAM, в терминале macOS/Linux выполните COMPOSER_MEMORY_LIMIT=-1 composer install; в PowerShell — $env:COMPOSER_MEMORY_LIMIT="-1"; composer install. Значение -1 отключает лимит PHP для Composer только в этом процессе и потенциально позволяет расходовать всю память, поэтому контролируйте системную нагрузку. Используйте install для проекта с composer.lock, а не update ради обхода ошибки.
  3. Проверьте версии и возможный конфликт зависимостейОбновите Composer поддерживаемым способом (например, composer self-update, если установленный способ допускает) и проверьте совместимость с текущим PHP. При update или сложном разрешении зависимостей рассмотрите запуск сборки на отдельной машине с большим объёмом памяти, затем перенос согласованного composer.lock и артефактов. Swap добавляйте только по правилам эксплуатации сервера: это не замена RAM и может замедлить систему.
  4. Проверьте установку и верните обычный режимПовторите composer install и убедитесь, что зависимости завершили установку, затем выполните composer check-platform-reqs для платформенных требований. В PowerShell удалите временную переменную Remove-Item Env:COMPOSER_MEMORY_LIMIT, если задавали её для текущей сессии. Если процесс завершился кодом 137 или журнал сообщает OOM, выясняйте системный недостаток памяти, а не увеличивайте бесконечно лимит PHP.

#Проверка результата

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.