A execução do Composer retorna: “Não foi possível abrir o arquivo de entrada: composer.phar”

212

Eu sou novo no symfony2 e estou lendo o symblog . No terceiro capítulo, enquanto tentava com dispositivos de dados, tentei o comando:

php composer.phar update

mas eu recebi o erro:

Could not open input file: composer.phar

Então eu pesquisei um pouco e tentei

php composer.phar install

mas ainda está recebendo o mesmo erro. Por isso, guie como lidar com este compositor para instalar novas extensões ou pacotes, como acessórios de dados no symfony2 usando o wamp.

user3291745
fonte
você instalou o composer.phar no lugar certo?
hizbul25
Eu tive esse problema ao tentar configurar o compositor globalmente. Acabei adicionando alias composer="php C:\\\\Users\\\\MyUsername\\\\bin\\\\composer.phar"ao meu arquivo .bashrc . Feio, mas funcionou.
Batandwa
14
Solução para usuário do Windows está abaixo por @Jamil, você tem que usuário compositor ao invés de composer.phar php
Carlos487
Você não há necessidade .phar se você já tiver instalado compositor atualização compositor basta executar
Meddy

Respostas:

278

Se você seguiu instruções como estas:

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

Que dizem para você fazer o seguinte:

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

Então é provável que você, como eu, tenha executado esses comandos e não tenha lido a parte seguinte da página, pedindo para parar de se referir ao compositer.phar pelo nome completo e abreviá-lo como um executável (que você acabou de renomear com o comando mv comando). Então, é isso:

$ php composer.phar update friendsofsymfony/elastica-bundle

Torna-se isso:

$ composer update friendsofsymfony/elastica-bundle
Chris Moschini
fonte
37
É importante lembrar que se você o instalou corretamente (no Windows) e o adicionou à variável PATH do seu ambiente, não é necessário digitar php composer.phar e usar o compositer.
AturSams
@ Chris Moschini Parece que você pode me ajudar. Veja isto: stackoverflow.com/questions/52091827/…
Success Man
nós temos que instalar o compositor em cada projeto, eu instalei o compositor usando o instalador
Sushant Bhargav
151

Eu tive o mesmo problema no Windows e usei uma solução diferente. Eu usei o arquivo de instalação Composer_Setup.exe fornecido pelo site do compositor e ele faz uma instalação global .

Após a instalação, verifique se a variável PATH aponta para o diretório em que o composer.phar está armazenado. Isso geralmente é C:\ProgramData\ComposerSetup\bin( ProgramData pode ser um diretório oculto ). Escusado será dizer, mas também certifique-se de que o executável PHP também esteja na sua variável PATH.

Você pode simplesmente ligar

composer install

ao invés de

php composer.phar install
The Unknown Dev
fonte
6
Finalmente funciona, não entendo por que não consigo encontrar essas informações em nenhum lugar do site do compositor ....
Henning Fischer
4
Obrigado! Isso não é mencionado na seção "uso básico" na documentação do compositor .. getcomposer.org/doc/01-basic-usage.md#installing-dependencies
Nick Rolando
Já se passaram mais de dois anos desde essa resposta e os documentos ainda não foram atualizados, então tive o mesmo problema. Obrigado!
Andy Mercer
105

fundo

É útil saber que existem duas maneiras de instalar (e usar) o Composer: localmente como um arquivo no diretório do projeto ou globalmente como um executável em todo o sistema.

Instalar o Composer localmente significa simplesmente que você está baixando um arquivo ( composer.phar- que é um arquivo PHP ) para o diretório do projeto. Você precisará fazer o download para cada projeto que requer o Composer.

Como um arquivo PHP comum que você deseja executar na linha de comando, você terá que executá-lo com o PHP:

php composer.phar update

Que basicamente diz o phpexecutável para executar o arquivo composer.pharcom updatecomo argumento.

No entanto, se você instalá-lo globalmente , poderá tornar o próprio compositor executável, para poder chamá-lo sem php (e não precisar fazer o download para cada projeto). Em outras palavras, você pode usar o compositor assim:

composer update

Como você está executando php composer.phar updatee está recebendo o erro Could not open input file: composer.phar, provavelmente não o possui composer.pharno diretório atual.

Solução

Se você tiver o Composer instalado globalmente, basta executar em composer updatevez de php composer.phar update.

Se você ainda não possui o Composer, faça o download do PHAR usando o seguinte comando:

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

Isso fará o download do instalador e o executará usando php. O instalador fará o download do Composer PHAR real no diretório de trabalho atual e o executará.

Para instalar o Composer globalmente (eu recomendo isso), copie o arquivo para um local no seu PATH. A localização exata difere de acordo com o sistema operacional e a configuração, consulte https://getcomposer.org/doc/00-intro.md#globally para obter mais informações.

Pessoalmente, prefiro instalar o Composer no meu diretório pessoal para não precisar sudoinstalar ou atualizar o composerexecutável (o que pode ser um risco à segurança). Como estou no Linux, uso o seguinte comando:

mv composer.phar ~/.local/bin/composer
Nic Wortel
fonte
1
Gostaria de poder atualizar esta resposta mais de uma vez. Além de responder à pergunta, esclarece a questão da diferença entre a instalação local e global do Composer. Obrigado por isso.
NaijaProgrammer
49

Se mais alguém chegou tão baixo na página e ainda não encontrou uma resposta funcional (como eu), use o seguinte:

$ 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! Um compositor que trabalha :-)

Stan Smulders
fonte
Obrigado, agente Smulders. ;)
Steven Ventimiglia
Trabalhou para mim, mas eu tive que mudar uma linha para que ele iria funcionar corretamente $ compositor alias = '/ usr / local / bin / compositor'
Steph Moreau
No meu Mac OS X, adicionei o comando alias ao meu .bash_profile. Isso tornará o alias persistente para novas sessões de terminal.
Noctufaber 9/05
1
A segunda linha não funciona mv composer.phar /usr/local/bin/composer.phar. Eu recebo um erro: mv: regular File '/usr/local/bin/composer.phar'não pôde ser instalado: direitos faltando.
Peter
12

Achei que isso funcionava porque eu não tinha o curl instalado. No Windows 8 com o XAMPP instalado. Ele será adicionado à sua compilação local. Eu uso .gitignore para evitar o repo

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

Comprei aqui: https://getcomposer.org/download/

purencool
fonte
12

Para resolver esse problema, a primeira coisa que você precisa fazer é obter a última versão do compositor:

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

Eu recomendo que você mova o arquivo composer.phar para um diretório "bin" global. No meu caso (OS X), o caminho é:

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

do que você precisa para criar um arquivo de alias para facilitar o acesso

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

Se estiver tudo bem, agora é hora de verificar nossa versão do Composer:

composer --version

Vamos tornar o compositor ótimo novamente.

Achref Gassoumi
fonte
10

Isso funcionou para mim:

composer install

Sem

php composer install
Mohamed Fanane
fonte
mesmo sem extensão? Além disso, por favor, adicione 4 espaços indetation para suas linhas de código para que elas são formatadas como código
YakovL
4

Ontem eu estava tentando instalar o framework Yii2 no Windows 10 e tenho o mesmo problema (Não foi possível abrir o arquivo de entrada: composer.phar) executando este comando:

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

O problema é que o arquivo composer.phr não está no diretório atual, você precisa fornecer o caminho completo composer.phr como

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

Ou você pode criar o projeto yii2 usando este comando:

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

Ou

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

Usa isto :

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

Eu tive o mesmo problema. Isso foi resolvido quando disponibilizei o compositor globalmente. Agora eu sou capaz de ajustar os comandos de qualquer lugar da pasta.

composer update

composer require "samplelibraryyouwant"

Kiren Siva
fonte
3
Isso não fornece uma resposta para a pergunta. Para criticar ou solicitar esclarecimentos a um autor, deixe um comentário abaixo da postagem.
Bas van Stein
@BasvanStein Parece uma tentativa de resposta. Se você acha que esta resposta está errada, pode fazer um voto negativo.
Artjom B.
2

Resposta fácil, navegue até o diretório em que você já possui o arquivo composer.json que deseja executar (idealmente sua pasta do projeto), faça o download do compositor para a mesma pasta e execute instantaneamente o comando install da seguinte forma:

 php composer.phar install

Isso encontrará automaticamente o compositer.json e executará os scripts necessários. Boa sorte. Esse material é muito fácil para os assistentes de terminal e totalmente bizarro para o resto de nós

ColossalChris
fonte
2

Eu estou usando o Windows 8.0. No meu caso, para instalar ou atualizar, basta usar a instalação do compositor ou outra coisa em vez do php composer.phar. Isso funcionou para mim como

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

Olá amigos, siga as etapas para corrigir esse problema no MAC OS

  • Etapa 1: primeiro execute o comando no Terminal com o diretório do projeto

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

  • Etapa 2: Mova o composer.phar no diretório do projeto

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

  • Etapa 3: Configurar o alias do compositor

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

  • Etapa 4: verifique a versão do compositor agora

    $ compositor - versão

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

  • Etapa 5: confirme as pastas e o arquivo do projeto colocados abaixo

    $ ls

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

  • Etapa 6: agora atualize o compositor

    atualização do $ composer.phar

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

  • Etapa 7: execute seu projeto de amostra

    $ php compositer.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
fonte
1

insira a descrição da imagem aqui

seu compositer.phar deve ser colocado da maneira acima.

hizbul25
fonte
Estou usando o windows8 e exe instalado do compositor como em getcomposer.org/download . Em seguida, copiei o arquivo composer.phar no meu projeto, de acordo com a estrutura mostrada por você. Os arquivos composer.json e composer.lock já estavam lá, pois era o download padrão do pacote symfony. Depois de fazer isso quando executo o comando compositor udpate, demorou cerca de meia hora, mas ainda não foi concluído. O que há de errado? Por favor sugira. Desde já, obrigado!
user3291745
ok, você usa cmd para comando? então você deve mudar o diretório da maneira certa. Melhor fornecer sua estrutura de diretórios com captura de tela.
hizbul25
O Stackoverflow não me permite fazer upload de imagens, pois sou apenas um usuário recém-nascido com menos pontos ou reputação. Estou executando o comando update do compositor no diretório C: \ wamp \ www \ Symfony \ e nesse diretório posso ver as pastas composer.phar, composer.json, composer.lock app, bin, fornecedor, src e web.
user3291745
C: cd wamp \ www \ Symfony
hizbul25
nesse sentido, o desenvolvedor sempre sugere linux para php / python / ruby. :)
hizbul25
1

Para o Windows, criei composer.cmd e usei o texto abaixo:

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

onde o composer.phar está instalado e c: \ programs \ php \ é adicionado ao meu caminho.

Não sei por que isso não é feito automaticamente.

TamusJRoyce
fonte
1

Para o Windows10 Pro, as etapas a seguir corrigem o problema. Para selecionar propriedades, marque a opção Desbloquear programa. execute o instalador, execute o comando CMD com direitos de administrador. No comando promp, execute composer --versionpara garantir que ele esteja instalado globalmente. agora você deve poder executar composer require drush/drushIsto é para dependência de drush usando o compositor.

Narayan P
fonte
1

Basta abrir o cmd como administrador e ir para a pasta do projeto e verificar se está funcionando ou não usando o comando compositer.

O erro acima é devido ao compositor não estar acessível globalmente. Então você precisa executar o "cmd" como administrador.

Isso está funcionando bem para mim.

Shukla Saurabh
fonte
1

Execute o seguinte na linha de comandos:
curl -sS https://getcomposer.org/installer | php

Lobo
fonte
0

Seu compositer.phar deve estar nos arquivos de origem. Eu tive o mesmo problema e apenas cortei meu compositer.phar na minha pasta de edição padrão da estrutura , onde está todo o meu projeto de texto forte .

Lackeeee
fonte
0

se o compositor já estiver instalado, tudo o que você precisa é saber onde está o arquivo composer.phar (seu diretório) e depois você passará para o projeto symfony onde você possui o compositer.json e, a partir desse diretório, você executará o arquivo composer.phar. Nas janelas, aqui está o que você deve fazer.

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

Isso é tudo

aidonsnous
fonte
0

Eu cheguei a esse problema ao tentar instalar o compositor em uma máquina Windows 7 na página http://getcomposer.org/download . Como havia uma versão de composição existente (fornecida pela ferramenta Acquia Dev Desktop), a instalação falha e a única chance é de corrigir esse problema manualmente. (ou para remover o compositor da ferramenta Dev Desktop).

De qualquer forma, a mensagem de erro é bem direta (não foi possível abrir o arquivo de entrada: composer.phar), devemos informar ao sistema onde o arquivo está localizado.

Edite o arquivo composer.bat e deve se parecer com:

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

Veja que o compositer.phar não possui um caminho de arquivo. Quando estiver em uma pasta diferente daquela em que o compositer.phar está localizado, o sistema não poderá encontrá-lo. Portanto, basta concluir o caminho do arquivo composer.phar:

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

Reabra o console da janela e isso deve ser suficiente.

EDIT: isso tem um problema, porque sempre usa a pasta% ~ dp0% composerScript% como execução do compositor. Todas as configurações são feitas nessa pasta (além de permanecer na pasta atual do projeto) e não na pasta do projeto.

Até agora, não encontrei o que era fazer uma instalação manual do compositor para funcionar globalmente no Windows. Talvez você deva prosseguir com o compositor para instalação do Windows mencionado acima.

mariano_c
fonte
0

Não acesse o compositor pelo compositor compositer.pher install

usar instalação do compositor

abey
fonte
0

Você pode apenas tentar este comando se você já estiver instalado o Composer:

composer update 

ou se você quiser adicionar um pacote ao seu compositor, tente o seguinte:

composer require "/../"
jabir
fonte
0

use compositor sozinho sem php

gostar :

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

Corrigi o mesmo problema com as etapas abaixo

  1. Abra o diretório do projeto Usando o Terminal ( que você está usando, por exemplo, mintty )
  2. Agora instale o compositor neste diretório, de acordo com as instruções fornecidas em https://getcomposer.org/download/

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

php -r "if (hash_file ('SHA384', 'composer-setup.php') === 'o código-hash fornecido') {echo 'Installer Verified';} else {echo 'Installer corrompido'; desvincular ('composer-setup.php');} echo PHP_EOL; "

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

  1. Agora execute seu comando.

Tudo está funcionando bem agora, porque o composer.phararquivo está disponível no diretório do projeto atual.

obrigado

Anoop Saini
fonte
0

Comigo funciona apenas você precisa do arquivo composer.phare composer.jsonno projeto atual. O comando é

php composer.phar update 
isiariana
fonte
0

Comando como este:

composer.phar require intervention/image

erro: composer.phar: comando não encontrado

Resolvi o problema seguindo este processo

Defino o compositor globalmente e renomeei composer.pharpara composerexecutar este comando composer require intervention/image. e agora está funcionando bem

Mamunur Rashid
fonte
0

Sei que talvez minha resposta seja específica demais para um servidor QNAP incorporado, mas terminei aqui tentando instalar o Yii:

Para mim, dentro de um QNAP NAS através do PuTTY, depois de tentar todos os truques acima e atualizar o PATH sem sucesso, a única linha de cmd que funciona é:

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

Obviamente, adapte seu caminho de acordo ...

Se eu fizer um which composer, tenho uma resposta correta, mas se fizer um which phpnada retornará.

Além disso, tentando executar

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

ou referindo-se a

composer.phar

não funcionou muito ...

Marcelo Scofano
fonte