Ограничение памяти обновления композитора


Мне нужно запустить обновление composer на моем хостинге, поэтому я вхожу в систему по ssh и пытаюсь запустить команду:

composer update

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

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

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

php -d memory_limit=512M composer update

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

Что делать? В чем здесь заключается решение?

Author: Andrew, 2016-03-20

1 answers

При запуске composer update ОС просмотрит настроенные пути и попытается найти исполняемый файл с таким именем.

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

Запуск which composer сообщит вам, где ОС находит исполняемый файл 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 в системе развертывания, которая выполняет всю подготовку, а затем перемещает все файлы на рабочий сервер.

 16
Author: Sven, 2016-03-19 22:04:48