【问题标题】:Running php 5.x and php 7.0 at the same time in my windows [duplicate]在我的 Windows 中同时运行 php 5.x 和 php 7.0 [重复]
【发布时间】:2016-04-17 20:42:10
【问题描述】:

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

【问题讨论】:

  • 如果你仔细观察,不会有一大堆需要修复的东西。还不如升级代码而不是降级语言
  • @Hanky웃Panky 我的旧 xampp 中有一个大文件,更新所有这些代码需要很长时间。我在想的是使用两个php版本或两个xampp版本问题是我不知道如何。
  • @Hanky웃Panky 我认为这将是一个很好的补救措施。太感谢了。我现在将尝试安装两个 xampp。

标签: php xampp version


【解决方案1】:

我找到了一种解决方案,只需安装一个 Xampp,即可快速将 PHP 版本从 5.67.07.1 更改。

我目前正在使用它在Windows本地开发没有问题,数据库保持不变,Apache httpd-vhosts.conf配置文件:这允许快速更改P​​HP版本并且很容易。

从 ApacheFriends 官方网站下载最新的 3 个版本的 Xampp(控制面板 3.2.2)windows 便携版

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

将Xampp win32-7.1.7版本解压到C:\ 
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 版本。

这是要包含在各个文件中的代码:

set-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

set-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

set-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

好吧,是时候测试一切是否正常了:
- 运行您要设置的 PHP 版本的 .bat 文件(例如 set-php-7.1.bat)
- 启动 Xampp 控制面板并启动 Apache
- 前往http://localhost/dashboard/phpinfo.php页面查看本地PHP live版本

更改 PHP 版本:
- 从 Xampp 控制面板停止 Apache
- 运行 .bat 文件以更改 PHP 版本(例如 set-php-5.6.bat)
- 从 Xampp 控制面板启动 Apache
- 前往http://localhost/dashboard/phpinfo.php页面查看本地PHP live版本

注意事项:

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

此外,此解决方案可以在 Linux 和 Mac 上使用,只需将 .bat 文件(及其命令)更改为 Linux 的 .sh 和 Mac 文件的 .command(我个人没有在 Linux 和 Mac 上运行测试,但我期望它完成没有任何问题)。

【讨论】:

  • 这对我的目的非常有效。如果 xampp 无法加载,请检查 C:\xampp\apache\conf\extra\httpd-xampp 文件,记住 php 模块是基于版本的,因此它应该有 php5_module 或 php7_module 等语句,具体取决于版本。出于某种原因,当我切换到 php7 时,httpd-xampp 仍然有 php5 的声明。非常感谢@Lorenzo!
  • 今天我将我的 Xampp 安装更新到 PHP 7.3.0,并且我设法使用我的答案中提到的方法保留了以前版本的 PHP,所以我确认它继续正常工作。
  • 谢谢洛伦佐。到目前为止,这似乎是一种魅力。我将您的技术应用于 64 位版本的 xampp。值得一提的是,对于 php 7.0.x,xampp for Windows 仅提供 32 位版本。
  • 为我工作 - 但我被我原来的 xampp 是 32 位的事实所吸引,所以按照上面的步骤,我得到了 php 7.x 的 64 位版本。发现这一点后,我将 php 7 文件夹替换为来自windows.php.net/downloads/releases/archives 的 x86 线程安全版本
  • 这个变通办法就像魅力一样,但是文件名似乎在某些 Xampp 便携版本上发生了变化。此外,如果您需要(像我一样)在本地计算机上将主 Apache 端口更改为 8080,您需要在 c:/xampp/apache/conf/httpd.conf 上手动更改它们感谢@LorenzoMagon 为您的解决方案...拯救了我的一天!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
  • 1970-01-01
  • 2010-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-18
相关资源
最近更新 更多