Quando você o executa composer update
, o sistema operacional examina os caminhos configurados e tenta localizar um arquivo executável com esse nome.
Quando em execução php composer update
, a composer
string é tratada como um parâmetro para o PHP, que não é pesquisado em nenhum caminho. Você deve fornecer o caminho completo para executá-lo.
A execução which composer
dirá onde o sistema operacional encontra o executável do composer e, em seguida, basta usar o caminho completo no comando PHP:
$>which composer
/usr/local/bin/composer
$>php -d memory_limit=512M /usr/local/bin/composer update
...
Observe que 512 MB pode ser muito pouco. Minha percepção é que felizmente levará 1 GB ou mais, dependendo do número de dependências que você usa e da variedade de versões que você permite teoricamente, ou seja, se você permitir o Symfony ~2.3
, então você fará o Composer lidar com muito mais versões possíveis em comparação com o uso ~2.7
.
Observe também que executar o Composer na máquina de produção não é a melhor ideia. Você teria que ter acesso ao Github, talvez fornecer credenciais de acesso, ter ferramentas VCS instaladas, e você facilmente quebrará seu site se algum dos servidores de hospedagem remota estiver offline durante a atualização. É uma ideia melhor usar o Composer em um sistema de implantação que faz toda a preparação e, em seguida, move todos os arquivos para o servidor de produção.
Atualizar
É o ano de 2020 agora, e a maneira como o Composer gerencia sua memória mudou um pouco. O mais importante é que o Composer aumentará o limite de memória sozinho se encontrar um limite muito baixo. No entanto, isso desencadeia imediatamente o problema de ficar sem memória em máquinas com muito pouca memória instalada. Você pode fazer o Composer usar menos memória configurando a variável de ambiente como COMPOSER_MEMORY_LIMIT=512M
, mas isso criará problemas se o Composer precisar de mais memória para operar corretamente.
Meu ponto principal permanece verdadeiro: não execute o Composer em máquinas que tenham pouca memória instalada. Você precisa potencialmente de 1,5 GB de memória livre para atualizar tudo.
composer install
basta. No seu caso, ao usar uma hospedagem compartilhada, acho que você não vai conseguircomposer update
trabalhar, então a única maneira é comprar uma hospedagem VPS como Digital Ocean, Linode.