在我的Windows中同时运行php 5.x和php 7.0

Hop*_*ope 15 php xampp version

我为我的php项目制作了一个备份文件,然后卸载旧的xampp(php 5.x.x).之后,我尝试安装最新的xampp version(php 7.0.1)并将旧的xampp中的备份文件放入包含其数据库的新文件中.问题是,当我尝试运行旧文件时遇到很多错误.似乎有很多代码已经过时的新PHP版本.再次运行旧文件的最佳方法是什么?我想我可能会重新安装旧的xampp,但我也想使用最新的php版本.什么是理想的事情?我已经阅读了一些关于它的文章,但我没有找到关于此的明确解释.请帮忙.

Lor*_*gon 24

我发现了一个解决方案,迅速从改变PHP的版本5.6,7.07.1,只有一个XAMPP安装.

我目前正在使用它在Windows上本地开发而没有问题,数据库保持不变,还有Apache httpd-vhosts.conf配置文件:这样可以快速轻松地更改PHP版本.

从ApacheFriends官方网站下载适用于Windows便携版的最新3版Xampp(控制面板3.2.2):

xampp-portable-win32-7.1.7-0-VC14.zip
xampp-portable-win32-7.0.21-0-VC14.zip
xampp-portable-win32-5.6.31-0-VC11.zip

C:\解压缩Xampp win32-7.1.7版本中将C:\  xampp\php文件夹
重命名为C:\ xampp\php-7.1.7

从Xampp win32-7.0.21版本
中将\ xampp\php文件夹解压缩到C:\ xampp\php
,然后将其重命名为C:\ xampp\php-7.0.21

从Xampp win32-5.6.31版本
中将\ xampp\php文件夹解压缩到C:\ xampp\php
,然后将其重命名为C:\ xampp\php-5.6.31

转到C:\ xampp\apache\conf\extra
并重命名httpd-xampp-php-7.conf中httpd-xampp.conf文件

从Xampp win32-5.6.31版本中,将\ xampp\apache\conf\extra\httpd-xampp.conf文件压缩到C:\ xampp\apache\conf\extra\httpd-xampp.conf
,然后将其重命名为httpd-xampp -php-5.conf

C:\ xampp**中创建一个名为"**php-switch " 的新文件夹,并创建3个.bat文件,每个文件对应一个您要管理的PHP版本.

以下是包含在各个文件中的代码:

设置PHP-5.6.bat

@echo off
rmdir C:\xampp\php
mklink /J C:\xampp\php C:\xampp\php-5.6.31
del C:\xampp\apache\conf\extra\httpd-xampp.conf
copy C:\xampp\apache\conf\extra\httpd-xampp-php-5.conf C:\xampp\apache\conf\extra\httpd-xampp.conf 
echo The version of PHP 5.6.31 is set
pause
Run Code Online (Sandbox Code Playgroud)

设置PHP-7.0.bat

@echo off
rmdir C:\xampp\php
mklink /J C:\xampp\php C:\xampp\php-7.0.21
del C:\xampp\apache\conf\extra\httpd-xampp.conf
copy C:\xampp\apache\conf\extra\httpd-xampp-php-7.conf C:\xampp\apache\conf\extra\httpd-xampp.conf
echo The version of PHP 7.0.21 is set
pause
Run Code Online (Sandbox Code Playgroud)

设置PHP-7.1.bat

@echo off
rmdir C:\xampp\php
mklink /J C:\xampp\php C:\xampp\php-7.1.7
del C:\xampp\apache\conf\extra\httpd-xampp.conf
copy C:\xampp\apache\conf\extra\httpd-xampp-php-7.conf C:\xampp\apache\conf\extra\httpd-xampp.conf
echo The version of PHP 7.1.7 is set
pause
Run Code Online (Sandbox Code Playgroud)

那么,是时候测试一切是否正常:
- 运行你想要设置的PHP版本的.bat文件(例如set-php-7.1.bat)
- 启动Xampp控制面板并启动Apache
- 通过本地检查PHP实时版本转到http://localhost/dashboard/phpinfo.php页面

要更改PHP版本:
- 从Xampp控制面板停止Apache
- 运行.bat文件以更改PHP版本(例如set-php-5.6.bat)
- 从Xampp控制面板启动Apache
- 通过转到http检查本地的PHP实时版本://localhost/dashboard/phpinfo.php页面

注意事项:

与在单独的文件夹中安装多个版本的Xampp相比,此解决方案只允许一个Xampp控制面板,只更改PHP版本,同时保持Batabase和任何Apache自定义在C:\ xampp\apache\conf\extra\httpd-中vhosts.conf文件不变.

此外,此解决方案可以与Linux和Mac一起使用,只需将.bat文件(及其命令)更改为.sh for Linux和.command for Mac文件(我个人没有在Linux和Mac上运行测试,但我希望它能够做没有任何问题).

  • 这对我的目的非常有用.如果xampp无法加载,请检查`C:\ xampp\apache\conf\extra\httpd-xampp`文件,记住php模块是基于版本的,所以它应该有php5_module或php7_module等语句,具体取决于版本.出于某种原因,当我切换到php7时,httpd-xampp仍然有php5的声明.非常感谢@Lorenzo! (2认同)