【问题标题】:Is there any way to install Composer globally on Windows?有没有办法在 Windows 上全局安装 Composer?
【发布时间】: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 变量中。

有什么线索吗?

【问题讨论】:

    标签: php windows composer-php


    【解决方案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.batcomposer)并使它们更通用,可以与任何 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 %*
                  

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

                  【讨论】:

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