Je dois exécuter la mise à jour du composeur sur mon hébergement, je me connecte donc avec ssh et j'essaie de lancer comand:
composer update
dans le dossier/www où j'ai instalation de laravel et du compositeur
en contact avec mon fournisseur d'hébergement, ils me disent de lancer la commande:
php -d memory_limit=512M composer update
J'exécute cette commande mais je reçois: "Impossible d'ouvrir le fichier: composeur"
Que faire? Quelle est la solution ici?
Lorsque vous exécutez composer update
, le système d'exploitation examinera les chemins d'accès configurés et tentera de localiser un fichier exécutable portant ce nom.
Lors de l'exécution de php composer update
, la chaîne composer
est traitée comme un paramètre de PHP, qui n'est recherché dans aucun des chemins. Vous devez fournir le chemin complet pour pouvoir l'exécuter.
Lancer which composer
vous indiquera où le système d'exploitation trouve l'exécutable du compositeur, puis vous utiliserez simplement le chemin complet dans la commande PHP:
$>which composer
/usr/local/bin/composer
$>php -d memory_limit=512M /usr/local/bin/composer update
...
Notez que 512 Mo pourrait être trop peu. Ma perception est que cela prendra avec plaisir 1 Go ou plus, en fonction du nombre de dépendances que vous utilisez et de la variété de versions que vous autorisez théoriquement, c'est-à-dire que si vous autorisez Symfony ~2.3
, vous obligez Composer à gérer un plus grand nombre de versions possibles par rapport à en utilisant ~2.7
.
Notez également qu'exécuter Composer sur la machine de production n'est pas la meilleure idée. Vous devez avoir accès à Github, peut-être fournir des informations d’accès, disposer des outils VCS et vous pourrez facilement casser votre site si l’un des serveurs d’hébergement distants est hors ligne pendant la mise à jour. Il est préférable d’utiliser Composer sur un système de déploiement qui effectue toute la préparation, puis déplace tous les fichiers sur le serveur de production.
Je suis confronté à des problèmes avec composer car il utilise toute la mémoire disponible, puis le processus est mis à mort (le message de sortie est "Killed")
SO, je cherchais une solution pour limiter l’utilisation de la mémoire par le compositeur.
J'ai essayé (de @Sven réponses)
$ php -d memory_limit=512M /usr/local/bin/composer update
Mais ça n'a pas marché parce que
"Composer augmente en interne le paramètre memory_limit à 1,5 Go."
-> C'est du compositeur du site officiel.
Puis j'ai trouvé une commande qui fonctionne:
$ COMPOSER_MEMORY_LIMIT=512M php composer.phar update
Bien que 512 ne soit pas suffisant!
Source: https://www.agileana.com/blog/composer-memory-limit-troubleshooting/
Vous pouvez changer la valeur memory_limit
dans votre php.ini
Essayez d'augmenter la limite dans votre fichier php.ini
Utilisez -1 pour illimité ou définissez une valeur explicite telle que 2G
memory_limit = -1
Remarque: Composer augmente en interne le paramètre memory_limit à 1,5 Go.
Lire la documentation getcomposer.org