Windows主机上检测到版本与安装版本不匹配
问题现象
以安装PHP为例进行说明,例如选择的版本为“php-7.2.12”:
安装成功后,用主机进行连通性验证时的用户登录主机去查看php版本,如下图所示:
检测到的版本为“PHP 5.6.38”或其他版本,与安装版本不匹配。
原因分析
该主机之前安装过其他版本的PHP,再次安装会将新的php的路径追加到“Path”变量的最后面。系统按“Path”中的路径从前到后的顺序查找相应的程序命令,根据之前的php路径找到程序命令就会停止,因此会发生版本不匹配的问题。如下图所示:
当在路径“C:/php2”下找到相应程序命令,就不会去找“C:/php”下的程序命令。
处理方法
以用户环境变量为例,系统环境变量方法与用户环境变量相同。
- 根据变量“Path”中是否存在变量引用,采取对应的处理方法:
- 当变量“Path”中不存在如“%PHP_HOME%”的变量引用,将“Path”中之前的与php有关的路径删除或者将新增加的php路径放在“Path”变量的最前面。
- 当变量“Path”中存在如“%PHP_HOME%”的变量引用,并且系统查找php路径时会被最先找到,在环境变量中找到“PHP_HOME”,将值更改为新增加的php的路径。