我刚刚在我的/usr/bin
文件夹中安装了作曲家,所以当我从那个文件夹运行时,php composer.phar
我会得到有关作曲家的帮助信息。但是,当我尝试从其他文件夹运行相同的文件时,我得到Could not open input file: composer.phar
.
如何php composer.phar
从任何地方拨打电话都没有问题?
我刚刚在我的/usr/bin
文件夹中安装了作曲家,所以当我从那个文件夹运行时,php composer.phar
我会得到有关作曲家的帮助信息。但是,当我尝试从其他文件夹运行相同的文件时,我得到Could not open input file: composer.phar
.
如何php composer.phar
从任何地方拨打电话都没有问题?
由于 Composer 使用当前工作目录,因此可以以系统范围的方式安装它。
- 更改为路径中的目录,例如
cd /usr/local/bin
- 获取作曲家
curl -sS https://getcomposer.org/installer | php
- 使 phar 可执行
chmod a+x composer.phar
- 切换到项目目录
cd /path/to/my/project
- 像往常一样使用 Composer
composer.phar install
- 或者,您可以将其重命名 为使其更容易
composer.phar
composer
更新:有时你不能或不想下载/usr/local/bin
(有些遇到用户权限问题或访问受限),在这种情况下,你可以试试这个
curl -sS http://getcomposer.org/installer | php -- --filename=composer
chmod a+x composer
sudo mv composer /usr/local/bin/composer
更新 2:对于 Windows 10 和 PHP 7,我推荐本教程(存档)。就个人而言,我在 PHP 7.3 VC15 x64 Non Thread Safe 版本之前为 Visual Studio 2017 x64 安装了 Visual C++ Redistributable (在PHP for Windows页面,侧面菜单中检查这两个版本)。仔细阅读,也许 enable-extensions 部分可能会有所不同(extension=curl
而不是extension=php_curl.dll
)。像魅力一样工作,祝你好运!
composer.phar 可以自己运行,不需要在它前面加上php
. 这应该可以解决您的问题(在 bash 的 $PATH 和 php 的 include_path 不同)。
背景:
实际上,在 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
回答:
以下链接使我像魅力一样找到了解决方案,对此我深表感谢。我刚刚错过的是上述“移动”命令行之前的sudo命令。现在我的移动命令如下:
sudo mv composer.phar /usr/local/bin/composer
Password:
它直接提示您进行身份验证并查看您是否被授权。因此,如果您输入有效的密码,那么移动将完成,您可以使用以下行检查是否全局安装了 composer。
composer about
我希望这个答案可以帮助您拓宽视野并最终解决您的问题。
干杯!
首先安装作曲家安装文档中提到的作曲家。我只是在这里添加以供参考。
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
其后跟版本号。
希望这会对某人有所帮助。
只需将其移动到/usr/local/bin
文件夹并删除扩展名
sudo mv composer.phar /usr/local/bin/composer
只需运行此命令即可全局安装 composer
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
对于 MAC 和 LINUX,请使用以下过程:
将 composer.phar 所在的目录添加到您的 PATH 中:
export PATH=$PATH:/yourdirectory
然后将 composer.phar 重命名为 composer:
mv composer.phar composer
您可以进行简单的全局安装以从任何地方运行它
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
在你正在使用的任何目录中做。
要从其他位置运行它,您可以使用程序附带的 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
其中一些可能是由于您的服务器正在运行的操作系统。我最近迁移到了一个运行 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 -v
或which composer
应该按预期运行。