Після запуску 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 у системі розгортання, яка виконує всю підготовку, а потім переміщує всі файли на робочий сервер.
Оновлення
Зараз 2020 рік, і те, як Composer керує своєю пам’яттю, дуже змінилося. Найголовніше, що Composer сам збільшить ліміт пам’яті, якщо виявить занадто низький ліміт. Однак це негайно викликає проблему, коли не вистачає пам'яті на машинах, де встановлено занадто мало пам'яті. Ви можете змусити Composer використовувати менше пам'яті, встановивши змінну середовища, наприклад COMPOSER_MEMORY_LIMIT=512M
, але це створить проблеми, якщо Composer потребує більше пам'яті для коректної роботи.
Моє головне твердження залишається вірним: не запускайте Composer на машинах, у яких встановлено занадто мало пам'яті. Потенційно вам потрібно 1,5 ГБ вільної пам’яті, щоб мати змогу оновити все.
composer install
достатньо. У вашому випадку, використовуючи спільний хостинг, я думаю, ви неcomposer update
почнете працювати, тому єдиний спосіб - купити VPS-хостинг, як Digital Ocean, Linode.