wake-up-neo.com

Wie kann ich den Composer von überall aus ausführen?

Ich habe Composer gerade in meinem /usr/bin-Ordner installiert. Wenn ich aus diesem Ordner php composer.phar starte, erhalte ich die Hilfeinformationen zum Composer. Aber wenn ich versuche, dasselbe aus einem anderen Ordner auszuführen, bekomme ich Could not open input file: composer.phar

Wie rufe ich php composer.phar von überall ohne Probleme auf?

66
ziiweb

composer.phar kann alleine ausgeführt werden, es ist nicht erforderlich, php das Präfix zu geben. Dies sollte Ihr Problem lösen (im Unterschied zu $ ​​PATH von bash und include_path von php).

49
Maerlyn

Sie können eine globale Installation durchführen :

Da Composer mit dem aktuellen Arbeitsverzeichnis arbeitet, ist es möglich, es systemweit zu installieren.

  1. Wechsle in ein Verzeichnis in deinem Pfad wie cd /usr/local/bin
  2. Composer curl -sS https://getcomposer.org/installer | php
  3. Den phar ausführbar machen chmod a+x composer.phar
  4. In ein Projektverzeichnis wechseln cd /path/to/my/project
  5. Verwenden Sie Composer wie gewohnt composer.phar install
  6. Optional können Sie composer.phar zu umbenennen composername __ um es einfacher zu machen

Update : Manchmal können oder wollen Sie nicht um _/usr/local/bin_ herunterladen (einige haben Probleme mit Benutzerrechten oder eingeschränktem Zugriff), In diesem Fall können Sie dies versuchen

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

Update 2 : Für Windows 10 und PHP 7 empfehle ich dieses Tutorial . Persönlich habe ich Visual C++ Redistributable für Visual Studio 2017 x64 vor PHP 7.3 VC15 x64 Non Thread Safe-Version installiert (überprüfen Sie, welche Versionen von beiden in PHP für Windows enthalten sind Seite, Seitenmenü). Lesen Sie die Informationen sorgfältig durch und möglicherweise kann der Abschnitt mit den Aktivierungserweiterungen abweichen (_extension=curl_ anstelle von _extension=php_curl.dll_). Funktioniert wie ein Zauber, viel Glück!

101
quantme

So starten Sie Composer From Anywhere (unter MacOS X) über das Terminal

Hintergrund:

In der getComposer-Website wird eindeutig angegeben, dass der Composer mit dem folgenden Befehl curl installiert wird:

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

Und es tut auf jeden Fall, was es tun soll. Dann heißt es, die composer.phar in das Verzeichnis / usr/local/bin/composer zu verschieben und dann ist der Composer global verfügbar, indem Sie die folgende Befehlszeile im Terminal verwenden!

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

Frage:

Das Problem, das mich zu Google führt, ist also, als ich die obige Zeile in Mac OS X Terminal ausgeführt habe. Sie sagte, Permission verweigert. Wie folgt:

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

Antworten:

Das Folgen von link führte mich zur Lösung wie ein Zauber und ich bin dem dankbar. Was ich gerade vermisst habe, war Sudo vor der oben genannten "Move" -Befehlszeile . Nun lautet mein Move-Befehl wie folgt:

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

Sie werden direkt dazu aufgefordert, sich zu authentifizieren und zu sehen, ob Sie autorisiert sind. Wenn Sie also ein gültiges Passwort eingeben, wird das Verschieben ausgeführt. Sie können einfach überprüfen, ob Composer global installiert ist, indem Sie die folgende Zeile verwenden.

composer about

Ich hoffe, diese Antwort hat Ihnen geholfen, Ihre Sicht zu erweitern und Ihr Problem endgültig zu lösen.

Prost!

21
Randika Vishman

Installieren Sie zuerst den Composer wie in der Composer Installationsdokumentation erwähnt. Ich habe hier nur als Referenz hinzugefügt.

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

und verschieben Sie die Datei nach '/ usr/local/bin'.

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

Versuchen Sie, composer -V auszuführen. Wenn Sie eine Ausgabe wie Composer version gefolgt von der Versionsnummer erhalten, wird der Composer erfolgreich installiert.

Wenn Sie eine Ausgabe wie composer: command not found erhalten, verwenden Sie den folgenden Befehl, um einen Alias ​​für den Komponisten zu erstellen. Es wird also global ausgeführt. 

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

Wenn Sie composer -V ausführen, erhalten Sie die Ausgabe als Composer Version gefolgt von der Versionsnummer.

Hoffe das hilft jemandem.

13

Führen Sie einfach diesen Befehl aus, um Composer global zu installieren 

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

Verschieben Sie es einfach in den /usr/local/bin-Ordner und entfernen Sie die Erweiterung

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

Für MAC und LINUX verwenden Sie das folgende Verfahren:

Fügen Sie das Verzeichnis, in dem sich composer.phar befindet, zu Ihrem PFAD hinzu:

export PATH=$PATH:/yourdirectory

und benennen Sie dann composer.phar in composer um:

mv composer.phar composer
2
JedatKinports

Für die Ausführung von einem anderen Ort aus können Sie das Composer-Programm verwenden, das mit dem Programm geliefert wird. Es ist im Grunde ein Bash-Skript. Wenn Sie es nicht haben, können Sie einen erstellen, indem Sie einfach den folgenden Code in eine Textdatei kopieren

#!/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" $*

Speichern Sie dann die Datei in Ihrem bin-Ordner und nennen Sie ihn ohne Dateierweiterung Composer. Fügen Sie dann den Ordner "bin" zu Ihrer Umgebungsvariablen hinzu. F

Möglicherweise liegt dies daran, dass das Betriebssystem Ihres Servers ausgeführt wird. Ich habe kürzlich eine Migration zu einer neuen Hosting-Umgebung mit Ubuntu durchgeführt. Das Hinzufügen dieses Alias ​​alias composer="/path/to/your/composer" zu .bashrc oder .bash_aliases funktionierte aus zwei Gründen zunächst nicht:

Der Server führte standardmäßig csh aus, nicht bash. Um zu prüfen, ob dies in Ihrem Fall ein Problem darstellt, führen Sie echo $0 aus. Wenn das, was zurückgegeben wird, -csh ist, sollten Sie es in bash ändern, da einige von Composer ausgeführte Prozesse mit csh/tcsh fehlschlagen.

Um dies zu ändern, prüfen Sie zunächst, ob auf Ihrem Server bash verfügbar ist, indem Sie cat /etc/shells ausführen. Wenn in der zurückgegebenen Liste bin/bash angezeigt wird, können Sie den Standardwert in bash ändern, indem Sie chsh -s /bin/csh ausführen.

An diesem Punkt sollten Sie jetzt Composer ausführen können. Normalerweise müssen Sie jedoch unter Ubuntu das Skript bei jeder Sitzung laden, indem Sie Ihre Bash-Skripts durch Ausführen von source ~/.bashrc oder source ~/.bash_profile laden. Dies liegt daran, dass Ubuntu Ihr Bash-Skript in den meisten Fällen nicht lädt, da es .profile als Standard-Skript lädt.

Um Ihre Bash-Skripts zu laden, wenn Sie eine Sitzung öffnen, versuchen Sie, dies zu Ihrem .profile hinzuzufügen (dies ist der Fall, wenn Ihr Bash-Skript .bashrc ist - ändern Sie dies entsprechend.

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

Schließen Sie Ihre Sitzung und laden Sie sie erneut, um sie zu testen. Wenn es richtig funktioniert, sollte sich composer -v oder which composer wie erwartet verhalten.

0
karolus

Sie können eine einfache globale Installation ausführen, um sie von überall aus auszuführen

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

Die Website https://getcomposer.org/doc/00-intro.md#globally empfiehlt dies. Funktioniert gut mit Ubuntu 14.04, kein Problem ..__ Auf diese Weise brauchen Sie nicht als Beispiel php compomser.phar show zu tun, sondern tun nur composer show in jedem Verzeichnis, mit dem Sie arbeiten.

0
user3257693