【问题标题】:Change PHP version used by Composer on Windows更改 Composer 在 Windows 上使用的 PHP 版本
【发布时间】:2017-02-14 08:50:20
【问题描述】:

我已经将 WAMP 2.5 与 PHP 5.5.12 和 Composer 一起使用。 php 开启:

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

对于新项目,我需要使用 nginx 并安装 PHP 7。 php 开启:

C:\nginx\php

现在,使用 GitBash MINGW32,我尝试使用 Composer create-project 安装 laravel 5.3,但它说

[InvalidArgumentException]
Could not find package laravel/laravel with version 5.3 in a version 
installable using your PHP version 5.5.12.

我已经将 C:\wamp\bin\php\php5.5.12C:\nginx\php 都放在了 Windows 系统 PATH 变量中。

如何更改 Composer 使用的 PHP 版本?

【问题讨论】:

  • 在使用 WAMPServer 时,绝不会将任何 PHP 文件夹放在 Windows PATH 上。由于 WAMPServer 可以包含 20 个版本的 PHP,如果你把东西放在 PATH 上,你就破坏了通过 wampmanager 菜单切换 PHP 版本的能力
  • 你的意思是我应该在 WAMPServer 上安装另一个 PHP 版本?但是使用安装在 WAMPServer 上的 PHP 来托管在 Nginx 上运行 PHP 的 Web 是否有效?
  • 不,我不想这么说
  • 我这样说对吗,仅适用于我在 WAMPServer 上托管的情况?
  • 是的,我想是的,但现在我有点困惑

标签: php laravel nginx composer-php wamp


【解决方案1】:

虽然这个问题已经解决了,但答案并没有帮助我。我将解释我是如何设法使composer 在不同于默认安装在我的操作系统(PHP 7.1.1)以及我的环境变量(这些不会改变! )。请注意,我使用的是 Xampp,但 Wamp 的原理保持不变。

  • this answer开始:

    1. 启动 Git Bash
    2. 输入 cd ~/ 以转到您的主文件夹
    3. 输入 touch .bash_profile 以创建您的新文件。
    4. 用您最喜欢的编辑器编辑.bash_profile

  • 在我的例子中,我在 xampp 文件夹中有一个名为 php733 的文件夹,它对应于 PHP 7.3.3。这是this other answer,它帮助我创建了别名:

    alias composer733='/c/[xampp folder]/php733/php.exe /c/ProgramData/ComposerSetup/bin/composer.phar '
    

    然后,键入 . .bash_profile 以重新加载 .bash_profile 并更新您添加的任何函数。 注意两个点之间的空间


最后,在 Git Bash 中输入以下命令:

composer733 [whatever you wan]

示例:在至少需要 PHP 7.1.3 的项目中

  1. 使用作曲家

    $ composer update
    This package requires php ^7.1.3 but your HHVM version does not satisfy that requirement.
    
  2. 使用 composer733(我创建的别名):

    $ composer733 update
    Loading composer repositories with package information
    Updating dependencies (including require-dev)
    Package operations: 98 installs, 0 updates, 0 removals
      - Installing [...] (v1.11.0): Loading from cache
    

无需更改环境变量即可工作

【讨论】:

  • 添加alias php733='/c/[xampp folder]/php733/php.exe' 以在您的终端中使用php733
【解决方案2】:

三种方法可以做到这一点,真的。

.bashrc 中创建一个别名以始终使用相应版本运行composer

类似alias ncomposer=`/path/to/php /path/to/composer.phar `

composer.phar本身内指定PHP版本的路径

这是在文件开头指定的:#!/path/to/php php。然后作曲家应该运行composer.phar

注意!自我更新后,这条线会消失,所以这不是一个可靠的解决方案。

使用最新的 PHP 版本上移

如果你把C:\nginx\php放在前面,使用composer时应该默认使用。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2017-12-17
    • 1970-01-01
    • 2016-08-04
    • 2017-11-11
    • 2015-08-07
    • 2017-12-13
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多