PHP из-за нехватки памяти в composer не отражает настройки memory_limit в php.ini

Когда я пытаюсь установить пакет в Contao с помощью клиента Composer, я получаю сообщение об ошибке:

Неустранимая ошибка: допустимый объем памяти 1073741824 байта исчерпан (попытка выделить 134217728 байтов) в phar: // D: /wamp/www/myproject/composer/composer.phar/src/Composer/DependencyResolver/Solver.php в строке 220

я действительно смущенный. Мой предел памяти PHP установлен на 512M. phpinfo() подтверждает это. Но 1073741824 это гигабайт! И все же этого недостаточно, как будто скрипт полностью игнорирует ограничение памяти PHP (где?) И даже гигабайта недостаточно!?!?

Что я могу сделать? Я читал о RLimitMEM, но нигде не могу найти такую ​​настройку на WAMPServer.

1

Решение

Рекомендуется использовать так называемые отдельный режим для композитора клиента. Если у вас есть подходящая среда CLI, вы будете иметь нет предел памяти и нет максимальное время исполнения. Также оба эти ограничения могут контролироваться с помощью аргументов командной строки.

Однако это работает не во всех средах хостинга. Смотрите эту запись в вики для более подробной информации: https://github.com/contao-community-alliance/composer-client/wiki/Execution-modes

1

Другие решения

Я нашел ответ.

Я искал проект для memory_limit и обнаружил, что клиент composer пытается установить ограничение памяти в system/modules/!composer/src/Runtime.php Вот эта строка: @ini_set('memory_limit', '1024M'); Я изменил это на @ini_set('memory_limit', '2048M'); существенно удвоив доступную память, и это сработало.

0