Ограничение памяти обновления композитора
Мне нужно запустить обновление composer на моем хостинге, поэтому я вхожу в систему по ssh и пытаюсь запустить команду:
composer update
Внутри папки /www, где у меня есть установка laravel и composer
В контакте с моим хостинг-провайдером они говорят мне выполнить команду:
php -d memory_limit=512M composer update
Я запускаю эту команду, но получаю: "Не удалось открыть файл: композитор"
Что делать? В чем здесь заключается решение?
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 в системе развертывания, которая выполняет всю подготовку, а затем перемещает все файлы на рабочий сервер.