Когда я пытаюсь установить пакет в 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.
Рекомендуется использовать так называемые отдельный режим для композитора клиента. Если у вас есть подходящая среда CLI, вы будете иметь нет предел памяти и нет максимальное время исполнения. Также оба эти ограничения могут контролироваться с помощью аргументов командной строки.
Однако это работает не во всех средах хостинга. Смотрите эту запись в вики для более подробной информации: https://github.com/contao-community-alliance/composer-client/wiki/Execution-modes
Я нашел ответ.
Я искал проект для memory_limit
и обнаружил, что клиент composer пытается установить ограничение памяти в system/modules/!composer/src/Runtime.php
Вот эта строка: @ini_set('memory_limit', '1024M');
Я изменил это на @ini_set('memory_limit', '2048M');
существенно удвоив доступную память, и это сработало.