如何在任何地方运行作曲家?


78

我刚刚在/usr/bin文件夹中安装了composer ,因此从该文件夹运行时,php composer.phar我会获得有关composer的帮助信息。但是,当我尝试从其他文件夹运行相同文件时,我得到了Could not open input file: composer.phar

如何php composer.phar从各个地方打电话都没有问题?

Answers:


55

composer.phar可以自己运行,无需以前缀php。这应该可以解决您的问题(因为bash的$ PATH和php的include_path是不同的)。


10
您也可以将其重命名为Composer,然后只需执行即可composer install
Seldaek

我的composer.phar已安装。(我用php composer.phar检查了一下)但是,我没有找到位置。如何找到composer.phar位置的路径?我正在使用UBUNTU。
Nana Partykar

如果可以运行php composer.phar,则它可能在当前目录中。
Maerlyn 2015年

24
我认为您想要全局访问您的composer.phar。移动它并做一个别名: sudo mv composer.phar /usr/local/bin/然后alias composer='/usr/local/bin/composer.phar'
斯特凡

110

您可以进行全局安装存档指南):

由于Composer使用当前工作目录,因此可以在系统范围内安装它。

  1. 更改为路径中的目录,例如 cd /usr/local/bin
  2. 获取作曲家 curl -sS https://getcomposer.org/installer | php
  3. 使phar可执行 chmod a+x composer.phar
  4. 转到项目目录 cd /path/to/my/project
  5. 照常使用Composer composer.phar install
  6. (可选)您可以重命名为 以使其更容易composer.phar composer

更新:有时您无法或不想在以下位置下载/usr/local/bin(某些用户权限问题或访问受限),在这种情况下,您可以尝试

  1. 打开终端
  2. curl -sS http://getcomposer.org/installer | php -- --filename=composer
  3. chmod a+x composer
  4. sudo mv composer /usr/local/bin/composer

更新2:对于Windows 10和PHP 7,我推荐本教程。我个人已经在PHP 7.3 VC15 x64非线程安全版本之前安装了Visual Studio 2017 x64的Visual C ++ Redistributable(在WindowsPHP页面的侧面菜单中检查这两个版本)。仔细阅读,也许enable-extensions部分可能有所不同(extension=curl而不是extension=php_curl.dll)。像魅力一样,祝你好运!


3
他们没有注意到您需要重命名该文件才能使用composer–此处要注意。
Andrew Atkinson

2
@AndrewAtkinson或者,您可以在下载之前重命名curl -sS https://getcomposer.org/installer | php -- --filename=composer
Quantum

只想对此表示感谢。我在理解基本逻辑时遇到了麻烦,并且getcomposer.org本身在解释这一点方面做得不好,所以谢谢!我知道了
Trace DeCoy '17

28

如何通过终端从任何地方(在MacOS X上)运行Composer

背景:

实际上,在getComposer网站上明确指出,使用以下curl命令安装Composer,

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

当然,它确实可以完成预期的工作。然后说将composer.phar移至目录/ usr / local / bin / composer,然后在终端中使用以下命令行即可在全球范围内使用composer!

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

题:

因此,导致我转向Google的问题是当我在Mac OS X Terminal中执行上述代码时,它说,权限被拒绝。如下所示:

mv: rename composer.phar to /usr/local/bin/composer: Permission denied

回答:

以下链接将我带到了迷人的解决方案,对此我深表感谢。我刚才错过的是在上述“移动”命令行之前的sudo命令。现在,我的“移动”命令如下:

sudo mv composer.phar /usr/local/bin/composer
Password:

它直接提示您进行身份验证并查看您是否被授权。因此,如果您输入有效的密码,那么移动将完成,您只需使用以下行来检查composer是否已全局安装。

composer about

希望这个答案能帮助您拓宽视野,最终解决您的问题。

干杯!


1
>然后说将composer.phar移到目录/ usr / local / bin / composer/usr/local/bin/composer不是目录;它是在此composer.phar之前将被调用的文件的新名称。
XedinUnknown

1
在macOS Sierra上为我工作。
Vahid Amiri

17

首先像在作曲家安装文档中提到的那样安装作曲家。我只是在这里加参考。

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

然后将文件移动到“ / usr / local / bin”。

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

尝试运行composer -V。如果您收到类似Composer version版本号的输出,则说明该作曲器已成功安装。

如果得到类似composer: command not found手段的任何输出,请使用以下命令为作曲家创建一个别名。因此它将在全局执行。

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

现在,如果您运行composer -V,则将获得输出,Composer Version然后是版本号。

希望这会帮助某人。



6

只需将其移至/usr/local/bin文件夹并删除扩展名

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

我所需要的,谢谢
Bobby Ax

2

对于MAC和LINUX,请使用以下过程:

将composer.phar所在的目录添加到您的PATH中:

export PATH=$PATH:/yourdirectory

然后将composer.phar重命名为composer:

mv composer.phar composer

1

要从其他位置运行它,可以使用该程序随附的composer程序。它基本上是一个bash脚本。如果没有它,只需将以下代码复制到文本文件中即可创建一个

#!/bin/sh

dir=$(d=$(dirname "$0"); cd "$d" && pwd)

if command -v 'cygpath' >/dev/null 2>&1; then
  dir=$(cygpath -m $dir);
fi

dir=$(echo $dir | sed 's/ /\ /g')
php "${dir}/composer.phar" $*

然后将文件保存在bin文件夹中,并将其命名为composer,而无需任何文件扩展名。然后将bin文件夹添加到您的环境变量f中


1

您可以进行简单的全局安装以从任何地方运行它

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

https://getcomposer.org/doc/00-intro.md#globally网站建议使用此方法。在Ubuntu 14.04上运行良好,没有问题。这样php compomser.phar show,您无需composer show在正在使用的任何目录中作为示例,而只需进行操作。


0

部分原因可能是服务器正在运行的操作系统。我最近迁移到了运行Ubuntu的新托管环境。将此别名添加alias composer="/path/to/your/composer"到.bashrc或.bash_aliases最初不起作用,原因有两个:

默认情况下,服务器运行的是csh,而不是bash。要检查您是否遇到此问题,请运行echo $0。如果返回的内容是-csh您希望将其更改为bash,因为由Composer运行的某些进程将使用csh / tcsh失败

要更改它,请先运行运行服务器以检查bash是否可用cat /etc/shells。如果在返回的列表中看到bin/bash,则可以通过运行将默认值更改为bash chsh -s /bin/csh

现在,此时,您应该能够运行Composer,但是通常在Ubuntu上,您必须通过运行source ~/.bashrc或来采购Bash脚本,从而在每个会话中加载脚本source ~/.bash_profile。这是因为在大多数情况下,Ubuntu不会加载您的Bash脚本,因为它会.profile作为默认脚本加载。

要在打开会话时加载Bash脚本,请尝试将其添加到.profile中(这是如果您的Bash脚本是.bashrc的话-如果是.bash_profile或其他,则进行相应的修改):

if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

要测试,请关闭会话并重新加载。如果工作正常,则运行composer -vwhich composer应按预期运行。

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.