it-swarm.com.ru

Composer обновить ограничение памяти

Мне нужно запустить composer update на моем хостинге, поэтому я вхожу в систему с помощью ssh и пытаюсь запустить comand:

composer update

в папке/www, где у меня есть laravel и ​​composer установка

но я получаю ошибку: enter image description here

в контакте с моим хостинг-провайдером они говорят мне выполнить команду:

php -d memory_limit=512M composer update

Я запускаю эту команду, но получаю: "Не удалось открыть файл: композитор"

Что делать? Какой здесь солютон?

10
Andrew

Когда вы запускаете composer update, ОС просматривает настроенные пути и пытается найти исполняемый файл с этим именем.

При запуске php composer update строка composer обрабатывается как параметр для PHP, который не ищется ни в каких путях. Вы должны предоставить полный путь для его запуска.

Запуск which composer скажет вам, где ОС находит исполняемый файл компоновщика, а затем вы просто используете полный путь в команде PHP:

$>which composer
/usr/local/bin/composer

$>php -d memory_limit=512M /usr/local/bin/composer update
...

Обратите внимание, что 512 МБ может быть слишком мало. Я считаю, что он с радостью займет 1 ГБ или более, в зависимости от количества зависимостей, которые вы используете, и разнообразия версий, которые вы теоретически разрешаете, т.е. если вы разрешите Symfony ~2.3, то вы заставите Composer работать с гораздо большим количеством возможных версий по сравнению с используя ~2.7.

Также обратите внимание, что запуск Composer на рабочей машине - не лучшая идея. Вам потребуется доступ к Github, возможно, предоставить учетные данные для доступа, установить инструменты VCS, и вы легко сломаете свой сайт, если какой-либо из серверов удаленного хостинга будет отключен во время вашего обновления. Лучше использовать Composer в системе развертывания, которая выполняет всю подготовку, а затем перемещает все файлы на рабочий сервер.

28
Sven

Я сталкиваюсь с проблемами с composer, потому что он потребляет всю доступную память, а затем, процесс убит (на самом деле, выходное сообщение "Killed")

Итак, я искал решение для ограничения использования памяти композитора.

Я пытался (из ответов @Sven)

$ php -d memory_limit=512M /usr/local/bin/composer update

Но это не сработало, потому что 

«Композитор внутренне увеличивает memory_limit до 1.5G.»

-> То из официального сайта композитора.

Затем я нашел команду, которая работает: 

$ COMPOSER_MEMORY_LIMIT=512M php composer.phar update

Хотя 512 не достаточно!

Источник: https://www.agileana.com/blog/composer-memory-limit-trou устранение неполадок/

1
Diego Favero

Вы можете изменить значение memory_limit в вашем php.ini

Попробуйте увеличить лимит в вашем файле php.ini

Используйте -1 для неограниченного или определить явное значение, как 2G

memory_limit = -1

Примечание: Composer внутренне увеличивает memory_limit до 1.5G.

Прочитайте документацию getcomposer.org

1
Vladimir Salguero