6

我目前正在运行具有多个 PHP 版本(5.3.8、5.4.3)的 Wampserver。Wampserver 允许您轻松地在您希望 apache 使用的 php 版本之间来回切换。但是,我在处理来自 CLI 的多个版本时遇到了麻烦。我有需要命令行的项目,但有些与 php5.4 兼容,有些则不兼容。

有没有办法在 Windows 中创建某种类型的“别名”,允许我在命令行上指定要使用的 PHP 版本.. IE:“php54 cache:clear”、“php53 cache:clear”?

谢谢!

4

4 回答 4

17

我正在做类似下面的事情。

前任。我有两个 php 版本,PHP 5.6 和 PHP 7.3

我有 wamp 环境所以我做了如下

所以我已将 D:\wamp\bin\php\php7.3.6\php.exe 复制到 D:\wamp\bin\php\php7.3.6\php7.exe

我已将 D:\wamp\bin\php\php5.6\php.exe 复制到 D:\wamp\bin\php\php5.6\php56.exe

然后我将两者都添加到环境变量路径中,如下所示。

在此处输入图像描述

现在你需要重新打开 cmd,你可以使用类似下面的命令

php56 -v
php7 -v

您还可以运行命令refreshenv在打开的 cmd 中重新加载环境变量。

如果要更改默认 php 版本,可以如下移动路径。

例如,如果您希望 php 7.0.23 作为默认值而不是 php 7.3.6

例如看截图在此处输入图像描述

在上面的屏幕截图中,我将 php 7.0.23 移到了所有其他 php 版本(php 7.3.6 和 php 5.6.31)之上。

我希望这将有所帮助。

于 2019-10-09T13:27:28.103 回答
1

Its quite simple really.

Create yourself a batch file to add php to the path, place that file in one of the folders that is currently on your PATH so you can run it from anywhere. Then whenever you are in any folder that has CLI scripts in it run the batch file

Example batch file:

Lets call it PHPPATH.CMD

path=%path%;c:\wamp\bin\php\php5.4.11
php -v

Now if you want to use another version of the PHP CLI just change the batch file or if you are feeling clever make the batch file accept a paramter so you can specify the version of php you want on the path.

于 2013-04-27T01:35:33.193 回答
1

如果您能够这样做,只需创建别名

别名'php56'='/Path/To/php5.6/bin/php'; 别名'php55'='/Path/To/php5.5/bin/php';

如果没有,请在指向二进制文件的单独目录中创建链接。

php56 是指向/Path/To/php5.6/bin/php的链接

php55 是指向/Path/To/php5.5/bin/php的链接

将它们放入 /Seperate/Path/ 并将 '/Seperate/Path/' 添加到 %PATH%

希望这可以帮助

于 2018-11-27T14:48:15.070 回答
1

我已经搜索了如何在不使用命令行更改环境变量路径的情况下真正轻松地做到这一点(因为它的字符有限)并找到了这个解决方案(仅在 Windows 10 上):在你的环境变量路径中,[D:\wamp64\bin\php\"your php version"]更改[D:\wamp64\bin\php\php]

然后在您的 php 版本目录之间创建一个联结,并D:\wamp64\bin\php\php以管理员身份在 cmd 中运行此命令: mklink /J D:\wamp64\bin\php\php D:\wamp64\bin\php\php"your php version"

那么你可以使用这个批处理文件

echo off
::read the actual php version
::(read the second word of php -v output )
for /f "tokens=2" %%i in ('php -v') do (

    ::if actual version is 7.4.0 I want 7.4.1
    if "%%i"=="7.4.0" set phpV="7.4.1"
    ::if actual version is 7.4.1 I want 7.4.0
    if "%%i"=="7.4.1" set phpV="7.4.0"
)

::delete the old junction
rmdir "D:\wamp64\bin\php\php"

::create a new one to the version I want
::!!!!!!!!!!!!!!!!!!! paths must not contains spaces
mklink /J D:\wamp64\bin\php\php D:\wamp64\bin\php\php%phpV%

现在您可以在您的 cmd 中运行您的批处理文件,之后甚至不必重新启动它。

于 2020-08-24T17:31:20.960 回答