web-dev-qa-db-fra.com

Comment exécuter le compositeur de n'importe où?

Je viens juste d'installer composer dans mon dossier /usr/bin. Ainsi, lorsque j'exécute ce dossier, php composer.phar, je reçois les informations d'aide relatives à composer. Mais, lorsque j'essaie de lancer le même depuis un autre dossier, je reçois Could not open input file: composer.phar

Comment appeler php composer.phar de partout sans problèmes?

66
ziiweb

composer.phar peut être exécuté seul, inutile de le préfixer par php. Cela devrait résoudre votre problème (être dans la différence de $ PATH de bash et include_path de php).

49
Maerlyn

Vous pouvez faire un installation globale :

Étant donné que Composer fonctionne avec le répertoire de travail actuel, il est possible de l'installer dans l'ensemble du système.

  1. Allez dans un répertoire de votre chemin tel que cd /usr/local/bin
  2. Obtenir un compositeur curl -sS https://getcomposer.org/installer | php
  3. Rend le phar exécutable chmod a+x composer.phar
  4. Accédez au répertoire du projet cd /path/to/my/project
  5. Utilisez Composer comme vous le feriez normalement composer.phar install
  6. Vous pouvez éventuellement renommer le composer.phar en composer pour faciliter les choses

Mise à jour: Parfois, vous ne pouvez pas ou ne voulez pas télécharger à _/usr/local/bin_ (certains ont des problèmes de permissions d'utilisateur ou d'accès restreint), dans ce cas, vous pouvez essayer ceci

  1. Terminal ouvert
  2. _curl -sS http://getcomposer.org/installer | php -- --filename=composer_
  3. _chmod a+x composer_
  4. _Sudo mv composer /usr/local/bin/composer_

Mise à jour 2: Pour Windows 10 et PHP 7, je recommande ce tutoriel . Personnellement, j'ai installé version Visual C++ redistribuable pour Visual Studio 2017 x64 avant PHP 7.3 version VC15 x64 Non Thread Safe (vérifiez quelles versions des deux versions dans PHP pour Windows = page, menu latéral). Lisez attentivement et la section enable-extensions pourrait être différente (_extension=curl_ au lieu de _extension=php_curl.dll_). Fonctionne comme un charme, bonne chance!

101
quantme

Comment exécuter Composer From Anywhere (sur MacOS X) via Terminal

Contexte:

En fait, sur le site Web getComposer, il est clairement indiqué que, installez Composer à l’aide de la commande curl suivante,

curl -sS https://getcomposer.org/installer |php

Et il fait certainement ce qu'il est censé faire. Et puis il est dit de déplacer composer.phar vers le répertoire / usr/local/bin/composer, puis composer sera disponible globalement, en utilisant la ligne de commande suivante dans le terminal!

mv composer.phar /usr/local/bin/composer

Question:

Donc, le problème qui me conduit à Google à ce sujet est lorsque j’ai exécuté la ligne ci-dessus dans Mac OS X Terminal, c’est ce qu’il a dit, Permission denied. Comme suit:

mv: rename composer.phar to /usr/local/bin/composer: Permission denied

Réponse:

Suivre link m'a conduit à la solution comme un charme et j'en suis reconnaissant. La chose que je venais juste de manquer était la commande Sudo avant la ligne de commande "Move" indiquée ci-dessus . Maintenant, ma commande Move est la suivante:

Sudo mv composer.phar /usr/local/bin/composer
Password:

Il vous invite directement à vous authentifier et à voir si vous êtes autorisé. Donc, si vous entrez un mot de passe valide, le déplacement sera effectué et vous pourrez simplement vérifier si composer est installé de manière globale en utilisant la ligne suivante.

composer about

J'espère que cette réponse vous a aidé à élargir votre vision et enfin à résoudre votre problème.

À votre santé!

21
Randika Vishman

Commencez par installer le compositeur comme indiqué dans le composeur documentation d'installation . Je viens d'ajouter ici pour référence.

curl -sS https://getcomposer.org/installer | php

puis déplacez le fichier vers/usr/local/bin.

Sudo mv composer.phar /usr/local/bin/composer

Essayez d'exécuter composer -V. Si vous obtenez une sortie telle que Composer version suivie du numéro de version, le composeur est correctement installé.

Si vous obtenez une sortie telle que composer: command not found signifie que vous utilisez la commande suivante pour créer un alias pour le compositeur. Donc, il sera exécuté globalement. 

alias composer='/usr/local/bin/composer'

Maintenant, si vous exécutez composer -V signifie que vous obtiendrez la sortie sous la forme Composer Version suivie du numéro de version.

J'espère que cela aidera quelqu'un.

13
Mahendran Sakkarai

Il suffit d’exécuter cette commande pour installer composer globalement 

curl -sS https://getcomposer.org/installer | Sudo php -- --install-dir=/usr/local/bin --filename=composer
5
Tahir Yasin

Il suffit de le déplacer dans le dossier /usr/local/bin et de supprimer l'extension.

Sudo mv composer.phar /usr/local/bin/composer
4
LeoSarli

Pour MAC et LINUX, suivez la procédure suivante:

Ajoutez le répertoire où se trouve composer.phar CHEMIN:

export PATH=$PATH:/yourdirectory

puis renommez composer.phar en compositeur:

mv composer.phar composer
2
JedatKinports

Pour l'exécuter depuis un autre emplacement, vous pouvez utiliser le programme de composition fourni avec le programme. C'est fondamentalement un script bash. Si vous ne l'avez pas, vous pouvez en créer un en copiant simplement le code suivant dans un fichier texte

#!/bin/sh

dir=$(d=$(dirname "$0"); cd "$d" && pwd)

if command -v 'cygpath' >/dev/null 2>&1; then
  dir=$(cygpath -m $dir);
fi

dir=$(echo $dir | sed 's/ /\ /g')
php "${dir}/composer.phar" $*

Enregistrez ensuite le fichier dans votre dossier bin et nommez-le compositeur sans extension de fichier. Ajoutez ensuite le dossier bin à la variable d’environnement f

Cela peut être dû en partie au système d'exploitation de votre serveur. J'ai récemment effectué une migration vers un nouvel environnement d'hébergement sous Ubuntu. L'ajout de cet alias alias composer="/path/to/your/composer" à .bashrc ou .bash_aliases n'a pas fonctionné au début pour deux raisons:

Le serveur exécutait csh, pas bash, par défaut. Pour vérifier s'il s'agit d'un problème dans votre cas, exécutez echo $0. Si ce qui est retourné est -csh, vous voudrez le changer en bash, car certains processus exécutés par Composer échoueront avec csh/tcsh .

Pour le changer, vérifiez d'abord si bash est disponible sur votre serveur en exécutant cat /etc/shells. Si, dans la liste renvoyée, vous voyez bin/bash, vous pouvez modifier la valeur par défaut en bash en exécutant chsh -s /bin/csh.

Maintenant, à ce stade, vous devriez pouvoir exécuter Composer, mais normalement, sous Ubuntu, vous devrez charger le script à chaque session en recherchant vos scripts Bash en exécutant source ~/.bashrc ou source ~/.bash_profile. En effet, dans la plupart des cas, Ubuntu ne chargera pas votre script Bash, car .profile est chargé en tant que script par défaut.

Pour charger vos scripts Bash lorsque vous ouvrez une session, essayez de l'ajouter à votre fichier .profile (si votre script Bash est .bashrc - modifiez-le en conséquence si .bash_profile ou autre):

if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

Pour tester, fermez votre session et rechargez. Si cela fonctionne correctement, exécuter composer -v ou which composer devrait se comporter comme prévu.

0
karolus

Vous pouvez faire une installation globale simple pour l'exécuter de n'importe où

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Le https://getcomposer.org/doc/00-intro.md#globally site Web recommande cette méthode. Cela a bien fonctionné sous Ubuntu 14.04 pas de problème . De cette façon, vous n'avez pas besoin de faire un exemple avec php compomser.phar show, vous ne faites que composer show, dans n'importe quel répertoire avec lequel vous travaillez.

0
user3257693