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

时间:2012-07-04 17:17:54

标签: php composer-php

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

如何从没有问题的每个地方拨打php composer.phar

10 个答案:

答案 0 :(得分:99)

您可以执行global installation

  

由于Composer使用当前工作目录,因此可以以系统方式安装它。

     
      
  1. 更改为路径中的目录,如 cd /usr/local/bin
  2.   
  3. 获取作曲家 curl -sS https://getcomposer.org/installer | php
  4.   
  5. 使phar可执行 chmod a+x composer.phar
  6.   
  7. 转换为项目目录 cd /path/to/my/project
  8.   
  9. 像往常一样使用Composer composer.phar install
  10.   
  11. 您可以选择将 composer.phar 重命名为 composer
  12.   

更新:有时您不能或不想在/usr/local/bin下载(有些人遇到过用户权限问题或限制访问权限),在这种情况下您可以试试这个< / p>

  1. 打开终端
  2. curl -sS http://getcomposer.org/installer | php -- --filename=composer
  3. chmod a+x composer
  4. sudo mv composer /usr/local/bin/composer
  5. 更新2 :对于Windows 10和PHP 7,我建议使用this tutorial。我个人在PHP 7.3 VC15 x64 Non Thread Safe版本之前安装了Visual C++ Redistributable for Visual Studio 2017 x64(在PHP for Windows页面,侧边菜单中检查两者的版本)。仔细阅读,也许启用扩展程序部分可能不同(extension=curl而不是extension=php_curl.dll)。像魅力,祝你好运!

答案 1 :(得分:51)

composer.phar可以自己运行,不需要用php作为前缀。这应该可以解决你的问题(与bash的$ PATH和php的include_path不同)。

答案 2 :(得分:22)

如何通过终端

从任何地方(在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

<强>问题:

因此,导致我使用谷歌的问题是当我在Mac OS X终端上执行上述行时,它说,权限被拒绝。如下所示:

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

<强>答案:

link之后,我带来了一个像魅力的解决方案,我很感激。在上面提到的“Move”命令行之前,我刚刚错过的是 sudo 命令。 现在我的Move命令如下:

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

它会直接提示您进行身份验证并查看您是否获得授权。因此,如果您输入有效密码,则移动将完成,您可以使用以下行检查是否全局安装了composer。

composer about

我希望这个答案可以帮助你拓宽视野,最终解决问题。

干杯!

答案 3 :(得分:15)

首先安装作曲家installation documentation中提到的作曲家。我刚刚在这里添加了参考资料。

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

然后将文件移至&#39; / usr / local / bin&#39;。

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,后跟版本号。

希望这会对某人有所帮助。

答案 4 :(得分:6)

只需运行此命令即可全局安装composer

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

答案 5 :(得分:4)

只需将其移至/usr/local/bin文件夹即可删除扩展程序

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

答案 6 :(得分:2)

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

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

export PATH=$PATH:/yourdirectory

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

mv composer.phar composer

答案 7 :(得分:1)

要从其他位置运行它,您可以使用程序附带的编写器程序。它基本上是一个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

答案 8 :(得分:0)

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

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

答案 9 :(得分:0)

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

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

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

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

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

.profile

要测试,请关闭会话并重新加载。如果运行正常,则运行if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi composer -v的行为应符合预期。