我有一个Xampp版本,它有PHP 5。它工作正常,问题是我安装了一个新的 Xampp,它有 PHP 7,我有第一个 xampp 在本地主机:80 中运行,另一个 xampp 在本地主机:8085 中运行。
我在不同的文件夹中有两个 Xampp,第一个在 C:/xampp 中,第二个在 C:/xampp7 中
当我使用 cmd 导航到 Xampp7 并打开命令行 php -v 时。我不明白如果这个 xampp 有 PHP 7,为什么它仍然向我显示 PHP 5。我想知道为什么会这样?我该如何解决它?
谢谢
如果你在Windows上使用php安装,为了从cli调用PHP,你必须将完整路径引用到php.exe
C:UsersYourUser> c:/xampp7/php/php.exe -v
。或者你已经正确设置了路径变量,所以当你调用php.exe
时,将搜索PHP目录。
如果您有两个 xampp 文件夹并从 php 文件夹以外的其他任何地方调用php.exe
,则 windows 将查找 path 变量并检测找到的第一个。
如果要更改此行为,请使用如上所述的绝对路径,或相应地设置路径变量。
实际上,php5 是在您的环境变量"path"中设置的。这就是为什么cmd "php -v"报告php5的原因。
如果在环境变量 "path" 中设置 php7 路径,则 cmd "php -v" 将返回 php7。
因此,无论您是否在不同的文件夹中安装 xampp,它都不会根据文件夹执行,而是根据环境变量"路径"执行 php 或 mysql。
最好的办法是为不同版本的 php 运行不同的应用程序,方法是在 xampp 中添加不同版本的 php。 帮助链接。 或者你可以离开xampp,开始使用便携式拉拉贡
请查看 Windows 中的命令搜索序列: https://technet.microsoft.com/en-us/library/cc723564.aspx#XSLTsection127121120120 (标题:命令搜索序列(
如果要cd'd
到文件夹中,则本地文件(步骤 6(优先于PATH
变量中列出的文件夹(步骤 7(
但是,您只需cd'd
C:Xampp7
- 这将导致PATH
中的最终查找,因为C:Xampp7
不包含php.exe
如果您cd
C:Xampp7phpbin
并运行php -v
它将按预期报告版本 7。
根据需要实现的目标,使用绝对路径或更改PATH
变量。