Windows 配置命令行多版本php共存

最近调一个老系统的数据,发现对php环境很挑剔。系统里默认的php7.2下执行不了。改了配置换到5.3版本又发现没有合适的sqlsrv驱动。这php版本改来改去,实在是麻烦,突然想到能不能仿照linux下的快捷方式的模式做一个多版本php共存在命令行下的东西呢?

说试就试,电脑里本来就下载了多个php版本的配置(之前在iis里有用到)

p1.png


首先,直接把全部php目录加到环境变量中是行不通的,因为php.exe同名,最终只能有一个有效。分别去改名字不太合理,也怕对php目录有什么影响。


然后想到的是直接把php.exe分别创建不同名字的快捷方式放到同一个目录,把这个目录添加到环境变量中

建了一个就发现行不通,命令行下不能把快捷方式识别为可执行程序


接下来就是分别建立批处理文件,在批处理代码中转调到对应版本的php。

经测试,最终代码如下(php72.bat):

@"D:\Program Files\PHP-7.2\php.exe" %*

这里@屏蔽了转调用信息,这样命令行不会有多余的显示,和直接调用php.exe就一样了.

后面跟的是对应版本的php的完整路径,再后面 %* 是传递所有参数

把需要用到的版本各建一个bat文件,放到同一个目录中

p2.png

然后把这个目录加到环境变量中。


最终效果:

pc.png