更改 Composer 在 Windows 上使用的 PHP 版本
Posted
技术标签:
【中文标题】更改 Composer 在 Windows 上使用的 PHP 版本【英文标题】:Change PHP version used by Composer on Windows 【发布时间】: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.12
和 C:\nginx\php
都放在了 Windows 系统 PATH 变量中。
如何更改 Composer 使用的 PHP 版本?
【问题讨论】:
在使用 WAMPServer 时,绝不会将任何 PHP 文件夹放在 Windows PATH 上。由于 WAMPServer 可以包含 20 个版本的 PHP,如果你把东西放在 PATH 上,你就破坏了通过 wampmanager 菜单切换 PHP 版本的能力 你的意思是我应该在 WAMPServer 上安装另一个 PHP 版本?但是使用安装在 WAMPServer 上的 PHP 来托管在 Nginx 上运行 PHP 的 Web 是否有效? 不,我不想这么说 我这样说对吗,仅适用于我在 WAMPServer 上托管的情况? 是的,我想是的,但现在我有点困惑 【参考方案1】:虽然这个问题已经解决了,但答案并没有帮助我。我将解释我是如何设法使composer 在不同于默认安装在我的操作系统(PHP 7.1.1)以及我的环境变量(这些不会改变! )。请注意,我使用的是 Xampp,但 Wamp 的原理保持不变。
从this answer开始:
-
启动 Git Bash
输入
cd ~/
以转到您的主文件夹
输入 touch .bash_profile
以创建您的新文件。
用您最喜欢的编辑器编辑.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 的项目中
使用作曲家:
$ composer update
This package requires php ^7.1.3 but your HHVM version does not satisfy that requirement.
使用 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时应该默认使用。
希望这会有所帮助!
【讨论】:
以上是关于更改 Composer 在 Windows 上使用的 PHP 版本的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Composer 在 Windows 上安装 Mailgun 库
如何在 windows(cmd) 上使用 composer 运行 phpunit 测试 [重复]
Composer 无法在 Windows 上运行,出现 [Composer\Exception\NoSslException] 错误
无法使用 composer 在 Windows 上安装 laravel,导致错误无法打开 Stream:Permission denied