有没有办法在 Windows 上全局安装 Composer?

Posted

技术标签:

【中文标题】有没有办法在 Windows 上全局安装 Composer?【英文标题】:Is there any way to install Composer globally on Windows? 【发布时间】:2012-08-17 01:35:33 【问题描述】:

我已经阅读了 Composer 的 global installation documentation,但它仅适用于 *nix 系统:

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

我会很高兴在 Windows 上做同样的事情,那是我开发机器的操作系统。我可以跑

composer update

来自composer.json 所在的任意文件夹。解释器php.exe 已经在PATH 变量中。

有什么线索吗?

【问题讨论】:

【参考方案1】:

你可以使用这个命令行安装它

 echo @php "%~dp0composer.phar" %* > composer.bat

【讨论】:

【参考方案2】:

不幸的是,这里所有的好答案都不适合我。因此,在 Windows 10 上安装 composer 后,我只需在 environment variables 中设置 system variable 即可。

【讨论】:

这并没有完全做到。相反,我将C:\ProgramData\ComposerSetup\bin'\composer 添加到我的PATH 变量中,这对我有用。【参考方案3】:

我遇到了同样的问题,当我检查 Windows 7 中的环境时,它指向不存在的 c:\users\myname\appdata\composer\version\bin。 该文件实际上位于 C:\ProgramData\ComposerSetup\bin 修复了环境设置中的位置,它工作了

【讨论】:

【参考方案4】:

我使用 Composer-Setup.exe,它工作正常。 以防万一您需要知道 composer.phar 在哪里(与 PhpStorm 一起使用):

C:\ProgramData\ComposerSetup\bin\composer.phar

【讨论】:

【参考方案5】:

转到 php.exe 所在的文件夹。

C:\wamp\bin\php\php5.5.12\

在那里打开cmd,然后执行下面的命令。

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

composer.phar 将下载到同一文件夹中。

C:// 驱动器中创建名为composer 的文件夹(或任何您希望的位置,对于接下来的步骤,请记住路径)。

composer.phar 文件移动到C://composer 文件夹。

在同一文件夹中创建composer.bat文件,内容如下

@ECHO OFF
php "%~dp0composer.phar" %*

创建名为 composer 的文件,不带任何扩展名。

在 CMD 中运行命令 type NUL > composer 将有助于快速完成它,

打开该文件并将下面的内容放入其中。

#!/bin/sh
dir=$(d=$(dirname "$0"); cd "$d" && pwd)
# see if we are running in cygwin by checking for cygpath program
if command -v 'cygpath' >/dev/null 2>&1; then
    # cygwin paths start with /cygdrive/ which will break windows PHP,
    # so we need to translate the dir path to windows format. However
    # we could be using cygwin PHP which does not require this, so we
    # test if the path to PHP starts with /cygdrive/ rather than /usr/bin.
    if [[ $(which php) == /cygdrive/* ]]; then
        dir=$(cygpath -m $dir);
    fi
fi
dir=$(echo $dir | sed 's/ /\ /g')
php "$dir/composer.phar" $*

保存。

现在设置path,这样我们就可以从cmd访问composer了。

显示桌面。

在桌面右键单击我的电脑快捷方式。

单击属性。

您应该会看到控制面板的一部分 - 控制面板\系统和 安全\系统。

单击左侧菜单上的高级系统设置。

单击窗口底部的环境变量。

在用户变量列表中选择 PATH。

将您的 PHP 路径 (C:\composer) 附加到您的 PATH 变量中,分开 用分号从已经存在的字符串中提取出来。

点击确定

重启你的机器。

或者,仅在 CMD 中使用以下命令重新启动 explorer

taskkill /f /IM explorer.exe
start explorer.exe
exit

这里有截图的原创文章:http://aslamise.blogspot.com/2015/07/installing-composer-manually-in-windows-7-using-cmd.html

【讨论】:

感谢您解决 Windows 命令提示符和 Cygwin。我采用了您的脚本(composer.bat、composer)并使它们更通用,可以与任何 phar 一起使用,例如 phpunit、phpcs、phpmd 等。可以这么说,一个脚本来统治他们。 这是 2017 年,两年后。这只是节省了我几个小时的在线搜索时间。谢谢。【参考方案6】:

这可能对某人有用:

在 Windows 7 上,如果您使用 curl 安装了 Composer,则可以在类似的路径中找到它:

C:\Users\<username>\AppData\Roaming\Composer

【讨论】:

【参考方案7】:

安装 Composer

在 Windows 上,您可以使用 Composer Windows Installer。

【讨论】:

我使用这个安装程序,但有些路径中没有作曲家 @Milad,我也有同样的经历。你用的是什么windows版本?我的是 Windows 8。我也必须手动添加作曲家的路径。 @OshMansor,我当时使用的是 windows 8.1,但我切换到 windows 7 一切顺利我在 windows8、android studio、vs 2013 中遇到了很多问题......我使用 Lusitanian 的答案和它对我有用。 知道默认的 composer.json 是在哪里创建的吗?【参考方案8】:

开始>计算机:属性>更改设置>高级>环境变量>路径:编辑[在";C:\<path to php folder>\php5.5.3"行的末尾添加此字符串(不带“”)..打开cmd并输入composer 就是这样:-)

【讨论】:

【参考方案9】:

好吧,现在这个问题有点过时了,因为现在有一个官方安装程序“将安装最新的 Composer 版本并设置您的 PATH,以便您可以从命令行中的任何目录调用 composer。”

您可以通过以下方式获得它:http://getcomposer.org/doc/00-intro.md#installation-windows

【讨论】:

它要求 php.exe 但我找不到任何 @atjoshi:你需要在windows上安装php。 Xampp 相当不错,而且设置起来也相对容易。【参考方案10】:

另一种变体(参见Lusitanian answer)是将.phar 文件注册为您系统上的可执行文件,例如phar.reg 文件:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.phar]
@="phar_auto_file"

[HKEY_CLASSES_ROOT\phar_auto_file\shell\open\command]
@="\"c:\\PROGRA~1\\php\\php.exe\" \"%1\" %*"

只需将php.exe 的路径替换为您的PHP 可执行文件。然后,您还可以使用.PHAR 扩展%PATHEXT% 命令行变量,只要composer.phar%Path% 内,您就可以键入composer 而不是composer.phar

【讨论】:

【参考方案11】:

当然。只需将composer.phar 放在C:\php\composer.phar 之类的位置,然后在PATH 中的某个位置创建一个名为composer.bat 的批处理文件,它执行以下操作:

@ECHO OFF
php "%~dp0composer.phar" %*

“%*”重复传递给 shell 脚本的所有参数。

然后你就可以到处乱跑composer update了!

【讨论】:

“无法打开输入文件:composer.phar”和PATH 是正确的。救命! 然后尝试在批处理文件中编写绝对路径。 好的,与 absolute 一起工作,谢谢。即使我更喜欢相对路径:) 更通用一点:SET SUBDIR=%~dp0 php %SUBDIR%/composer.phar %* 不在问题范围内,但您可以使用console2【参考方案12】:

很抱歉,我只是想分享一下我的想法,对我来说最简单的方法是将 composer.phar 重命名为 composer.bat 并将其放入我的 PATH 中。

【讨论】:

【参考方案13】:

如果将批处理放在与 composer.phar 相同的文件夹中,则更通用:

@ECHO OFF
SET SUBDIR=%~dp0
php %SUBDIR%/composer.phar %*

我会把它写成评论,但那里没有代码

【讨论】:

我在上面的答案中合并了您的代码,以使其更具可见性。

以上是关于有没有办法在 Windows 上全局安装 Composer?的主要内容,如果未能解决你的问题,请参考以下文章

在Windows中全局检测双击[关闭]

有没有办法在 Windows 中使用 npm 安装不同的节点版本?

有没有办法通过本机 C# 调用检测系统上安装了哪些 Windows 应用商店应用程序?

U盘安装WINDOWS10时提示无法在驱动器上安装WINDOWS解决办法

有没有办法在 Windows 上的 python 2.7 64 位上使用 ibm_db?

使用 python 在 Mac 上监控全局键盘输入