运行Composer会返回:“无法打开输入文件:composer.phar”


212

我是symfony2的新手,正在阅读symblog。在第三章中,尝试数据夹具时,我尝试了以下命令:

php composer.phar update

但我得到了错误:

Could not open input file: composer.phar

所以我用谷歌搜索了一下

php composer.phar install

但仍然出现相同的错误。因此,请指导如何处理该作曲家,以使用wamp在symfony2中安装新的扩展或捆绑包,例如数据夹具。


您在正确的位置安装了composer.phar吗?
hizbul25 2014年

尝试在全球范围内设置作曲者时遇到此问题。我最终添加alias composer="php C:\\\\Users\\\\MyUsername\\\\bin\\\\composer.phar"到我的.bashrc文件中。丑陋,但奏效。
Batandwa 2014年

14
@Jamil为Windows用户提供的解决方案如下,您必须使用用户composer而不是php composer.phar
Carlos487

如果您已经安装了composer,则不需要.phar,只需运行composer update
meddy

Answers:


278

如果您遵循以下指示:

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

哪个告诉您执行以下操作:

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

然后,您可能像我一样运行了这些命令,而没有阅读页面的下一部分,告诉您停止使用全名来引用composer.phar并将其缩写为可执行文件(您刚刚用mv重命名了)命令)。所以这:

$ php composer.phar update friendsofsymfony/elastica-bundle

变成这个:

$ composer update friendsofsymfony/elastica-bundle

37
要记住的事情是,如果正确安装(在Windows上)并将其添加到环境的PATH变量中,则无需键入php composer.phar并使用composer。
AturSams 2014年

@Chris Moschini似乎您可以帮助我。看看这个:stackoverflow.com/questions/52091827/...
成功男人

我们必须在每个项目中安装作曲家吗,我使用他们的安装程序安装了作曲家
Sushant Bhargav

151

我在Windows上遇到了相同的问题,并使用了不同的解决方案。我使用了composer网站提供的Composer_Setup.exe安装文件,它会进行全局安装。

安装后,请确保您的PATH变量指向composer.phar的存储目录。通常是这样C:\ProgramData\ComposerSetup\binProgramData可能是一个隐藏目录)。不用说,但是还要确保PHP可执行文件也位于PATH变量中。

然后,您可以简单地致电

composer install

代替

php composer.phar install

6
终于可以了,我不明白为什么我无法在作曲家网站上的任何地方找到此信息。
Henning Fischer

4
谢谢!在Composer文档的“基本用法”部分中未提及该内容。getcomposer.org
Nick Rolando

此答案已经过去了两年多,并且文档仍未更新,所以我遇到了同样的问题。谢谢!
安迪·默瑟

105

背景

知道有两种安装(和使用)Composer的方法会有所帮助:在本地将其作为项目目录中的文件安装,或在全球范围内将其作为系统范围的可执行文件安装。

在本地安装Composer只是意味着您正在将文件(composer.phar-是PHP Archive)下载到项目目录中。您需要为需要Composer的每个项目下载它。

就像您要在命令行上执行的常规PHP文件一样,您将必须使用PHP运行它:

php composer.phar update

这基本上告诉php可执行文件composer.pharupdateas参数运行文件。

但是,如果在全局范围内安装它,则可以使composer本身可执行文件,因此可以在不使用php的情况下调用它(不必为每个项目都下载它)。换句话说,您可以像这样使用作曲家:

composer update

由于您正在执行php composer.phar update,并且收到错误消息Could not open input file: composer.phar,因此您可能不在composer.phar当前目录中。

如果你已经安装了全球的作曲家,只需运行composer update代替php composer.phar update

如果尚未安装Composer,请使用以下命令下载PHAR:

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

这将下载安装程序并使用来运行它php。安装程序会将实际的Composer PHAR下载到您当前的工作目录中,并使其可执行。

要全局安装Composer(建议这样做),请将文件复制到中的位置PATH。确切位置因操作系统和设置而异,有关更多信息,请参阅https://getcomposer.org/doc/00-intro.md#globally

就个人而言,我更喜欢在自己的主目录中安装Composer,因此不需要sudo安装或更新composer可执行文件(这可能会带来安全风险)。在Linux上,我使用以下命令:

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

1
我希望我可以多次更新此答案。除了回答该问题之外,它还阐明了Composer本地安装和全局安装之间的区别的问题。这次真是万分感谢。
NaijaProgrammer

49

如果还有其他人在页面上排名靠前,但仍然找不到有效的答案(像我一样),请使用以下方法:

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

等等!工作作曲家:-)


谢谢特工Smulders。;)
史蒂芬·文蒂米利亚

为我工作,但我不得不改变一条线,这样它会正常工作,$别名作曲家=“在/ usr / local / bin目录/作曲家”
斯蒂芬·莫罗

在我的Mac OS XI上,将别名命令添加到了.bash_profile中。这将使别名在新的终端会话中保持不变。
noctufaber

1
第二行不起作用mv composer.phar /usr/local/bin/composer.phar。我收到一个错误:mv: regular File '/usr/local/bin/composer.phar'无法安装:缺少权限。
彼得

12

我发现这没有用,因为我没有安装curl。在装有XAMPP的Windows 8上。它将添加到您的本地版本中,我使用.gitignore以避免回购

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

我从这里得到的:https : //getcomposer.org/download/


12

要解决此问题,您需要做的第一件事是获取composer的最新版本:

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

我建议您将composer.phar文件移动到全局“ bin”目录中,在我的情况下(OS X),路径为:

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

您需要创建一个别名文件以方便访问

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

如果一切正常,现在是时候验证我们的Composer版本了:

composer --version

让我们再次成为出色的作曲家。



4

昨天我试图在Windows 10上安装Yii2框架,但我遇到了同样的问题(无法打开输入文件:composer.phar),运行以下命令:

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

问题是composer.phr文件不在当前目录中,您需要提供完整路径composer.phr像

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

或者,您可以使用以下命令创建yii2项目:

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

要么

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


3

我遇到过同样的问题。当我使Composer在全球范围内可用时,此问题已解决。现在,我可以从文件夹中的任何位置调整命令。

composer update

composer require "samplelibraryyouwant"


3
这不能为问题提供答案。要批评或要求作者澄清,请在其帖子下方发表评论。
Bas van Stein 2015年

@BasvanStein似乎确实是在尝试回答。如果您认为此答案有误,则可以对其投下反对票。
Artjom B.

2

简单的答案,导航到您已经拥有要运行的composer.json文件的目录(最好是项目文件夹),然后将composer下载到相同的文件夹中,然后立即运行install命令,如下所示:

 php composer.phar install

这将自动找到composer.json并运行所需的脚本。祝好运。这些东西对于终端巫师是轻而易举的,对我们其他人来说完全是奇怪的


2

我正在使用Windows 8.0。就我而言,要安装或更新,我只使用composer install或其他方法代替php composer.phar。这对我来说就像

composer require google/apiclient:1.*

2

嗨,朋友,请按照以下步骤修复MAC OS中的此问题

  • 步骤1:首先在终端中使用项目目录运行命令

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

  • 步骤2:将composer.phar移动到项目目录中

    $ mv composer.phar /应用程序/MAMP/htdocs/bashrushAPI/composer.phar

  • 步骤3:设定作曲者的别名

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

  • 步骤4:立即检查作曲家的版本

    $ composer --version

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

  • 步骤5:确认放置在下面的项目文件夹和文件

    $ ls

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

  • 步骤6:现在更新作曲家

    $ composer.phar更新

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

  • 步骤7:运行示例项目

    $ php composer.phar开始

    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

在此处输入图片说明

您的composer.phar应该放置在上方。


我正在使用Windows8并在getcomposer.org/download上安装了composer的exe 。然后,按照您显示的结构将composer.phar文件复制到我的项目中。composer.json和composer.lock文件已经存在,因为它是默认的symfony软件包下载。完成此操作后,当我运行composer udpate命令时,花费了大约半小时,但尚未完成。怎么了?请提出建议。提前致谢!
user3291745

好的,您使用cmd命令吗?因此您应该以正确的方式更改目录。更好地为您的目录结构提供屏幕截图。
hizbul25 2014年

Stackoverflow不允许我上传图片,因为我只是积分或信誉较低的新生用户。我在C:\ wamp \ www \ Symfony \目录中运行composer update命令,在该目录中,我可以看到composer.phar,composer.json,composer.lock文件夹应用,bin,vendor,src和web。
user3291745

C:cd wamp \ www \ Symfony
hizbul25年

在这方面,开发人员始终建议将Linux用于php / python / ruby​​。:)
hizbul25 2014年

1

对于Windows,我制作了composer.cmd并使用了以下文本:

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

在哪里安装了composer.phar并将c:\ programs \ php \添加到我的路径中。

不知道为什么这不是自动完成的。


1

对于Windows10 Pro,请按照以下步骤解决问题。选择属性,选中“取消阻止程序”选项。运行安装程序,运行具有管理员权限的命令CMD。在命令提示符下运行composer --version以确保已全局安装。您现在应该可以运行了。composer require drush/drush这是使用composer的drush依赖关系。


1

只需以管理员身份打开cmd并进入您的项目文件夹,然后使用composer命令检查其是否正常工作。

出现上述错误是由于无法全局访问作曲者。因此,您需要以管理员身份运行“ cmd”。

这对我来说很好。


1

在命令行中运行以下命令:
curl -sS https://getcomposer.org/installer | php


0

您的composer.phar必须位于源文件中。我遇到了同样的问题,我只是将composer.phar切入了我的 framework-standard-edition文件夹中,这是我的整个强文本项目。


0

如果已经安装了composer,则只需要知道composer.phar文件所在的目录(其目录),然后移至symfony项目中,该目录中有composer.json并从该目录中执行composer.phar文件。在Windows中,这就是您要做的。

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

就这样




0

当尝试从http://getcomposer.org/download在Windows 7计算机上安装composer时,我已经遇到了这个问题页面。由于存在现有的撰写版本(由acquia Dev Desktop工具提供),安装失败,唯一的机会是手动解决此问题。(或删除Dev Desktop工具编辑器)。

无论如何,错误消息非常简单(无法打开输入文件:composer.phar),然后我们应该告诉系统文件所在的位置。

编辑composer.bat文件,应如下所示:

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

看到composer.phar没有文件路径。当与composer.phar所在的文件夹不同时,系统将找不到该文件夹​​。因此,只需完成composer.phar文件路径:

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

重新打开您的窗口控制台,这应该可以解决问题。

编辑:这有一个问题,因为它总是使用%〜dp0%composerScript%文件夹作为作曲者执行。然后,所有配置都在该文件夹中完成(除了位于当前项目文件夹中),而不是在项目文件夹中。

到目前为止,我还没有发现要手动安装作曲家才能在Windows上全局运行。也许您应该继续使用上面提到的Windows安装作曲工具。


0

不要通过composer composer.pher install访问composer

使用composer安装


0

如果您已经安装了Composer,则可以尝试以下命令:

composer update 

或者,如果您想将一些捆绑软件添加到您的作曲家中,请尝试以下操作:

composer require "/../"

0

不用php单独使用作曲家

喜欢 :

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

0

我已通过以下步骤修复了相同的问题

  1. 使用终端打开项目目录(您正在使用即薄荷
  2. 现在,按照https://getcomposer.org/download/上的给定说明,在此目录中安装composer。

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

php -r“ if(hash_file('SHA384','composer-setup.php')==='-提供的哈希码'){ ('composer-setup.php');}回显PHP_EOL;“

php composer-setup.php php -r“ unlink('composer-setup.php');”

  1. 现在运行您的命令。

现在,一切正常,因为该composer.phar文件在当前项目目录中可用。

谢谢


0

与我一起工作就可以了,只要您需要该文件composer.pharcomposer.json在当前项目中即可。该命令是

php composer.phar update 

0

像这样的命令:

composer.phar require intervention/image

错误:composer.phar:找不到命令

我按照以下过程解决了问题

我全局设置了作曲器,并重命名composer.pharcomposer然后运行此命令composer require intervention/image。现在工作正常


0

我知道也许我的答案对于嵌入式QNAP服务器来说太具体了,但是我在这里结束了尝试安装Yii的工作:

对我而言,在通过上述所有技巧将QNAP NAS内通过PuTTY进行操作之后,将PATH更新为无用之后,唯一有效的cmd行是:

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

当然,相应地调整自己的道路...

如果我执行了which composer,我的回答是正确的,但是如果我执行了which php什么都不返回。

除此之外,尝试跑步

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

或指

composer.phar

也不行...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.