运行Composer返回:&quot无法打开输入文件:Composer .phar"

我是symfony2和阅读symblog的新手。在第三章中,当我尝试使用数据fixture时,我尝试了命令:

php composer.phar update

但我发现了一个错误:

Could not open input file: composer.phar

所以我谷歌了一下,试了试

php composer.phar install

但还是得到相同的错误。因此,请指导如何使用wamp在symfony2中安装新的扩展或数据fixture之类的编写器。

476284 次浏览

enter image description here

你的作曲家。法尔应放在上述方式。

如果你按照下面的指示去做:

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

我发现这工作,因为我没有卷曲安装。在Windows 8上安装XAMPP。它会将它添加到您的本地构建,我使用.gitignore来避免回购

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

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

背景

知道有两种方法来安装(和使用)Composer是很有帮助的:在本地作为一个文件在你的项目目录下,或在全球范围内作为一个系统范围的可执行文件。

在本地安装Composer仅仅意味着你正在下载一个文件(composer.phar -这是一个PHP存档)到你的项目目录中。您必须为每个需要Composer的项目下载它。

就像你想在命令行上执行的常规PHP文件一样,你必须用PHP运行它:

php composer.phar update

它基本上告诉php可执行文件以update作为参数运行文件composer.phar

然而,如果你安装它在全球范围内,你可以使composer本身可执行,所以你可以在没有php的情况下调用它(并且不必为每个项目下载它)。换句话说,你可以这样使用composer:

composer update

因为你正在执行php composer.phar update,并且你得到了错误Could not open input file: composer.phar,你可能在你的当前目录中没有composer.phar

解决方案

如果你已经全局安装了Composer,只需运行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

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

安装之后,确保你的PATH变量指向composer所在的目录。Phar被存储。这通常是C:\ProgramData\ComposerSetup\bin (ProgramData可能是一个隐藏目录)。这是不言而喻的,但也要确保PHP可执行文件也在PATH变量中。

然后你可以简单地打电话

composer install

而不是

php composer.phar install

你的composer.phar必须在源文件中。我也有同样的问题,我只是剪掉了我的作曲家。phar放入我的framework-standard-edition文件夹,其中是我的整个__abc2项目。

很简单,导航到已经有编码器的目录。你想要运行的Json文件(理想情况下是你的项目文件夹),然后下载composer到相同的文件夹中,然后立即运行安装命令,如下所示:

 php composer.phar install

这将自动找到作曲家。Json和运行所需的脚本。祝你好运。这些东西对终端巫师来说是小菜一碟,对我们其他人来说完全是匪夷所思的

如果已经安装了编写器,您只需要知道编写器的位置。Phar文件是(它的目录),然后您移动到您的symfony项目,在那里您有编写器。Json,然后从那个目录执行你的作曲器。phar文件。这是你必须做的。

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

这是所有

如果其他人在这一页上的位置这么低,仍然没有找到有效的答案(就像我一样),请使用以下方法:

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

果不其然!在职作曲家:-)

分两步。

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

Sudo PHP编写器。phar更新

我也有同样的问题。当我使composer全局可用时,这个问题就解决了。现在我可以从文件夹中的任何地方屯命令。

composer update

composer require "samplelibraryyouwant"

我用的是windows 8.0。在我的情况下,安装或更新我只是使用composer install或其他东西,而不是php composer.phar。这对我很有效 像< / p >
composer require google/apiclient:1.*

你可以这样做

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

-sS标志表示不显示进度,只显示错误

然后

php composer.phar install
< p >: 如何让cURL不显示进度条? < / p >

https://packagist.org/

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

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

问题是作曲家。PHR文件不在当前目录中,您需要给出完整路径编写器。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

这招对我很管用:

composer install

没有

php composer install

用这个:

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

当我试图从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 %*

看那个作曲家。Phar没有文件路径。当站在不同的文件夹,而不是一个作曲家。Phar已被定位,系统将无法找到它。所以,完成作曲。Phar文件路径:

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

重新打开窗口控制台,这样就可以了。

EDIT:这有一个问题,因为它总是使用%~dp0%composerScript% 文件夹作为编写器执行。所有的构型都在里面完成 (除了站在你当前的项目文件夹上),而不是在你的项目文件夹中 到目前为止,我还没有找到一个是让手动编写器安装到 在Windows上全球工作。

.也许你应该继续使用composer来安装上面提到的windows

要解决这个问题,你需要做的第一件事是得到composer的最后一个版本:

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

我建议你搬作曲家。phar文件到全局“bin”目录,在我的情况下(OS X)路径是:

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

然后,您需要创建一个别名文件,以便于访问

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

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

composer --version

让我们让作曲家再次伟大起来。

不访问composer by 作曲家作曲。问题安装< / p > < p >使用 作曲家安装< / p >

如果你已经安装了Composer,你可以试试这个命令:

composer update

或者如果你想添加一些bundle到你的作曲家尝试这个:

composer require "/../"

单独使用composer而不使用PHP

如:

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

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

  1. 打开项目目录Using Terminal (你用的是薄荷糖吗)
  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') === 'the-provided-hash-code') {echo '已验证安装程序';} else {echo '安装程序损坏';分离(“composer-setup.php”);} echo PHP_EOL;"

< p > php composer-setup.php PHP -r "unlink('composer-setup.php');" < / p >
  1. 现在执行你的命令。

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

谢谢

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

  • 第一步:首先在Terminal中使用项目目录运行命令

    https://getcomposer.org/installer | php

    李< /引用> < / > 第二步:移动作曲器。Phar的项目目录

    $ mv作曲家。phar /应用程序/ MAMP /根/ bashrushAPI / composer.phar

    李< /引用> < / >
  • 步骤3:设置编写器的别名

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

    李< /引用> < / > 第四步:现在检查composer的版本

    $ composer—版本

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

    李< /引用> < / >
  • 第五步:确认放置在波纹管上的项目文件夹和文件

    $ ls

    < p > <代码>做贡献。md docker-compose。yml模板 自述文件。Md记录测试 作曲家。Json phpunit.xml供应商 作曲家。锁的公共 作曲家。phar src / <代码> < / p >
    李< /引用> < / >
  • 步骤6:现在更新composer

    美元的作曲家。phar更新

    加载带有包信息的composer存储库 更新依赖项(包括require-dev) 不需要安装或更新 生成自动加载文件

    李< /引用> < / > 步骤7:运行示例项目

    $ PHP编写器。phar开始

    php -S localhost:8080 -t public [9月27日星期四03:16:11 2018]::1:51177 [200]:/ [Thu Sep 27 03:16:11 2018]::1:51178 [404]: /favicon.ico -没有这样的文件或目录

    李< /引用> < / >

对于windows,我创建了composer。CMD并使用下面的文本:

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

作曲家。Phar被安装,c:\programs\php\被添加到我的路径中。

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

与我,它的工作只是你需要文件composer.pharcomposer.json在当前项目。 命令为

php composer.phar update

对于Windows10 Pro,请按照以下步骤修复此问题。选择属性检查Unblock程序选项。运行安装程序,使用Admin权限运行命令CMD。在命令提示符下运行composer --version以确保它是全局安装的。你现在应该能够运行composer require drush/drush,这是为了使用composer来驱动依赖。

命令如下:

composer.phar require intervention/image

错误:作曲家。Phar:命令未找到

我按照这个过程解决了这个问题

我全局设置了作曲器,并将composer.phar重命名为composer,然后运行这个命令composer require intervention/image。现在运行正常了

我知道我的回答对于嵌入式QNAP服务器来说可能太具体了,但我在这里尝试安装Yii:

对我来说,通过PuTTY在QNAP NAS中,在尝试了以上所有技巧后,更新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

也没用……

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

以上错误是由于作曲家是不可全局访问的。 因此,您需要以管理员身份运行“cmd”。< / p >

这对我来说很有效。

最简单直接的方法是 -使用CD命令提示符导航到我的项目文件夹 -在CDM内输入composer以确保其已安装 -如果是,则输入作曲家要求…/你打算安装的扩展

对于通过HomeBrew安装composer的google用户: 为/usr/local/bin/composer

创建一个符号链接
ln -s /usr/local/bin/composer /usr/local/bin/composer.phar

使用下面提到的命令安装Yii2时,我得到了这个错误"无法打开输入文件:composer.phar"

php的作曲家。Phar create-project yiisoft/yii2-app-basic basic

对我有效的解决方案是,我把命令改为

编译器create-project yiisoft/yii2-app-basic

我希望它能有所帮助!

如果你使用的是Ubuntu/Linux并且你正在尝试运行

php composer.phar require intervention/image在你的命令行。

使用sudo composer require intervention/image代替。这会给你想要的东西。

如果你想创造作曲家。Phar文件在任何文件夹遵循此命令。

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


php -r "if (hash_file('sha384', 'composer-setup.php') === 'c5b9b6d368201a9db6f74e2611495f369991b72d9c8cbd3ffbc63edff210eb73d46ffbfce88669ad33695ef77dc76976') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"


php composer-setup.php


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

在命令行中执行以下命令 curl -sS https://getcomposer.org/installer | php < / p >

我收到包裹时遇到了点麻烦。composer dumpautoload. json的脚本运行。

我有文件/usr/local/bin/composer.phar,也文件~/.bash_profile(在OSX上)包含:

alias composer="php /usr/local/bin/composer.phar"

这允许composer从命令行工作,但它不允许脚本执行composer。

解决办法是这样的:

$ cd /usr/local/bin
$ mv composer.phar composer
$ sudo chmod +x composer // +x allows the file to be executable, such as by CLI scripts

但这产生了这个错误Could not open input file: /usr/local/bin/composer.phar

修复方法是更新~/.bash_profile (sudo nano ~/.bash_profile),并将composer别名更改为:

alias composer="php /usr/local/bin/composer"


# ie: `.phar` extension removed

现在一切都像预期的那样。

在使用以下命令之前,我一直面临同样的问题。< br >

composer self-update

希望这也适用于你!

如果没有,你可以在这里检查整个发布 https://blog.packagist.com/composer-2-0-is-now-available/ < / p >

这是非常简单的,只是运行没有'PHP'前缀。

composer.phar update

这应该有用。