Quando si esegue composer update
, il sistema operativo esaminerà i percorsi configurati e tenterà di individuare un file eseguibile con quel nome.
Durante l'esecuzione php composer update
, la composer
stringa viene trattata come un parametro di PHP, che non viene cercato in alcun percorso. Devi fornire il percorso completo per eseguirlo.
L'esecuzione which composer
ti dirà dove il sistema operativo trova l'eseguibile del compositore, quindi utilizzerai semplicemente il percorso completo nel comando PHP:
$>which composer
/usr/local/bin/composer
$>php -d memory_limit=512M /usr/local/bin/composer update
...
Tieni presente che 512 MB potrebbero essere troppo pochi. La mia percezione è che ci vorrà felicemente 1 GB o più, a seconda del numero di dipendenze che usi e della varietà di versioni che teoricamente permetti, cioè se permetti Symfony ~2.3
, allora fai in modo che Composer si occupi di molte più versioni possibili rispetto all'uso ~2.7
.
Si noti inoltre che eseguire Composer sulla macchina di produzione non è l'idea migliore. Dovresti avere accesso a GitHub, forse fornire le credenziali di accesso, avere gli strumenti VCS installati e interromperai facilmente il tuo sito se uno qualsiasi dei server di hosting remoto è offline durante l'aggiornamento. È un'idea migliore utilizzare Composer su un sistema di distribuzione che esegue tutta la preparazione e quindi sposta tutti i file sul server di produzione.
Aggiornare
È l'anno 2020 ora e il modo in cui Composer gestisce la sua memoria è cambiato parecchio. La cosa più importante è che Composer aumenterà il limite di memoria da solo se incontra un limite impostato troppo basso. Questo però fa scattare immediatamente il problema dell'esaurimento della memoria su macchine che hanno troppa poca memoria installata. Puoi fare in modo che Composer utilizzi meno memoria impostando la variabile d'ambiente come COMPOSER_MEMORY_LIMIT=512M
, ma questo creerà problemi se Composer avesse bisogno di più memoria per funzionare correttamente.
Il mio punto principale rimane vero: non eseguire Composer su macchine con poca memoria installata. Potenzialmente hai bisogno di 1,5 GB di memoria libera per poter aggiornare tutto.
composer install
è sufficiente. Nel tuo caso, mentre utilizzi un hosting condiviso, penso che noncomposer update
funzionerai, quindi l'unico modo è acquistare un hosting VPS come Digital Ocean, Linode.