Beim Ausführen von Composer wird Folgendes zurückgegeben: "Eingabedatei konnte nicht geöffnet werden: composer.phar"

212

Ich bin neu in symfony2 und lese symblog . Im dritten Kapitel habe ich beim Versuch mit Daten-Fixtures den Befehl ausprobiert:

php composer.phar update

aber ich habe den Fehler bekommen:

Could not open input file: composer.phar

Also googelte ich ein wenig und versuchte es

php composer.phar install

aber immer noch den gleichen Fehler bekommen. Bitte führen Sie den Umgang mit diesem Komponisten durch, um neue Erweiterungen oder Bundles wie Daten-Fixtures mit wamp in symfony2 zu installieren.

user3291745
quelle
Hast du composer.phar an der richtigen Stelle installiert?
hizbul25
Ich hatte dieses Problem beim Versuch, Composer global einzurichten. Am Ende habe ich alias composer="php C:\\\\Users\\\\MyUsername\\\\bin\\\\composer.phar"meiner .bashrc- Datei hinzugefügt . Hässlich, aber funktioniert.
Batandwa
14
Lösung für Windows-Benutzer ist unten von @Jamil, müssen Sie Composer anstelle von PHP Composer.phar
Carlos487
Sie brauchen .phar nicht, wenn Sie Composer bereits installiert haben. Führen Sie einfach das Composer-Update aus
meddy

Antworten:

278

Wenn Sie Anweisungen wie diese befolgt haben:

https://getcomposer.org/doc/00-intro.md

Welche sagen Ihnen, um Folgendes zu tun:

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

Dann ist es wahrscheinlich, dass Sie wie ich diese Befehle ausgeführt haben und den nächsten Teil der Seite nicht gelesen haben, in dem Sie aufgefordert wurden, nicht mehr auf composer.phar mit dem vollständigen Namen zu verweisen und es als ausführbare Datei abzukürzen (die Sie gerade mit mv umbenannt haben) Befehl). Also das:

$ php composer.phar update friendsofsymfony/elastica-bundle

Wird dies:

$ composer update friendsofsymfony/elastica-bundle
Chris Moschini
quelle
37
Beachten Sie, dass Sie bei korrekter Installation (unter Windows) und Hinzufügen zur PATH-Variablen Ihrer Umgebung nicht php composer.phar eingeben und stattdessen composer verwenden müssen.
AturSams
@ Chris Moschini Scheint, du kannst mir helfen. Schauen Sie sich das an: stackoverflow.com/questions/52091827/…
Success Man
Müssen wir Composer in jedem Projekt installieren, habe ich den Composer mit seinem Installer installiert
Sushant Bhargav
151

Ich hatte das gleiche Problem unter Windows und verwendete eine andere Lösung. Ich habe die Installationsdatei Composer_Setup.exe verwendet, die von der Composer-Website bereitgestellt wird, und sie führt eine globale Installation durch.

Stellen Sie nach der Installation sicher, dass Ihre PATH-Variable auf das Verzeichnis verweist, in dem composer.phar gespeichert ist. Dies ist normalerweise der FallC:\ProgramData\ComposerSetup\bin ( ProgramData kann ein verstecktes Verzeichnis sein ). Es versteht sich von selbst, aber stellen Sie auch sicher, dass sich die ausführbare PHP-Datei auch in Ihrer PATH-Variablen befindet.

Sie können dann einfach anrufen

composer install

anstatt

php composer.phar install
Der unbekannte Entwickler
quelle
6
Das funktioniert endlich, ich verstehe nicht, warum ich diese Informationen nirgendwo auf der Komponisten-Website finden kann ....
Henning Fischer
4
Danke dir! Dies
Nick Rolando
Seit dieser Antwort sind mehr als zwei Jahre vergangen, und die Dokumente wurden immer noch nicht aktualisiert, sodass ich das gleiche Problem hatte. Vielen Dank!
Andy Mercer
105

Hintergrund

Es ist hilfreich zu wissen, dass es zwei Möglichkeiten gibt, Composer zu installieren (und zu verwenden): lokal als Datei in Ihrem Projektverzeichnis oder global als systemweite ausführbare Datei.

Die lokale Installation von Composer bedeutet einfach, dass Sie eine Datei herunterladen ( composer.phar- das ist a PHP-Archiv ) in Ihr Projektverzeichnis . Sie müssen es für jedes Projekt herunterladen, für das Composer erforderlich ist.

Wie eine normale PHP-Datei, die Sie in der Befehlszeile ausführen möchten, müssen Sie sie mit PHP ausführen:

php composer.phar update

Was sagt im Grunde die phpausführbare Datei , die Datei auszuführen composer.pharmitupdate als Argumente.

Wenn Sie es jedoch global installieren , können Sie Composer selbst ausführbar machen, sodass Sie es ohne PHP aufrufen können (und es nicht für jedes Projekt herunterladen müssen). Mit anderen Worten, Sie können Komponisten wie folgt verwenden:

composer update

Da Sie ausführen php composer.phar updateund den Fehler erhalten Could not open input file: composer.phar, haben Sie wahrscheinlich nichtcomposer.phar in Ihrem aktuellen Verzeichnis.

Lösung

Wenn Sie Composer global installiert haben, führen Sie einfach composer updatestatt aus php composer.phar update.

Wenn Sie Composer noch nicht installiert haben, laden Sie die PHAR mit dem folgenden Befehl herunter:

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

Dadurch wird das Installationsprogramm heruntergeladen und mit ausgeführt php. Das Installationsprogramm lädt das eigentliche Composer-PHAR in Ihr aktuelles Arbeitsverzeichnis herunter und macht es ausführbar.

Um Composer global zu installieren (ich empfehle dies), kopieren Sie die Datei an einen Speicherort in Ihrem PATH. Der genaue Speicherort ist je nach Betriebssystem und Setup unterschiedlich. Weitere Informationen finden Sie unter https://getcomposer.org/doc/00-intro.md#globally .

Persönlich bevorzuge ich die Installation von Composer in meinem Home-Verzeichnis, damit ich sudodie composerausführbare Datei nicht installieren oder aktualisieren muss (was ein Sicherheitsrisiko darstellen kann). Unter Linux verwende ich den folgenden Befehl:

mv composer.phar ~/.local/bin/composer
Nic Wortel
quelle
1
Ich wünschte, ich könnte diese Antwort mehr als einmal aktualisieren. Neben der Beantwortung der Frage wird die Frage nach dem Unterschied zwischen lokaler und globaler Installation von Composer geklärt. Danke dafür.
NaijaProgrammer
49

Wenn jemand anderes so tief auf der Seite war und immer noch keine funktionierende Antwort fand (wie ich), verwenden Sie Folgendes:

$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer.phar
$ alias composer='/usr/local/bin/composer.phar'
$ composer --version

et voila! Ein arbeitender Komponist :-)

Stan Smulders
quelle
Vielen Dank, Agent Smulders. ;)
Steven Ventimiglia
Hat für mich funktioniert, aber ich musste eine Zeile ändern, damit es richtig funktioniert. $ Alias ​​composer = '/ usr / local / bin / composer'
Steph Moreau
Unter Mac OS XI wurde der Befehl alias zu meinem .bash_profile hinzugefügt. Dadurch bleibt der Alias ​​für neue Terminalsitzungen bestehen.
Noctufaber
1
Die zweite Zeile funktioniert nicht mv composer.phar /usr/local/bin/composer.phar. Ich erhalte eine Fehlermeldung: mv: regular File '/usr/local/bin/composer.phar'konnte nicht installiert werden: fehlende Rechte.
Peter
12

Ich fand das funktionierte, da ich keine Locke installiert hatte. Unter Windows 8 mit installiertem XAMPP. Es wird Ihrem lokalen Build hinzugefügt. Ich verwende .gitignore, um das Repo zu vermeiden

php -r "readfile('https://getcomposer.org/installer');" | php

Ich habe es von hier bekommen: https://getcomposer.org/download/

purencool
quelle
12

Um dieses Problem zu lösen, müssen Sie zunächst die letzte Version des Komponisten herunterladen:

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

Ich empfehle Ihnen, die Datei composer.phar in eine globale Direktive "bin" zu verschieben. In meinem Fall (OS X) lautet der Pfad:

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

Dann müssen Sie eine Alias-Datei für einen einfachen Zugriff erstellen

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

Wenn alles in Ordnung ist, ist es jetzt Zeit, unsere Composer-Version zu überprüfen:

composer --version

Lassen Sie uns den Komponisten wieder großartig machen.

Achref Gassoumi
quelle
10

Das hat bei mir funktioniert:

composer install

Ohne

php composer install
Mohamed Fanane
quelle
auch ohne verlängerung? Fügen Sie außerdem Ihren Codezeilen 4 Leerzeichen hinzu, damit sie als Code formatiert werden
YakovL
4

Gestern habe ich versucht, das Yii2-Framework unter Windows 10 zu installieren, und ich habe das gleiche Problem (Eingabedatei konnte nicht geöffnet werden: composer.phar), das diesen Befehl ausführt:

php composer.phar create-project yiisoft/yii2-app-advanced advanced 2.0.9

Das Problem ist, dass sich die Datei composer.phr nicht im aktuellen Verzeichnis befindet. Sie müssen den vollständigen Pfad composer.phr wie angeben

php C:\ProgramData\Composer\bin\composer.phar create-project yiisoft/yii2-app-advanced advanced 2.0.9

Oder Sie können ein yii2-Projekt mit diesem Befehl erstellen:

 composer create-project yiisoft/yii2-app-advanced advanced 2.0.9

Oder

composer.phar create-project yiisoft/yii2-app-advanced advanced 2.0.9
Muhammad Shahzad
quelle
4

Benutze das :

php -r "readfile('https://getcomposer.org/installer');" | php
Fabio Valencio
quelle
3

Ich hatte das gleiche Problem. Es ist gelöst, als ich den Komponisten weltweit verfügbar gemacht habe. Jetzt kann ich die Befehle von jedem Ort im Ordner aus optimieren.

composer update

composer require "samplelibraryyouwant"

Kiren Siva
quelle
3
Dies gibt keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klarstellung zu bitten, hinterlassen Sie einen Kommentar unter seinem Beitrag.
Bas van Stein
@BasvanStein Es scheint ein Versuch zu sein, zu antworten. Wenn Sie der Meinung sind, dass diese Antwort falsch ist, können Sie sie ablehnen.
Artjom B.
2

Einfache Antwort: Navigieren Sie zu dem Verzeichnis, in dem Sie bereits die Datei composer.json haben, die Sie ausführen möchten (idealerweise Ihr Projektordner). Laden Sie den Composer in denselben Ordner herunter und führen Sie den Installationsbefehl sofort wie folgt aus:

 php composer.phar install

Dadurch wird automatisch die Datei composer.json gefunden und die erforderlichen Skripte ausgeführt. Viel Glück. Dieses Zeug ist ein Kinderspiel für Terminal-Zauberer und für den Rest von uns total bizarr

ColossalChris
quelle
2

Ich benutze Windows 8.0. In meinem Fall zum Installieren oder Aktualisieren verwende ich einfach Composer Install oder etwas anderes anstelle von PHP Composer.phar. Das hat bei mir so geklappt

composer require google/apiclient:1.*
bicky
quelle
2

Hallo Freunde, befolgen Sie die Schritte, um dieses Problem in MAC OS zu beheben

  • Schritt 1: Führen Sie zuerst den Befehl in Terminal mit Ihrem Projektverzeichnis aus

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

  • Schritt 2: Verschieben Sie die Datei composer.phar in Ihr Projektverzeichnis

    $ mv composer.phar /Applications/MAMP/htdocs/bashrushAPI/composer.phar

  • Schritt 3: Richten Sie den Alias ​​des Komponisten ein

    $ alias composer = '/ Applications / MAMP / htdocs / bashrushAPI / composer.phar'

  • Schritt 4: Überprüfen Sie jetzt die Composer-Version

    $ composer --version

    Composer version 1.7.2 2018-08-16 16:57:12

  • Schritt 5: Bestätigen Sie die Projektordner und die Datei, die sich unten befinden

    $ ls

    CONTRIBUTING.md docker-compose.yml templates README.md logs tests composer.json phpunit.xml vendor composer.lock public composer.phar src

  • Schritt 6: Aktualisieren Sie jetzt den Composer

    $ composer.phar Update

    Loading composer repositories with package information Updating dependencies (including require-dev) Nothing to install or update Generating autoload files

  • Schritt 7: Führen Sie Ihr Beispielprojekt aus

    $ php composer.phar start

    php -S localhost:8080 -t public [Thu Sep 27 03:16:11 2018] ::1:51177 [200]: / [Thu Sep 27 03:16:11 2018] ::1:51178 [404]: /favicon.ico - No such file or directory

Murugan Vadivel
quelle
1

Geben Sie hier die Bildbeschreibung ein

Ihr composer.phar sollte oben platziert werden.

hizbul25
quelle
Ich verwende Windows8 und installiere Exe von Composer wie auf getcomposer.org/download . Dann habe ich die Datei composer.phar gemäß der von Ihnen gezeigten Struktur in mein Projekt kopiert. Die Dateien composer.json und composer.lock waren bereits vorhanden, da es sich um den Standard-Symfony-Paket-Download handelte. Nachdem ich dies getan habe, als ich den Befehl udpate des Komponisten ausführte, dauerte es ungefähr eine halbe Stunde, war aber noch nicht abgeschlossen. Was ist los mit dir? Bitte vorschlagen. Danke im Voraus!
user3291745
ok, benutzt du cmd als befehl? Sie sollten also das Verzeichnis richtig wechseln. Stellen Sie Ihrer Verzeichnisstruktur besser einen Screenshot zur Verfügung.
hizbul25
Mit Stackoverflow kann ich kein Bild hochladen, da ich nur ein neugeborener Benutzer mit weniger Punkten oder weniger Ruf bin. Ich führe den Composer Update-Befehl im Verzeichnis C: \ wamp \ www \ Symfony \ aus und in diesem Verzeichnis kann ich die Ordner-App composer.phar, composer.json, composer.lock, bin, vendor, src und web sehen.
user3291745
C: cd wamp \ www \ Symfony
hizbul25
In diesem Zusammenhang empfehlen Entwickler immer Linux für PHP / Python / Ruby. :)
hizbul25
1

Für Windows habe ich composer.cmd erstellt und den folgenden Text verwendet:

php c:\programs\php\composer.phar %*

wo composer.phar installiert ist und c: \ programme \ php \ zu meinem Pfad hinzugefügt wird.

Ich bin mir nicht sicher, warum dies nicht automatisch erfolgt.

TamusJRoyce
quelle
1

Unter Windows 10 Pro beheben die folgenden Schritte das Problem. Eigenschaften auswählen Aktivieren Sie die Option Programm entsperren. Führen Sie das Installationsprogramm und den Befehl CMD mit Administratorrechten aus. Führen Sie composer --versionauf Befehl eine Eingabeaufforderung aus , um sicherzustellen, dass sie global installiert ist. Sie sollten jetzt in der Lage sein, dies auszuführen. composer require drush/drushDies ist für Drush-Abhängigkeiten mit Composer.

Narayan P.
quelle
1

Öffnen Sie einfach cmd als Administrator und gehen Sie in Ihren Projektordner und überprüfen Sie, ob es funktioniert oder nicht, indem Sie den Composer-Befehl verwenden.

Der obige Fehler ist darauf zurückzuführen, dass der Komponist nicht global verfügbar ist. Sie müssen also "cmd" als Administrator ausführen.

Das funktioniert gut für mich.

Shukla Saurabh
quelle
1

Führen Sie in der Befehlszeile Folgendes aus:
curl -sS https://getcomposer.org/installer | php

Wolf
quelle
0

Ihre composer.phar muss sich in Quelldateien befinden. Ich hatte das gleiche Problem und habe gerade meine composer.phar in meinen Framework-Standard-Edition- Ordner geschnitten , in dem sich mein gesamtes starkes Textprojekt befindet .

Lackeeee
quelle
0

Wenn der Composer bereits installiert ist, müssen Sie nur wissen, wo sich die Datei composer.phar (ihr Verzeichnis) befindet. Anschließend wechseln Sie zu Ihrem Symfony-Projekt, in dem Sie die Datei composer.json haben, und führen aus diesem Verzeichnis Ihre Datei composer.phar aus. In Windows ist hier, was Sie tun müssen.

symfony project directory_where_composer.json_is>php the_directory_where_composer.phar_is/composer update 

Das ist alles

aidonsnous
quelle
0

Ich habe dieses Problem erreicht, wenn ich versuche, Composer auf einem Windows 7-Computer von der Seite http://getcomposer.org/download zu installieren . Da eine Compose-Version vorhanden war (bereitgestellt vom Acquia Dev Desktop-Tool), schlägt die Installation fehl und die einzige Möglichkeit bestand darin, dieses Problem manuell zu beheben. (oder um den Dev Desktop Tool Composer zu entfernen).

Auf jeden Fall ist die Fehlermeldung recht einfach (Eingabedatei konnte nicht geöffnet werden: composer.phar). Wir sollten dann dem System mitteilen, wo sich die Datei befindet.

Bearbeiten Sie die Datei composer.bat und sie sollte folgendermaßen aussehen:

@SET PATH=C:\Program Files (x86)\DevDesktop\php5_4;%PATH%
php.exe composer.phar %*

Stellen Sie sicher, dass composer.phar keinen Dateipfad hat. Wenn Sie sich in einem anderen Ordner als dem befinden, in dem sich composer.phar befindet, kann das System ihn nicht finden. Vervollständigen Sie einfach den Dateipfad composer.phar:

@SET PATH=C:\Program Files (x86)\DevDesktop\php5_4;;%PATH%
SET composerScript=composer.phar
php.exe "%~dp0%composerScript%" %*

Öffnen Sie Ihre Fensterkonsole erneut und das sollte den Trick tun.

BEARBEITEN: Dies hat ein Problem, da immer der Ordner% ~ dp0% composerScript% als Composer-Ausführung verwendet wird. Dann werden alle Konfigurationen in diesem Ordner vorgenommen (außer in Ihrem aktuellen Projektordner) und nicht in Ihrem Projektordner.

Bisher habe ich keine Möglichkeit gefunden, eine manuelle Composer-Installation zu erstellen, die global unter Windows funktioniert. Vielleicht sollten Sie mit dem oben erwähnten Composer für die Windows-Installation fortfahren.

mariano_c
quelle
0

Greifen Sie nicht über composer composer.pher install auf den Composer zu

Verwenden Sie die Composer-Installation

abey
quelle
0

Sie können diesen Befehl einfach ausprobieren, wenn Sie den Composer bereits installiert haben:

composer update 

Oder wenn Sie Ihrem Komponisten ein Bundle hinzufügen möchten, versuchen Sie Folgendes:

composer require "/../"
Jabir
quelle
0

benutze den Komponisten alleine ohne PHP

mögen :

composer create-project --prefer-dist --stability=dev developeruz/yii-vue-app basic
mohammad nazari
quelle
0

Ich habe das gleiche Problem mit den folgenden Schritten behoben

  1. Öffnen Sie das Projektverzeichnis mit Terminal ( das Sie verwenden, z. B. Mintty ).
  2. Installieren Sie nun Composer in diesem Verzeichnis gemäß den Anweisungen unter https://getcomposer.org/download/.

php -r "copy (' https://getcomposer.org/installer ', 'composer-setup.php');"

php -r "if (hash_file ('SHA384', 'composer-setup.php') === 'der bereitgestellte Hash-Code') {echo 'Installer verifiziert';} else {echo 'Installer beschädigt'; Verknüpfung aufheben; ('composer-setup.php');} echo PHP_EOL; "

php composer-setup.php php -r "Verknüpfung aufheben ('composer-setup.php');"

  1. Führen Sie nun Ihren Befehl aus.

Jetzt funktioniert alles einwandfrei, da die composer.pharDatei im aktuellen Projektverzeichnis verfügbar ist.

Vielen Dank

Anoop Saini
quelle
0

Bei mir funktioniert es nur du brauchst die Datei composer.pharund composer.jsonim aktuellen Projekt. Der Befehl lautet

php composer.phar update 
isiariana
quelle
0

Befehl wie folgt:

composer.phar require intervention/image

Fehler: composer.phar: Befehl nicht gefunden

Ich habe das Problem gelöst, indem ich diesem Prozess gefolgt bin

Ich habe den Composer global festgelegt und umbenannt composer.phar, composerum diesen Befehl auszuführen composer require intervention/image. und jetzt funktioniert es gut

Mamunur Rashid
quelle
0

Ich weiß, dass meine Antwort möglicherweise zu spezifisch für einen eingebetteten QNAP-Server ist, aber ich habe hier den Versuch beendet, Yii zu installieren:

In einem QNAP-NAS über PuTTY funktioniert die einzige cmd-Zeile, die funktioniert, nachdem ich alle oben genannten Tricks ausprobiert und PATH ohne Erfolg aktualisiert habe:

 /mnt/ext/opt/apache/bin/php /usr/local/bin/composer create-project yiisoft/yii2-app-basic basic

Passen Sie Ihren Weg natürlich entsprechend an ...

Wenn ich eine mache which composer, habe ich eine richtige Antwort, aber wenn ich eine mache which php, kehrt nichts zurück.

Außerdem versuche ich zu rennen

/mnt/ext/opt/apache/bin/php composer create-project yiisoft/yii2-app-basic basic

oder unter Bezugnahme auf

composer.phar

hat auch nicht funktioniert ...

Marcelo Scofano
quelle