Uruchamianie Composer zwraca: „Nie można otworzyć pliku wejściowego: composer.phar”

213

Jestem nowy w symfony2 i czytam symblog . W trzecim rozdziale, próbując z urządzeniami danych, wypróbowałem polecenie:

php composer.phar update

ale dostałem błąd:

Could not open input file: composer.phar

Więc trochę googlowałem i próbowałem

php composer.phar install

ale nadal pojawia się ten sam błąd. Więc proszę, jak poradzić sobie z tym kompozytorem, aby zainstalować nowe rozszerzenia lub pakiety, takie jak urządzenia danych w symfony2, używając wampa.

użytkownik3291745
źródło
czy zainstalowałeś composer.phar we właściwym miejscu?
hizbul25
Miałem ten problem podczas próby ustawienia kompozytora na całym świecie. Skończyło się na dodawaniu alias composer="php C:\\\\Users\\\\MyUsername\\\\bin\\\\composer.phar"do mojego pliku .bashrc . Brzydki, ale działał.
Batandwa
14
Rozwiązanie dla użytkownika systemu Windows znajduje się poniżej @Jamil, musisz użytkownika kompozytora zamiast php composer.phar
Carlos487
Nie potrzebujesz .phar, jeśli już zainstalowałeś kompozytora, po prostu uruchom aktualizację kompozytora
meddy,

Odpowiedzi:

279

Jeśli wykonałeś takie instrukcje:

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

Które każą ci wykonać następujące czynności:

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

Wtedy prawdopodobnie, podobnie jak ja, uruchomiłeś te polecenia i nie przeczytałeś następnej części strony, mówiąc ci, abyś przestał odwoływać się do pliku composer.phar pełną nazwą i skracać go jako plik wykonywalny (którego nazwę właśnie zmieniłeś na mv Komenda). Więc to:

$ php composer.phar update friendsofsymfony/elastica-bundle

Staje się to:

$ composer update friendsofsymfony/elastica-bundle
Chris Moschini
źródło
37
Należy pamiętać, że jeśli zainstalowałeś go poprawnie (w systemie Windows) i dodałeś go do zmiennej PATH środowiska, nie musisz wpisywać php composer.phar i zamiast tego używać kompozytora.
AturSams,
@Chris Moschini Wygląda na to, że możesz mi pomóc. Spójrz na to: stackoverflow.com/questions/52091827/...
Success Man
czy musimy instalować kompozytora w każdym projekcie, zainstalowałem kompozytora za pomocą ich instalatora
Sushant Bhargav
151

Miałem ten sam problem w systemie Windows i użyłem innego rozwiązania. Użyłem pliku instalacyjnego Composer_Setup.exe dostarczonego przez witrynę internetową kompozytora i wykonuje on instalację globalną .

Po instalacji upewnij się, że zmienna PATH wskazuje katalog, w którym przechowywany jest plik composer.phar. Zazwyczaj jest to C:\ProgramData\ComposerSetup\bin( ProgramData może być ukrytym katalogiem ). Oczywiste jest, ale należy również upewnić się, że plik wykonywalny PHP znajduje się również w zmiennej PATH.

Następnie możesz po prostu zadzwonić

composer install

zamiast

php composer.phar install
The Unknown Dev
źródło
6
To w końcu działa, nie rozumiem, dlaczego nie mogę znaleźć tych informacji nigdzie na stronie kompozytora ...
Henning Fischer
4
Dziękuję Ci! Tego nie wspomniano w sekcji „podstawowe użycie” w dokumentacji kompozytora. Getcomposer.org/doc/01-basic-usage.md#installing-dependencies
Nick Rolando
Od tej odpowiedzi minęły ponad dwa lata, a dokumenty wciąż nie zostały zaktualizowane, więc miałem ten sam problem. Dzięki!
Andy Mercer
105

tło

Warto wiedzieć, że istnieją dwa sposoby instalacji (i używania) Composer: lokalnie jako plik w katalogu projektu lub globalnie jako ogólnosystemowy plik wykonywalny.

Lokalna instalacja Composera oznacza po prostu, że pobierasz plik ( composer.pharktóry jest archiwum PHP ) do katalogu projektu. Będziesz musiał pobrać go dla każdego projektu, który wymaga Composer.

Podobnie jak zwykły plik PHP, który chcesz uruchomić w wierszu poleceń, musisz go uruchomić z PHP:

php composer.phar update

Co w zasadzie mówi phpplikowi wykonywalnemu, aby uruchomić plik composer.pharz updateargumentem.

Jeśli jednak zainstalujesz go globalnie , możesz sprawić, że sam kompozytor będzie wykonywalny, więc możesz wywołać go bez php (i nie musisz go pobierać dla każdego projektu). Innymi słowy, możesz użyć takiego kompozytora:

composer update

Ponieważ wykonujesz php composer.phar updatei pojawia się błąd Could not open input file: composer.phar, prawdopodobnie nie ma go composer.pharw bieżącym katalogu.

Rozwiązanie

Jeśli masz globalnie zainstalowany Composer, po prostu uruchom composer updatezamiast php composer.phar update.

Jeśli nie masz jeszcze zainstalowanego programu Composer, pobierz PHAR za pomocą następującego polecenia:

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

Spowoduje to pobranie instalatora i uruchomienie go za pomocą php. Instalator pobierze bieżący PHAR Composer do bieżącego katalogu roboczego i sprawi, że będzie on wykonywalny.

Aby zainstalować Composer globalnie (polecam to), skopiuj plik do lokalizacji w swoim PATH. Dokładna lokalizacja różni się w zależności od systemu operacyjnego i konfiguracji, więcej informacji można znaleźć na stronie https://getcomposer.org/doc/00-intro.md#globally .

Osobiście wolę zainstalować Composer w moim katalogu domowym, więc nie muszę sudoinstalować ani aktualizować composerpliku wykonywalnego (co może stanowić zagrożenie bezpieczeństwa). W systemie Linux używam następującego polecenia:

mv composer.phar ~/.local/bin/composer
Nic Wortel
źródło
1
Chciałbym móc zaktualizować tę odpowiedź więcej niż raz. Oprócz odpowiedzi na pytanie, wyjaśnia ono różnicę między lokalną a globalną instalacją Composer. Dziękuję Ci za to.
NaijaProgrammer,
49

Jeśli ktoś znalazł się tak nisko na stronie i nadal nie znalazł działającej odpowiedzi (tak jak ja), użyj tego:

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

zrobione! Pracujący kompozytor :-)

Stan Smulders
źródło
Dziękuję, agencie Smulders. ;)
Steven Ventimiglia
Pracował dla mnie, ale musiałem zmienić jedną linię, aby działała poprawnie $ alias composer = '/ usr / local / bin / composer'
Steph Moreau
Na moim Mac OS XI dodałem polecenie alias do mojego .bash_profile. Dzięki temu alias będzie trwały dla nowych sesji terminali.
noctufaber
1
Druga linia nie działa mv composer.phar /usr/local/bin/composer.phar. Pojawia się błąd: mv: regular File '/usr/local/bin/composer.phar'nie można zainstalować: brakujące prawa.
Peter
12

Uważam, że zadziałało, ponieważ nie zainstalowałem curl. W systemie Windows 8 z zainstalowanym XAMPP. Dodanie go do lokalnej wersji używam .gitignore, aby uniknąć repo

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

Mam go stąd: https://getcomposer.org/download/

purencool
źródło
12

Aby rozwiązać ten problem, pierwszą rzeczą, którą musisz zrobić, to zdobyć ostatnią wersję kompozytora:

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

Zalecam przeniesienie pliku composer.phar do globalnej wersji „bin”, w moim przypadku (OS X) ścieżka jest następująca:

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

niż musisz utworzyć plik aliasu dla łatwego dostępu

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

Jeśli wszystko jest w porządku, czas sprawdzić naszą wersję Composer:

composer --version

Sprawmy, by kompozytor znów był świetny.

Achref Gassoumi
źródło
10

To działało dla mnie:

composer install

Bez

php composer install
Mohamed Fanane
źródło
nawet bez rozszerzenia? Dodaj także 4 linie spacji do linii kodu, aby były sformatowane jako kod
JakowL,
4

Wczoraj próbowałem zainstalować platformę Yii2 w systemie Windows 10 i mam ten sam problem (nie można otworzyć pliku wejściowego: kompozytor.phar), uruchamiając to polecenie:

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

Problem polega na tym, że pliku composer.phr nie ma w bieżącym katalogu, musisz podać pełną ścieżkę jak composer.phr

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

Lub możesz utworzyć projekt yii2 za pomocą tego polecenia:

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

Lub

composer.phar create-project yiisoft/yii2-app-advanced advanced 2.0.9
Muhammad Shahzad
źródło
4

Użyj tego :

php -r "readfile('https://getcomposer.org/installer');" | php
Fabio Valencio
źródło
3

Miałem ten sam problem. Rozwiązuje się to, gdy udostępniam kompozytora na całym świecie. Teraz mogę dostroić polecenia z dowolnego miejsca w folderze.

composer update

composer require "samplelibraryyouwant"

Kiren Siva
źródło
3
To nie daje odpowiedzi na pytanie. Aby skrytykować lub poprosić autora o wyjaśnienia, zostaw komentarz pod postem.
Bas van Stein
@BasvanStein To wydaje się być próbą odpowiedzi. Jeśli uważasz, że ta odpowiedź jest zła, możesz ją zagłosować.
Artjom B.,
2

Prosta odpowiedź, przejdź do katalogu, w którym masz już plik composer.json, który chcesz uruchomić (najlepiej folder projektu), a następnie pobierz kompozytora do tego samego folderu, a następnie natychmiast uruchom komendę instalacji w następujący sposób:

 php composer.phar install

Spowoduje to automatyczne znalezienie pliku composer.json i uruchomienie wymaganych skryptów. Powodzenia. Te rzeczy są proste dla czarodziejów terminali i dla wszystkich z nas zupełnie dziwne

ColossalChris
źródło
2

Korzystam z systemu Windows 8.0. W moim przypadku, aby zainstalować lub zaktualizować, używam po prostu instalacji kompozytora lub czegoś innego zamiast php composer.phar. To działało dla mnie jak

composer require google/apiclient:1.*
bicky
źródło
2

Cześć przyjaciele, wykonaj kroki, aby rozwiązać ten problem w systemie Mac OS

  • Krok 1: najpierw uruchom polecenie w Terminalu z katalogu projektu

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

  • Krok 2: Przenieś plik composer.phar do katalogu projektu

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

  • Krok 3: Skonfiguruj alias kompozytora

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

  • Krok 4: Sprawdź teraz wersję kompozytora

    $ kompozytor --version

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

  • Krok 5: Potwierdź foldery projektu i plik umieszczony poniżej

    $ ls

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

  • Krok 6: Teraz zaktualizuj kompozytora

    Aktualizacja $ composer.phar

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

  • Krok 7: Uruchom przykładowy projekt

    $ 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
źródło
1

wprowadź opis zdjęcia tutaj

twój composer.phar powinien być umieszczony powyżej.

hizbul25
źródło
Korzystam z systemu Windows 8 i zainstalowałem exe kompozytora jak na getcomposer.org/download . Następnie skopiowałem plik composer.phar do mojego projektu zgodnie z pokazaną przez Ciebie strukturą. Pliki composer.json i composer.lock już tam były, ponieważ było to domyślne pobieranie pakietu symfony. Po wykonaniu tej czynności po uruchomieniu polecenia udpate kompozytora zajęło to około pół godziny, ale jeszcze nie zostało ukończone. Co jest nie tak? Proszę zasugeruj. Z góry dziękuję!
user3291745,
ok, czy używasz cmd do komend? więc powinieneś zmienić katalog we właściwy sposób. Lepiej zapewnij strukturę katalogu ze zrzutem ekranu.
hizbul25
Stackoverflow nie pozwala mi wgrywać obrazu, ponieważ jestem nowo narodzonym użytkownikiem o mniejszej liczbie punktów lub reputacji. Korzystam z polecenia aktualizacji kompozytora w katalogu C: \ wamp \ www \ Symfony \ iw tym katalogu widzę aplikację folderów composer.phar, composer.json, composer.lock, bin, vendor, src i web.
user3291745,
C: cd wamp \ www \ Symfony
hizbul25
w związku z tym deweloper zawsze sugeruje Linux dla php / python / ruby. :)
hizbul25
1

W systemie Windows utworzyłem composer.cmd i użyłem poniższego tekstu:

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

gdzie jest zainstalowany composer.phar, a do mojej ścieżki dodano c: \ programy \ php \.

Nie jestem pewien, dlaczego nie dzieje się to automatycznie.

TamusJRoyce
źródło
1

W przypadku systemu Windows 10 Pro, wykonaj następujące kroki, aby rozwiązać problem. wybierz właściwości zaznacz opcję Odblokuj program. uruchom instalator, uruchom komendę CMD z uprawnieniami administratora. W wierszu polecenia uruchom, composer --versionaby upewnić się, że jest zainstalowany globalnie. powinieneś być teraz w stanie uruchomić composer require drush/drushTo jest dla zależności drush przy użyciu kompozytora.

Narayan P.
źródło
1

Po prostu otwórz cmd jako Administrator i przejdź do folderu projektu i sprawdź, czy działa, czy nie używa polecenia kompozytora.

Powyższy błąd wynika z faktu, że kompozytor nie jest dostępny globalnie. Musisz więc uruchomić „cmd” jako Administrator.

To działa dobrze dla mnie.

Shukla Saurabh
źródło
1

Uruchom następujące polecenie w wierszu polecenia:
curl -sS https://getcomposer.org/installer | php

Wilk
źródło
0

Twój plik composer.phar musi znajdować się w plikach źródłowych. Miałem ten sam problem i po prostu wyciąłem mój composer.phar w moim folderze standardowej edycji frameworka , gdzie jest mój cały projekt tekstowy .

Lackeeee
źródło
0

jeśli kompozytor jest już zainstalowany, wystarczy wiedzieć, gdzie znajduje się plik composer.phar (jego katalog), a następnie przejść do projektu symfony, w którym masz plik composer.json iz tego katalogu uruchom plik composer.phar. W systemie Windows jest to, co musisz zrobić.

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

To wszystko

pomocny
źródło
0

Dotarłem do tego problemu, próbując zainstalować kompozytora na komputerze z systemem Windows 7 ze strony http://getcomposer.org/download strony . Ponieważ istniała już wersja tworzenia (dostarczana przez narzędzie acquia Dev Desktop), instalacja kończy się niepowodzeniem, a jedyną szansą było ręczne naprawienie tego problemu. (lub usunąć kompozytora narzędzi Dev Desktop).

W każdym razie komunikat o błędzie jest dość prosty (nie można otworzyć pliku wejściowego: composer.phar), powinniśmy wtedy powiedzieć systemowi, gdzie znajduje się plik.

Edytuj plik composer.bat i powinien on wyglądać następująco:

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

Zobacz, że composer.phar nie ma ścieżki do pliku. Stojąc w innym folderze niż ten, w którym znajduje się composer.phar, system nie będzie w stanie go znaleźć. Więc po prostu wypełnij ścieżkę pliku composer.phar:

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

Ponownie otwórz konsolę okienną i to powinno załatwić sprawę.

EDYCJA: ma to problem, ponieważ zawsze używa folderu% ~ dp0% composerScript% jako wykonania kompozytora. Następnie wszystkie konfiguracje są wykonywane w tym folderze (poza ustawieniem w bieżącym folderze projektu), a nie w folderze projektu.

Jak dotąd nie znalazłem ręcznej instalacji kompozytora, aby działał globalnie w systemie Windows. Być może powinieneś zacząć od kompozytora do instalacji systemu Windows wspomnianego powyżej.

mariano_c
źródło
0

Nie należy uzyskiwać dostępu do kompozytora za pomocą kompozytora composer.pher install

użyj instalacji kompozytora

abey
źródło
0

Możesz po prostu wypróbować to polecenie, jeśli jesteś już zainstalowany Composer:

composer update 

lub jeśli chcesz dodać jakiś pakiet do swojego kompozytora, spróbuj tego:

composer require "/../"
Jabir
źródło
0

użyj samego kompozytora bez php

lubić :

composer create-project --prefer-dist --stability=dev developeruz/yii-vue-app basic
mohammad nazari
źródło
0

Rozwiązałem ten sam problem za pomocą poniższych kroków

  1. Otwórz katalog projektu za pomocą terminalu ( którego używasz, np. Mintty )
  2. Teraz zainstaluj kompozytora w tym katalogu zgodnie z podanymi instrukcjami na https://getcomposer.org/download/

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

php -r "if (hash_file ('SHA384', 'composer-setup.php') === 'the-provided-hash-code') {echo 'Installer zweryfikowany';} else {echo 'Installer uszkodzony'; odłącz ('composer-setup.php');} echo PHP_EOL; "

php composer-setup.php php -r "unlink ('composer-setup.php');"

  1. Teraz uruchom polecenie.

Wszystko działa teraz dobrze, ponieważ composer.phar plik jest dostępny w bieżącym katalogu projektu.

dzięki

Anoop Saini
źródło
0

Ze mną działa tylko potrzebujesz pliku composer.phari composer.jsonw bieżącym projekcie. Poleceniem jest

php composer.phar update 
isiariana
źródło
0

Polecenie takie:

composer.phar require intervention/image

error: composer.phar: nie znaleziono polecenia

Rozwiązałem problem, wykonując ten proces

ustawiłem kompozytora globalnie i zmieniłem nazwę, composer.pharaby composernastępnie uruchomić to polecenie composer require intervention/image. a teraz działa dobrze

Mamunur Rashid
źródło
0

Wiem, że może moja odpowiedź jest zbyt szczegółowa dla wbudowanego serwera QNAP, ale zakończyłem tutaj próbę instalacji Yii:

Dla mnie, wewnątrz QNAP NAS przez PuTTY, po wypróbowaniu wszystkich powyższych sztuczek i zaktualizowaniu PATH bezskutecznie, jedyną działającą linią cmd jest:

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

Oczywiście odpowiednio dostosuj swoją ścieżkę ...

Jeśli to zrobię which composer, mam poprawną odpowiedź, ale jeśli zrobię, which phpnic nie powróci.

Poza tym próbuję uciec

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

lub odnosząc się do

composer.phar

też nie działał ...

Marcelo Scofano
źródło