我目前正在运行带有多个PHP版本的Wampserver(5.3.8,5.4.3)。 Wampserver轻松允许您在希望apache使用的php版本之间来回切换。但是,我在从CLI处理多个版本时遇到了麻烦。我有需要命令行的项目,但有些与php5.4兼容,而有些则不兼容。
有没有办法在Windows中创建某种类型的“别名”,允许我指定在命令行上使用哪个版本的PHP .. IE:“php54 cache:clear”,“php53 cache:clear”? ?
谢谢!
答案 0 :(得分:3)
非常简单。
创建一个批处理文件以将php添加到路径中,将该文件放在PATH中当前的一个文件夹中,以便您可以从任何位置运行它。 然后,只要您在任何包含CLI脚本的文件夹中,就运行批处理文件
批处理文件示例:
让我们称之为PHPPATH.CMD
path=%path%;c:\wamp\bin\php\php5.4.11
php -v
现在,如果您想使用另一个版本的PHP CLI,只需更改批处理文件,或者如果您感觉很聪明,请让批处理文件接受参数,这样您就可以在路径上指定所需的php版本。
答案 1 :(得分:1)
我正在做类似下面的事情。
例如我有两个php版本,PHP 5.6和PHP 7.3
我有沼泽环境,所以我做了如下
所以我已经将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
我希望这会有所帮助
答案 2 :(得分:0)
如果可以的话,只需创建别名:
别名'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%
希望这会有所帮助
答案 3 :(得分:0)
我已经搜索了如何真正轻松地做到这一点,而无需使用命令行更改环境变量路径(因为它的字符限制),并且找到了这种解决方案(仅在Windows 10上):
在您的环境变量路径中,在[D:\wamp64\bin\php\"your php version"]
中更改[D:\wamp64\bin\php\php]
然后通过以管理员身份在cmd中运行以下命令来在php版本目录和D:\wamp64\bin\php\php
之间建立连接:
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中运行您的批处理文件,甚至不必在以后重新启动它。