L'esecuzione di Composer restituisce: "Impossibile aprire il file di input: composer.phar"


214

Sono nuovo di symfony2 e leggo symblog . Nel terzo capitolo mentre provavo con i dispositivi di dati ho provato il comando:

php composer.phar update

ma ho ricevuto l'errore:

Could not open input file: composer.phar

Quindi ho cercato su Google un po '

php composer.phar install

ma continua a ricevere lo stesso errore. Quindi, per favore, guida come trattare con questo compositore per installare nuove estensioni o bundle come data-fixture in symfony2 usando wamp.


hai installato composer.phar nel posto giusto ??
hizbul25,

Ho avuto questo problema durante il tentativo di installare il compositore a livello globale. Ho finito per aggiungere alias composer="php C:\\\\Users\\\\MyUsername\\\\bin\\\\composer.phar"al mio file .bashrc . Brutto, ma ha funzionato.
Batandwa,

15
La soluzione per l'utente di Windows è sotto di @Jamil, devi usare il compositore anziché php composer.phar
Carlos487

Non è necessario .phar se hai già installato il compositore esegui semplicemente l'aggiornamento del compositore
meddy

Risposte:


280

Se hai seguito istruzioni come queste:

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

Che ti dicono di fare quanto segue:

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

Quindi è probabile che tu, come me, abbia eseguito quei comandi e non abbia letto la parte successiva della pagina che ti dice di smettere di fare riferimento a compositore.phar con il suo nome completo e abbrevialo come un eseguibile (che hai appena rinominato con il mv comando). Così questo:

$ php composer.phar update friendsofsymfony/elastica-bundle

Diventa questo:

$ composer update friendsofsymfony/elastica-bundle

37
La cosa da ricordare è che se l'hai installato correttamente (su Windows) e l'hai aggiunto alla variabile PATH del tuo ambiente, non è necessario digitare php composer.phar e utilizzare invece composer.
AturSams,

@ Chris Moschini Sembra che tu mi possa aiutare. Guarda questo: stackoverflow.com/questions/52091827/…
Success Man

dobbiamo installare il compositore in ogni progetto, ho installato il compositore usando il loro installatore
Sushant Bhargav,

151

Ho avuto lo stesso problema su Windows e ho usato una soluzione diversa. Ho usato il file di installazione Composer_Setup.exe fornito dal sito Web di Composer e fa un'installazione globale .

Dopo l'installazione, assicurati che la tua variabile PATH punta alla directory in cui è memorizzato composer.phar. Questo di solito C:\ProgramData\ComposerSetup\bin( ProgramData potrebbe essere una directory nascosta ). Va da sé, ma assicurati anche che l'eseguibile PHP sia anche nella tua variabile PATH.

Puoi quindi semplicemente chiamare

composer install

invece di

php composer.phar install

6
Finalmente funziona, non capisco perché non riesco a trovare queste informazioni da nessuna parte sul sito web del compositore ....
Henning Fischer,

4
Grazie! Ciò non è menzionato nella sezione "Utilizzo di base" nei documenti di Composer. Getcomposer.org/doc/01-basic-usage.md#installing-dependencies
Nick Rolando,

Sono passati più di due anni da questa risposta e i documenti non sono ancora stati aggiornati, quindi ho avuto lo stesso problema. Grazie!
Andy Mercer,

105

sfondo

È utile sapere che esistono due modi per installare (e utilizzare) Composer: localmente come file nella directory del progetto o globalmente come eseguibile a livello di sistema.

Installare Composer localmente significa semplicemente che stai scaricando un file ( composer.phar- che è un archivio PHP ) nella directory del tuo progetto. Dovrai scaricarlo per ogni progetto che richiede Composer.

Come un normale file PHP che si desidera eseguire dalla riga di comando, è necessario eseguirlo con PHP:

php composer.phar update

Che racconta fondamentalmente la phpeseguibile per eseguire il file composer.pharcon updatecome argomento.

Tuttavia, se lo si installa a livello globale , è possibile effettuare il compositore stesso eseguibile, così si può chiamare, senza php (e non è necessario scaricare il programma per ogni progetto). In altre parole, puoi usare il compositore in questo modo:

composer update

Dato che stai eseguendo php composer.phar updatee stai ricevendo l'errore Could not open input file: composer.phar, probabilmente non hai composer.pharnella directory corrente.

Soluzione

Se hai Composer installato a livello globale, esegui semplicemente composer updateinvece di php composer.phar update.

Se non hai ancora installato Composer, scarica PHAR usando il seguente comando:

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

Questo scaricherà il programma di installazione ed eseguirà utilizzando php. Il programma di installazione scaricherà l'effettivo PHAR di Composer nella directory di lavoro corrente e lo renderà eseguibile.

Per installare Composer a livello globale (lo consiglio vivamente), copia il file in un percorso nel tuo PATH. La posizione esatta varia in base al sistema operativo e alla configurazione, vedere https://getcomposer.org/doc/00-intro.md#globally per ulteriori informazioni.

Personalmente, preferisco installare Composer nella mia directory home quindi non ho bisogno sudodi installare o aggiornare l' composereseguibile (che può essere un rischio per la sicurezza). Dato che sono su Linux, utilizzo il seguente comando:

mv composer.phar ~/.local/bin/composer

1
Vorrei poter aggiornare questa risposta più di una volta. Oltre a rispondere alla domanda, chiarisce la questione della differenza tra l'installazione locale e globale di Composer. Grazie per questo.
NaijaProgrammer

49

Se qualcun altro è arrivato così in basso nella pagina e non ha ancora trovato una risposta funzionante (come ho fatto io), usa questo:

$ 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 voilà! Un compositore che lavora :-)


Grazie, agente Smulders. ;)
Steven Ventimiglia,

Ha funzionato per me, ma ho dovuto cambiare una riga in modo che funzionasse correttamente $ alias composer = '/ usr / local / bin / compositore'
Steph Moreau,

Sul mio Mac OS X ho aggiunto il comando alias al mio .bash_profile. Ciò renderà l'alias persistente per le nuove sessioni terminali.
noctufaber

1
La seconda riga non funziona mv composer.phar /usr/local/bin/composer.phar. Viene visualizzato un errore: mv: regular File '/usr/local/bin/composer.phar'impossibile installare: diritti mancanti.
Peter,

12

Ho trovato che ha funzionato perché non avevo il ricciolo installato. Su Windows 8 con XAMPP installato. Lo aggiungerò alla tua build locale che uso .gitignore per evitare il repository

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

L'ho preso da qui: https://getcomposer.org/download/


12

Per risolvere questo problema, la prima cosa che devi fare è ottenere l'ultima versione di compositore:

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

Ti consiglio di spostare il file composer.phar in un directoy globale "bin", nel mio caso (OS X) il percorso è:

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

di quanto è necessario creare un file alias per un facile accesso

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

Se tutto è ok, ora è il momento di verificare la nostra versione di Composer:

composer --version

Rendiamo di nuovo grande il compositore.


10

Questo ha funzionato per me:

composer install

Senza

php composer install

anche senza estensione? Inoltre, aggiungi l'indetazione di 4 spazi alle righe di codice in modo che siano formattate come codice
YakovL

4

Ieri stavo cercando di installare il framework Yii2 su Windows 10 e ho lo stesso problema (Impossibile aprire il file di input: composer.phar) eseguendo questo comando:

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

Il problema è che il file composer.phr non si trova nella directory corrente, è necessario fornire un percorso completo simile a composer.phr

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

Oppure puoi creare il progetto yii2 usando questo comando:

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

O

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


3

Ho avuto lo stesso problema. Viene risolto quando ho reso il compositore disponibile a livello globale. Ora sono in grado di sintonizzare i comandi da qualsiasi punto della cartella.

composer update

composer require "samplelibraryyouwant"


3
Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti a un autore, lascia un commento sotto il suo post.
Bas van Stein,

@BasvanStein Sembra un tentativo di risposta. Se ritieni che questa risposta sia errata, puoi ridimensionarla.
Artjom B.

2

Risposta semplice, vai alla directory in cui hai già il file composer.json che desideri eseguire (idealmente la cartella del progetto), quindi scarica il compositore nella stessa cartella, quindi esegui immediatamente il comando di installazione in questo modo:

 php composer.phar install

Questo troverà automaticamente composer.json ed eseguirà gli script richiesti. In bocca al lupo. Questa roba è un gioco da ragazzi per i maghi terminali e totalmente bizzarra per il resto di noi


2

Sto usando Windows 8.0. Nel mio caso per installare o aggiornare uso semplicemente l'installazione di Composer o qualcos'altro invece di php composer.phar. Questo ha funzionato per me come

composer require google/apiclient:1.*

2

Ciao amici, seguite i passaggi per risolvere questo problema in MAC OS

  • Passaggio 1: eseguire innanzitutto il comando in Terminale con la directory del progetto

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

  • Passaggio 2: spostare composer.phar nella directory del progetto

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

  • Passaggio 3: installazione alias del compositore

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

  • Passaggio 4: controlla subito la versione del compositore

    $ compositore --version

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

  • Passaggio 5: confermare le cartelle e il file del progetto posizionati sotto

    $ ls

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

  • Passaggio 6: ora aggiorna il compositore

    $ composer.phar update

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

  • Passaggio 7: eseguire il progetto di esempio

    $ 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


1

inserisci qui la descrizione dell'immagine

il tuo compositore.phar dovrebbe essere posizionato sopra.


Sto usando Windows 8 e installato exe di compositore come su getcomposer.org/download . Quindi ho copiato il file composer.phar nel mio progetto secondo la struttura mostrata da te. I file composer.json e composer.lock erano già lì poiché era il download predefinito del pacchetto symfony. Dopo aver fatto questo quando eseguo il comando udpate del compositore, ci sono voluti circa mezz'ora ma non ancora completato. Cosa c'è che non va? Per favore, suggerisci Grazie in anticipo!
user3291745,

ok, usi cmd per il comando? quindi dovresti cambiare la directory nel modo giusto. Meglio fornire alla struttura della directory una schermata.
hizbul25,

Stackoverflow non mi consente di caricare immagini poiché sono solo un nuovo utente con meno punti o reputazione. Sto eseguendo il comando di aggiornamento del compositore nella directory C: \ wamp \ www \ Symfony \ e in quella directory posso vedere le cartelle composer.phar, composer.json, composer.lock, bin, vendor, src e web.
user3291745,

C: cd wamp \ www \ Symfony
hizbul25

a questo proposito lo sviluppatore suggerisce sempre linux per php / python / ruby. :)
hizbul25,

1

Per windows, ho creato composer.cmd e ho usato il testo seguente:

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

dove è installato composer.phar e c: \ programmi \ php \ viene aggiunto al mio percorso.

Non sono sicuro del perché questo non sia fatto automaticamente.


1

Per Windows 10 Pro, i seguenti passaggi risolvono il problema. selezionare le proprietà selezionare l'opzione Sblocca programma. eseguire il programma di installazione, eseguire il comando CMD con diritti di amministratore. Al comando, eseguire composer --versionper assicurarsi che sia installato a livello globale. dovresti essere in grado di eseguire ora composer require drush/drushQuesto è per dipendenza da droga usando il compositore.


1

Apri cmd come amministratore e vai nella cartella del tuo progetto e verifica che funzioni o non usi il comando compositore.

L'errore sopra riportato è dovuto al fatto che il compositore non è accessibile a livello globale. Quindi è necessario eseguire "cmd" come amministratore.

Questo funziona bene per me.


1

Eseguire quanto segue nella riga di comando:
curl -sS https://getcomposer.org/installer | php


0

Il tuo composer.phar deve essere nei file di origine. Ho avuto lo stesso problema e ho appena tagliato il mio compositore.phar nella mia cartella framework-standard-edition , dove è tutto il mio forte progetto di testo .


0

se il compositore è già installato tutto ciò di cui hai bisogno è sapere dove si trova il file composer.phar (la sua directory) dopo che ti sposti al tuo progetto symfony dove hai il compositore.json e da quella directory esegui il tuo file composer.phar. In Windows ecco cosa devi fare.

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

È tutto




0

Ho riscontrato questo problema quando provo ad installare il compositore su una macchina Windows 7 dalla pagina http://getcomposer.org/download . Poiché esisteva una versione di composizione esistente (fornita dallo strumento Acquia Dev Desktop) l'installazione non riesce e l'unica possibilità era quella di risolvere questo problema manualmente. (o per rimuovere il compositore dello strumento Dev Desktop).

Comunque il messaggio di errore è abbastanza semplice (Impossibile aprire il file di input: composer.phar), dovremmo quindi dire al sistema dove si trova il file.

Modifica il file composer.bat e dovrebbe apparire come:

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

Vedi che composer.phar non ha un percorso di file. Quando si trova in una cartella diversa da quella in cui si trova composer.phar, il sistema non sarà in grado di trovarlo. Quindi, basta completare il percorso del file composer.phar:

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

Riapri la tua console di Windows e questo dovrebbe fare il trucco.

EDIT: questo ha un problema perché usa sempre la cartella% ~ dp0% composerScript% come esecuzione del compositore. Quindi tutte le configurazioni vengono eseguite in quella cartella (oltre a stare nella cartella del progetto corrente) e non nella cartella del progetto.

Finora non ho trovato un modo per fare un'installazione manuale del compositore per funzionare a livello globale su Windows. Forse dovresti andare avanti con il compositore per l'installazione di Windows di cui sopra.


0

Non accedere al compositore dall'installazione del compositore composer.pher

usa l'installazione del compositore


0

Puoi semplicemente provare questo comando se hai già installato Composer:

composer update 

o se vuoi aggiungere un po 'di bundle al tuo compositore prova questo:

composer require "/../"

0

usa il compositore da solo senza php

piace :

composer create-project --prefer-dist --stability=dev developeruz/yii-vue-app basic

0

Ho risolto lo stesso problema con i passaggi seguenti

  1. Apri la directory del progetto usando Terminal ( che stai usando, per esempio, conio )
  2. Ora installa il compositore all'interno di questa directory come indicato in https://getcomposer.org/download/

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

php -r "if (hash_file ('SHA384', 'composer-setup.php') === 'codice-hash fornito') {echo 'Installer verificato';} else {echo 'Installer corrotto'; unlink ('composer-setup.php');} echo PHP_EOL; "

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

  1. Ora esegui il tuo comando.

Ora tutto funziona bene perché il composer.pharfile è disponibile nella directory del progetto corrente.

Grazie


0

Con me funziona solo tu hai bisogno del file composer.phare composer.jsonnel progetto corrente. Il comando è

php composer.phar update 

0

Comanda in questo modo:

composer.phar require intervention/image

errore: composer.phar: comando non trovato

Ho risolto il problema seguendo questo processo

ho impostato il compositore a livello globale e rinominato composer.pharper composereseguire questo comando composer require intervention/image. e ora funziona benissimo


0

So che forse la mia risposta è troppo specifica per un server QNAP incorporato, ma ho finito qui cercando di installare Yii:

Per me, all'interno di un NAS QNAP tramite PuTTY, dopo aver provato tutti i trucchi sopra e aver aggiornato PATH senza alcun risultato, l'unica linea cmd che funziona è:

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

Naturalmente, adatta il tuo percorso di conseguenza ...

Se faccio un which composer, ho una risposta corretta, ma se faccio un which phpnulla ritorna.

Oltre a ciò, provando a correre

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

o riferendosi a

composer.phar

non ha funzionato troppo ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.