Для Composer требуется исчерпание памяти. PHP Неустранимая ошибка: допустимый размер памяти 1610612736 байт исчерпан
Я пытаюсь добавить HWIOAuthBundle в свой проект, выполнив следующую команду.
composer require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
HWIOAuthBundle github: https://github.com/hwi/HWIOAuthBundle
Когда я пытаюсь запустить composer require, я получаю сообщение об ошибке памяти.
Использование версии ^[email protected] для hwi/oauth-bundle Использование версии ^[email protected] для php-http/guzzle6-adapter Использование версии ^[email protected] для php-http/httplug-bundle./composer.json был обновлен Загрузка в репозитории composer информации о пакете Обновление зависимостей (включая require-dev)
Неустранимая ошибка PHP: допустимый объем памяти 1610612736 байт исчерпан (попытался выделить 67108864 байт) в phar:///usr/local/Cellar/composer/1.4.2/libexec/composer.phar/src/Composer/DependencyResolver/Solver. PHP на линии 220
Неустранимая ошибка: допустимый объем памяти 1610612736 байт исчерпан (попытался выделить 67108864 байт) в phar:///usr/local/Cellar/composer/1.4.2/libexec/composer.phar/src/Composer/DependencyResolver/Solver.php на линии 220
Я попытался установить memory_limit на 2G в моем файле php.ini, но не сработало. Я нашел свой php.ini, запустив php -i | grep php.ini
php -i | grep php.ini
Ответы
Ответ 1
Чтобы получить текущее значение memory_limit, запустите:
php -r "echo ini_get('memory_limit').PHP_EOL;"
Попробуйте увеличить лимит в файле php.ini
(например, /etc/php5/cli/php.ini
для подобных Debian систем):
; Use -1 for unlimited or define an explicit value like 2G
memory_limit = -1
Или вы можете увеличить лимит с помощью аргумента командной строки:
php -d memory_limit=-1 composer.phar require hwi/oauth-bundle php-http/guzzle6-adapter php-http/httplug-bundle
Чтобы загрузить загруженные файлы php.ini, попробуйте:
php --ini
Ответ 2
Просто установите memory_limit
указав полный маршрут вашего файла composer.phar, и обновите, в моем случае, командой:
php -d memory_limit=-1 C:/wamp64/composer.phar update
Ответ 3
Другое решение из руководства:
Composer также учитывает ограничение памяти, определяемое переменной среды COMPOSER_MEMORY_LIMIT
:
COMPOSER_MEMORY_LIMIT=-1 composer.phar <...>
Или в моем случае
export COMPOSER_MEMORY_LIMIT=-1
composer <...>
Ответ 4
Недавно было установлено, что Composer потребляет много ресурсов ЦП и памяти для пакетов с большим количеством исторических тегов. Смотрите композитор/композитор # 7577
Обойти эту проблему можно с помощью symfony/flex
или https://github.com/rubenrua/symfony-clean-tags-composer-plugin
composer global require rubenrua/symfony-clean-tags-composer-plugin
Ответ 5
В моем случае я пытался потребовать этот пакет, и я получал PHP Fatal error: Allowed memory size of
.
Мне было легко работать таким образом, и вам не нужно обновлять файл INI PHP.
пример: COMPOSER_MEMORY_LIMIT=-1 composer require huddledigital/zendesk-laravel
Надеюсь, это поможет кому-то.
Ответ 6
Вот еще один способ решить эту проблему под Windows, если вы используете Wampserver. На самом деле, на уровне wampserver есть два файла php.ini: файл PHP, который можно найти в каталоге C:\wamp64\bin\php\phpx.xx\php.ini, и файл Apache, который можно находится по адресу C:\wamp64\bin\apache\apachex.xx\bin\php.ini. Оба этих файла имеют параметр memory_limit. Поэтому, чтобы быть уверенным в решении этой проблемы, лучше установить параметр memory_limit = -1 в обоих файлах одновременно.
Ответ 7
Работал с той же проблемой.. если вы не хотите постоянно изменять ограничение памяти, вы можете сделать это временно, как это (работает на OSX)
php -d memory_limit=512M /usr/local/bin/composer update
Ответ 8
экспорт COMPOSER_MEMORY_LIMIT = -1
Это решило все мои проблемы
СПАСИБО
Ответ 9
Вы можете использовать определенную версию php при запуске Composer
Если, как и я, по какой-то причине вы используете PHP 32 бита, даже если ваш компьютер 64-битный, это всегда будет ограничивать объем памяти, выделяемый Composer. Я решил свою проблему следующим образом:
- Установите 64-битную версию php где-нибудь на вашем компьютере (скажем, в C: /php64)
- В composer (используя cygwin в моем случае) запустите:
COMPOSER_MEMORY_LIMIT=-1 C:/php64/php.exe ../composer.phar update