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?
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).
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.
- Allez dans un répertoire de votre chemin tel que
cd /usr/local/bin
- Obtenir un compositeur
curl -sS https://getcomposer.org/installer | php
- Rend le phar exécutable
chmod a+x composer.phar
- Accédez au répertoire du projet
cd /path/to/my/project
- Utilisez Composer comme vous le feriez normalement
composer.phar install
- Vous pouvez éventuellement renommer le
composer.phar
encomposer
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
curl -sS http://getcomposer.org/installer | php -- --filename=composer
_chmod a+x composer
_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!
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é!
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.
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
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
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
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.
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.