我有一个Xampp版本,它具有PHP5。它可以正常工作,问题是我安装了一个新的Xampp,它具有PHP 7,我在本地主机:80中运行了第一个xampp,在本地主机中运行了另一个xampp: 8085。
我在不同的文件夹中有两个Xampp,第一个在C:/ xampp中,第二个在C:/ xampp7
当我使用cmd导航到Xampp7并在命令行上放置php -v时。我不明白为什么如果此xampp具有PHP 7,它仍然向我显示PHP5。我想知道为什么会这样吗?以及我该如何解决?
谢谢
答案 0 :(得分:0)
如果您在Windows上使用php安装,则要从cli调用PHP,您必须将完整路径引用到php.exe
C:\Users\YourUser> c:/xampp7/php/php.exe -v
...或者您已经正确设置了路径变量,因此在调用php.exe
时将搜索PHP目录。
如果您有两个xampp文件夹,并且从php文件夹之外的任何地方调用php.exe
,则Windows将查找path变量并检测找到的第一个变量。
如果要更改此行为,请使用上述绝对路径,或相应地设置path变量。
答案 1 :(得分:0)
实际上,php5是在环境变量“ path”中设置的。这就是为什么cmd“ php -v”报告php5的原因。
如果在环境变量“ path”中设置php7路径,则cmd“ php -v”将返回php7。
因此,无论您是否将xampp安装在其他文件夹中,它都不会根据文件夹执行,而是根据环境变量“路径”执行php或mysql。
通过在xampp中添加不同版本的php,您可以尽力为不同版本的php运行不同的应用程序。 help link。 或者,您可以离开xampp并开始使用laragon portable
答案 2 :(得分:0)
请查看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
< / p>
如果您将cd
插入C:\Xampp7\php\bin
并运行php -v
,它将按预期报告版本7。
取决于您要实现的目标,使用绝对路径或更改PATH
变量。