有没有办法在XAMPP中使用两个PHP版本?

我们使用PHP 7.0运行XAMPP,因为我们的新产品需要PHP 7。

但有些老项目使用mysql_connect等函数。这些在PHP 7.0中被删除。

那么,是否有一种方法可以轻松地在XAMPP中更改PHP版本?

请注意:请不要建议将旧项目升级到与新版本兼容,因为我不适合这样做 我不能作为一个开发人员(只是一个员工)得到的决定

373311 次浏览
你可以下载和安装两个不同的xampps,就像我做的:(第一个是php7,第二个是php5) enter image description here < / p >

如果你不想这样做,我建议你使用wamp并像在这里那样更改版本。

你可以下载你需要的任何版本的PHP,并把它们放在自己的目录中。

c:\php5\

c:\php7\

你所需要做的就是告诉你的web服务器(Apache)要使用哪个版本的PHP,这是通过加载适当的模块来完成的。在Apache中,你可以通过找到文件httpd.conf,然后编辑相应的行来做到这一点:

LoadModule php7_module c:\php7\libphp7.so

当然,你必须找出正确的路径——这只是为了说明。

保存httpd.conf并重新启动服务器。注意,如果您不重新启动它,更改将不会生效。

没有GUI开关能够做到这一点,你需要编辑.conf文件,然后重新启动Apache。这样做只需要几秒钟,你甚至可以注释掉一个版本,这样“切换”只需要几次按键,例如。

使用PHP 5:

LoadModule php5_module c:\php5\libphp5.so
#LoadModule php7_module c:\php7\libphp7.so

使用PHP 7:

#LoadModule php5_module c:\php5\libphp5.so
LoadModule php7_module c:\php7\libphp7.so

您不需要多个版本的XAMPP,或双启动,或使用不同的机器,或任何其他的“解决方案”,已经提出了复杂的解决方案。OP希望使用XAMPP,并告诉它使用哪个版本的PHP。这是最快和最有效的方法,并且只需要安装一次XAMPP。

编辑2017年1 - 11月-:显然有人说Windows上没有.so文件。我给出的答案改编自我在Mac上设置的东西(它使用.so文件而不是.dll)。然而,答案的原理仍然是完全正确的。你正在使用Apache的配置文件httpd.conf来指定位于你系统上的PHP模块(.so.dll)的在哪里。所以Windows的唯一区别是文件名和/或路径位置。我给出的答案也适用于Apache/PHP的普通安装(完全没有XAMPP)。

您可以有两个不同版本的XAMPP。

  • https://www.apachefriends.org/download.html下载这些文件并安装到您选择的目录中,例如在C:\5.6.31\xampp和C:\7.1.18\xampp中。
  • 每次安装后,转到已安装目录(例如C:\5.6.31\xampp, C:\7.1.18\xampp)并启动“setup_xampp.bat”,您应该会看到如下内容 李这一点。 < / >
  • 您可以在桌面上制作“xampp-control.exe”的快捷方式(右键单击“xampp-control.exe”发送到->桌面),并重命名ex的快捷方式。“xampp 5.6.31”和“xampp 7.1.8”。
  • 双击“XAMPP -control.exe”或之前创建的快捷方式启动XAMPP控制面板,启动Apache和MySQL服务器。
  • 要测试安装,请打开浏览器并在位置栏中键入127.0.0.1或localhost。您应该看到XAMPP启动屏幕。
  • 不要打开多个XAMPP控制面板。
  • <李> XAMPP卸载?只需删除“xampp”目录。 但是在此之前请关闭apache和mysql
  • 这是所有。你可以使用不同的php版本打开相应的XAMPP控制面板。

我推荐使用Docker,它允许你将环境分成不同的组件,并在任何时候混合和匹配你想要的组件。

Docker将允许您运行一个容器与MySQL,另一个与PHP。因为它们是独立的映像,所以你可以有两个容器,一个是PHP 5,另一个是PHP 7,你可以任意启动一个,端口80可以映射到两个容器。

https://hub.docker.com有广泛的预配置映像,您可以安装和运行没有太多的麻烦。

我还添加了集装箱岸吊作为映像,它允许你从docker映像中管理docker设置的各个方面(我在启动时启动了这个容器,以节省我必须使用命令行)。它不能为你做所有的事情,有时从命令行配置和启动图像更容易,但一旦设置好,你可以通过web界面启动和停止它们。

也可以同时运行两个容器,并将单独的端口映射到每个容器。因此,端口80可以映射到PHP 5, 81可以映射到PHP 81(或者PHP 7,如果你在2017年看这个)。

有各种关于如何安装Docker(https://docs.docker.com/engine/installation/)的教程和其他“如何”类型的东西。为开发环境配置尝试http://www.masterzendframework.com/docker-development-environment/

你不需要在这个配置上浪费时间,只需使用MAMP:)

MAMP在界面上有PHP版本选择功能。

是的,你可以。我假设您已经安装了xampp。所以,

  • 关闭所有xampp实例。使用任务管理器停止apache和mysqld。
  • 然后将xampp重命名为xampp1或xampp名称之后的其他名称。
  • 现在下载另一个xampp版本。只创建文件夹名xampp。在那里安装下载的xampp。
  • 现在,根据您需求的xampp版本,只需将目标文件夹重命名为xampp,将其他文件夹重命名为不同的名称。

这就是我如何使用多个xampp安装

除非它必须是绝对的XAMPP,否则你可以尝试用WAMP得到你想要的。 WAMP在不同的包中几乎是相同的东西

一旦你安装了它,你可以在这里切换php版本:

enter image description here

您可以根据需要安装任意版本的PHP。

下面是具体的操作步骤。

只要去这里:里面下载

然后选择你的基础服务器,例如最新的php7。

然后,当WAMP 3安装后,进入文件夹:插件并选择你想要的php版本。他们提供了从php 5.3.29开始的php版本,它应该与mysql_connect一起工作。

要安装插件,在安装过程中(双击exe文件)只需指向安装WAMP 3的文件夹。

然后你可以使用其他文件夹的内容,如:应用程序等来添加更多的功能

所有东西都是接口的,所以您可以专注于编码,而不是破坏您的环境。

安装一个XAMPP就可以安装多个版本的PHP。下面的说明适用于Windows。

  1. 为Windows安装最新的XAMPP版本(在我的例子中是PHP 7.1)
  2. 确保Apache没有从XAMPP控制面板运行
  3. 重命名XAMPP安装目录中的php目录,例如C:\xampp\php变成C:\xampp\php-7.1.11
  4. 下载你想运行的PHP版本(例如:PHP 5.4.45)
  5. 将php目录从您下载的版本移动到XAMPP安装目录。重命名它,使其包含PHP版本。例如C:\xampp\php-5.4.45

现在你需要编辑XAMPP和Apache配置:

  1. C:\xampp\apache\conf\httpd.conf中,找到PHP的XAMPP设置,你应该将其更改为如下内容:

你必须注释(用#)其他的PHP版本,所以一次只有一个Include会被解释。

#XAMPP settings PHP 7
Include "conf/extra/httpd-xampp.conf.7.1"


#XAMPP settings PHP 5.4.45
#Include "conf/extra/httpd-xampp.conf.5.4.45"
  1. 现在在C:\xampp\apache\conf\extra目录中将httpd-xampp.conf重命名为httpd-xampp.conf.7.1,并为httpd-xampp.conf.5.4.45添加一个新的配置文件。在我的例子中,我复制了用于php 5.5的另一个XAMPP安装的conf文件,因为每个版本的语法可能略有不同。

  2. 编辑httpd-xampp.conf.5.4.45httpd-xampp.conf.7.1,并用新的php-X.X版本替换对php目录的所有引用。这里每个文件至少要做10个更改。

  3. 现在需要为这两个版本编辑php.ini。例如,在php 7.1中,编辑C:\xampp\php-7.1.11\php.ini,你将在其中替换php目录的路径include_pathbrowscaperror_logextension_dir..

就是这样。您现在可以从XAMPP控制面板启动Apache。要从一个版本切换到另一个版本,你只需要在重新启动Apache之前编辑C:\xampp\apache\conf\httpd.conf并更改包含的PHP版本。

也许有点晚了,但我正在使用批处理重命名PHP文件夹(几年前我发现的phpswitch的稍微修改版本)。

将不同的文件夹复制到XAMPP安装中。每个PHP文件夹(活动文件夹除外)接收版本号作为后缀(例如。php_5.6.32)。在所有 PHP文件夹中,创建一个文件(PHP_VERSION),其中只包含相应的版本号,因此脚本可以获取此信息。但这些都在自述书中描述了。

从PHP7开始,httpd-xampp.conf加载的是php7ts.dll而不是php5ts.dll。因此,我必须扩展脚本(PHPSwitch.php),以遵循相同的方法重命名这些配置文件。

    $renameCur = new PHPSwitch_Rename($currInst['path'], $this->_cfg['phpInstallationsPath'] . $this->_cfg['phpDirName'] . '_' . $currInst['version']);
$renameNew = new PHPSwitch_Rename($newInst['path'], $this->_cfg['phpInstallationsPath'] . $this->_cfg['phpDirName']);


$apache_curent      = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp.conf";
$apache_curent_rename   = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp_".$currInst['version'].".conf";
$apache_new             = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp_".$newInst['version'].".conf";
$apache_new_rename      = $this->_cfg["phpInstallationsPath"]."apache/conf/extra/httpd-xampp.conf";


$renameCur_apache_conf = new PHPSwitch_Rename($apache_curent, $apache_curent_rename);
$renameNew_apache_conf = new PHPSwitch_Rename($apache_new, $apache_new_rename);


$transaction = new PHPSwitch_Rename_Transaction();
$transaction->add($renameCur);
$transaction->add($renameNew);
$transaction->add($renameCur_apache_conf);
$transaction->add($renameNew_apache_conf);

我使用unisserver。

它内置了这个功能。

http://www.uniformserver.com/

就是这么简单。

统一服务器是一个免费的轻量级WAMP服务器解决方案。小于24MB,模块化设计,包括最新版本的Apache2, Perl5, PHP(在PHP53, PHP54, PHP55或PHP56之间切换),MySQL5或MariaDB5, phpMyAdmin或Adminer4。不需要安装!没有注册尘埃!打开行李,发动吧!

它甚至可以用u盘运行。有cron仿真,支持perl, mariaDB,几个版本的Mysql, filezilla服务器和其他一些东西。

enter image description here

我需要做同样的事情,所以我谷歌了一下,结果发现堆栈溢出,而OP也有同样的问题……所以我的发现…我尝试从不同的方向重命名文件,我的结论基本上是它花了我太长时间。所以我最终只是从这里安装了第7版:

https://www.apachefriends.org/index.html (在尝试之前终止xampp服务并退出xampp

当被问到在哪里放置目录名称时,就像这样(给它一个不同的名字):

enter image description here

而且

DONEZO !现在只要确保在来回交换之前杀死服务并退出,你就有2个无菌的XAMPP环境可以玩。

万岁!现在我真的可以去工作了!

当你可以同时使用多个PHP版本一个xampp安装时,为什么要在PHP版本之间切换?

安装一个xampp,你有两个选择:

  1. 这在大多数情况下都是有效的。您可能有一个或两个旧项目,打算使用较旧的PHP版本运行。只需将xampp配置为仅针对这些项目目录运行较旧的PHP版本。

  2. 有时候你可能会把一个旧的项目升级到最新的PHP版本,同时你需要在新的PHP版本和旧的PHP版本之间来回运行同一个项目。要做到这一点,你可以在不同的端口上设置一个旧的PHP版本(比如8056),这样当你进入http://localhost/any_project/时,xampp运行PHP 7,当你进入http://localhost:8056/any_project/时,xampp运行PHP 5.6。

  3. 你可以创建一个像localhost56这样的虚拟主机来运行PHP 5.6,而你可以在localhost上使用php7。

我们来设置一下

下载PHP

假设你在xampp下运行PHP 7,你想要添加一个较旧的PHP版本(比如PHP 5.6)。从php.net下载nts(非线程安全)版本的PHP压缩文件(旧版本请参阅存档),并在c:\xampp\php56下解压缩文件。线程安全版本不包括php-cgi.exe。

步骤2:配置php.ini

在记事本中打开文件c:\xampp\php56\php.ini。如果文件不存在,将php.ini-development复制到php.ini并在记事本中打开它。然后取消下面这一行的注释:

extension_dir = "ext"

同样,如果Apache config httpd-xampp.conf中存在以下行

SetEnv PHPRC "\\path\\to\\xampp\\php"

用开头的#(散列字符)注释掉它。

步骤3:配置apache

打开xampp控制面板,单击apache的config按钮,然后单击Apache (httpd-xampp.conf)。将打开一个文本文件。将以下设置放在文件底部:

ScriptAlias /php56 "C:/xampp/php56"
Action application/x-httpd-php56-cgi /php56/php-cgi.exe
<Directory "C:/xampp/php56">
AllowOverride None
Options None
Require all denied
<Files "php-cgi.exe">
Require all granted
</Files>
</Directory>

<强>注意:< / >强 如果您愿意,可以在步骤1到3之后向xampp安装中添加更多版本的PHP。

步骤4(选项1): [添加目录以运行特定的PHP版本]

现在可以设置将在PHP 5.6中运行的目录。只需在配置文件(步骤3中的httpd-xampp.conf)底部添加以下内容来设置目录。

<Directory "C:\xampp\htdocs\my_old_project1">
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</Directory>


<Directory "C:\xampp\htdocs\my_old_project2">
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</Directory>

步骤4(选项2): [在单独的端口上运行旧的PHP版本]

现在要在8056端口上设置PHP v5.6,将以下代码添加到配置文件的底部(步骤3中的httpd-xampp.conf)。

Listen 8056
<VirtualHost *:8056>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</VirtualHost>

步骤4(选项3): [在虚拟主机上运行旧的PHP版本]

要在目录(htdocs56)上创建一个虚拟主机(localhost56),以便在http://localhost56上使用PHP v5.6,请在所需的位置创建目录htdocs56并 添加localhost56到你的hosts文件(看看), 然后将以下代码添加到配置文件的底部(步骤3中的httpd-xampp.conf)
<VirtualHost localhost56:80>
DocumentRoot "C:\xampp\htdocs56"
ServerName localhost56
<Directory "C:\xampp\htdocs56">
Require all granted
</Directory>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php56-cgi
</FilesMatch>
</VirtualHost>

完成:保存并重启Apache

保存并关闭配置文件。从xampp控制面板重新启动apache。如果您选择选项2,您可以在xampp控制面板中看到附加端口(8056)。

xampp控制面板显示apache运行配置端口

在命令提示符窗口(cmd.exe)中运行此命令。

set PATH=C:\xampp\php;%PATH%

根据安装PHP 7的位置进行更改。

遵循这些简单的步骤。我目前在PHP 7.2上运行XAMPP,但需要PHP 5.6来处理旧项目。

步骤1

https://windows.php.net/download上下载线程安全版本的PHP

把文件放在[驱动器]:\xampp\php5.6

  • 根据新的php版本重命名文件夹

步骤2

复制(驱动):\ xampp \ apache \ conf \额外\ httpd-xampp.conf

根据新的php版本重命名文件,并将其放在这里:[Drive]:\xampp\apache\conf\extra\httpd-xampp5.6.conf

步骤3

编辑新创建的“httpd-xampp5.6.conf”

基本上,您需要更改所有PHP源代码和.dll

之前

LoadFile "C:/xampp/php/php7ts.dll"
LoadFile "C:/xampp/php/libpq.dll"
LoadModule php7_module "C:/xampp/php/php7apache2_4.dll"

LoadFile "C:/xampp/php5.6/php5ts.dll"
LoadFile "C:/xampp/php5.6/libpq.dll"
LoadModule php5_module "C:/xampp/php5.6/php5apache2_4.dll"

这是我的文件:https://gist.github.com/mpalencia/f8a20c31bffb02fe20d371218c23d1ec

步骤4

编辑文件[Drive]:\xampp\apache\conf\httpd.conf

之前

# XAMPP settings
Include "conf/extra/httpd-xampp.conf"

# XAMPP settings
Include "conf/extra/httpd-xampp5.6.conf"
  • 切换到不同版本时,可以编辑这一行

步骤5

编辑你的PHP 5.6配置- PHP .ini

添加您的扩展目录: extension_dir = " C:\xampp\php5.6\ext"

步骤6

启动Apache

步骤7

在Windows上编辑PHP环境变量路径

这可能是这个问题最不具技术性的答案,但也是最容易实现的。

如果你有两个驱动器,比如C:D:,你可以在两个驱动器上安装一个单独的XAMPP实例,使用不同的php版本。这花了我不到10分钟的时间,是最不容易出错的。

我只是为xampp-control.exe创建了两个桌面快捷方式,并以它们的php版本命名快捷方式。我希望这能帮助像我这样喜欢快速而肮脏的解决方案的人。

我正在做一个10年前的项目。5.6是我的默认值。还有一些老的小项目只能使用5.2,我还想为我的个人项目开发7.3.8的新版本

下面是我在默认5.6版本上添加5.2和7.3.8的步骤。

1 -下载php TS版本;

2 -按顺序提取到c:\xampp\php738和c:\xampp\php52文件夹

3 -添加这些行到httpd-xamp .conf(或httpd.conf)的底部;

***重要注意:你不应该使用脚本别名作为你的目标文件夹名称, 它们必须是不同的。(例如/php7x是ok的,/php7不是)

PHP 7.3.8用于文件夹D: www\php7

ScriptAlias /php7x "C:/xampp/php738"
Action application/x-httpd-php7-cgi /php7x/php-cgi.exe
<Directory "C:/xampp/php738">
AllowOverride None
Options None
Require all denied
<Files "php-cgi.exe">
Require all granted
</Files>
</Directory>


<Directory "D:\www\php7">
<FilesMatch "\.php$">
SetHandler application/x-httpd-php7-cgi
</FilesMatch>
</Directory>

目录D:\www\php52

ScriptAlias /phpold "C:/xampp/php52"
Action application/x-httpd-phpold-cgi /phpold/php-cgi.exe
<Directory "C:/xampp/php52">
AllowOverride None
Options None
Require all denied
<Files "php-cgi.exe">
Require all granted
</Files>
</Directory>


<Directory "D:\www\php52">
<FilesMatch "\.php$">
SetHandler application/x-httpd-phpold-cgi
</FilesMatch>
</Directory>

一些有用的提示:

  • 如果你有php5的问题。X,同时使用编写器切换终端到7.3.8
  • 如果你想让php 7.3.8成为windows上默认的命令行php解释器,只需将php的windows环境路径更改为7.3.8文件夹路径。
  • 不要忘记在每个版本文件夹中编辑你需要的相关php.ini confs。
作为最后的额外提示,如果你需要设置虚拟主机的任何版本,你可以使用类似的方法。

. php的vhost配置文件
<VirtualHost *:80>
ServerAdmin admin@laravel.local
DocumentRoot "D:\www\vhosts\laravel.local\public"
ServerName  laravel.local
<FilesMatch "\.php$">
SetHandler application/x-httpd-php7-cgi # escape for default php version
#SetHandler application/x-httpd-phpold-cgi # unescape for php 5.2
</FilesMatch>


ErrorLog "logs/laravel.local.log"
CustomLog "logs/laravel.local.log" combined

感谢@Munim Munna的详细回答,我想分享一个坚实的样本和上面的重要通知。

使用php切换器

你可以通过vhost配置控制php版本到任何你想要的项目。

我知道这是旧的帖子,但我想分享有库仍然运行mysql_connect()在PHP 7。 它通过覆盖实际函数来工作(mysql_connect()被工作在这个库上的mysqli_connect()覆盖)

我从这个视频中找到https://www.youtube.com/watch?v=Eqd-jJu4sQ4

希望能有所帮助

我确实在安装magento2时遇到了同样的问题,而它需要~7.3.0,但我有7.4.1。我用这个方法降低了php的版本。

第一步:从这里下载Php版本 https://windows.php.net/downloads/releases/archives/ 并将此版本粘贴到c:\xampp\ as命名为'php71'

步骤2:设置虚拟主机环境并做一些其他更改。 打开“c:\xampp/\pache\conf\extra\httpd-vhosts.conf”;并将代码片段放在行

的末尾
<VirtualHost 127.0.0.1:80>
DocumentRoot "C:/xampp/htdocs/magento/crashcourse/"
ServerName magento2.test
<Directory "C:/xampp/htdocs/magento/crashcourse/">
Require all granted
</Directory>
<FilesMatch "\.php$">
SetHandler application/x-httpd-php71-cgi
</FilesMatch>
</VirtualHost>

打开“C:\Windows\System32\drivers\etc\hosts”;然后使用管理员权限编辑文件,然后在行末添加代码。

127.0.0.1 magento2.test

打开Apache配置文件c:/xampp/ Apache /conf/extra/httpd-xampp.conf"并在行尾粘贴下面的代码

ScriptAlias /php71 "C:/xampp/php71"
Action application/x-httpd-php71-cgi /php71/php-cgi.exe
<Directory "C:/xampp/php71">
AllowOverride None
Options None
Require all denied
<Files "php-cgi.exe">
Require all granted
</Files>
SetEnv PHPRC "C:/xampp/php71"
</Directory>

现在,都设置好了。 去url: http://magento2.test所有工作正常!< / p >

我只是想分享我的新发现:https://laragon.org/docs/index.html

我刚用了一个小时,看起来很不错。

  • 你可以添加和切换PHP版本,
  • 它有一键安装Wordpress, laravel等
  • 它自动创建vhosts与每个应用程序的名称(例如。appname.test)
  • 你可以选择你当前的htdocs文件夹作为WWW根文件夹
  • 您只需添加其他PHP版本,将它们提取到文件夹中,并从列表中选择它们
  • 它会在每次更改后自动重载apache
  • 添加phpMyAdmin就像下载它一样简单,并把它放在{LARAGON_DIR}\etc\apps\phpMyAdmin等…

Laragon DOCS

如何添加另一个PHP版本的Laragon

如何将phpMyAdmin添加到Laragon


我和拉拉贡没有任何关系。刚在谷歌上找到的,正在搜索“XAMPP Windows替代品”。

PHP的版本可以在.htaccess文件中指定。这意味着大多数项目可以在httpd.conf文件中保留默认的全局配置,特定的项目可以通过编辑.htaccess设置为不同的版本。

使用.htaccess的优点是不同的PHP版本可以用于不同的项目,而不需要不断修改httpd.conf来指定不同的项目目录需要哪个PHP。相反,只需编辑项目的.htaccess文件,就可以直接在项目内部进行更改。

所需的确切线条取决于您的设置。对于我来说,使用快速CGI,我只是在那些我想使用PHP 8 (PHP 7是我的服务器上的默认)的项目的.htaccess文件中添加以下一行。

FcgidWrapper "C:/xampp/php-8.0.6-nts-Win32-vs16-x64/php-cgi.exe -c C:/xampp/php-8.0.6-nts-Win32-vs16-x64" .php

字符串的第一部分引用PHP可执行文件,而-c选项用于所需PHP .ini文件的目录路径。如果省略此选项,将使用全局配置的php.ini。

简单和最容易的步骤

  • 安装xampps你想要的任何php版本。
  • 将C:\xampp文件夹中的xampp重命名为C:\xampp74 李enter image description here < / >
  • 像我一样下载并安装另一个xampps:(第一个是php7,第二个是php8)
  • 现在你有两个不同的xampp与不同的php版本 李enter image description here < / > 现在无论什么时候你想改变,你只需要跟随
    • 停止Apache和mysql,退出xampp enter image description hereenter image description here < / >
    • 将文件夹重命名为xampp,并更改其他xampp文件夹的版本名称以记住 李enter image description here < / >
    • 再次启动Apache和mysql(有时无法重命名,然后重新启动并尝试)

我最近也遇到了同样的情况,我用以下步骤解决了它:

步骤1:从php.net下载nts(非线程安全)版本的PHP压缩档案。然后将其解压到xampp文件夹中,与默认的php文件夹相同。xampp文件夹现在看起来是这样的:

enter image description here

步骤2:

  • 打开下载的php文件夹。复制文件php.ini-developmentphp.ini,并用任何编辑器(notepad, notepadd++…)打开它。按下Ctrl+F组合键并找到text: extension_dir = "ext",然后通过删除该行开头的分号来取消该行的注释。

enter image description here

  • extension=curl extension=ftp extension=fileinfo extension=mysqli extension=openssl extension=pdo_mysql

enter image description here

步骤3:

  • 转到xampp文件夹,打开文件httpd-xampp.conf,路径为{disk_name}/xampp/apache/conf/extra/httpd-xampp.conf(将{disk name}替换为安装xampp的驱动器磁盘)。
  • 例如,我将xampp安装在D盘,这是打开文件的路径 httpd-xampp.conf现在将是D:\xampp\apache\conf\extra\httpd-xampp.conf.
  • 或者更简单地说,打开xampp控制面板,单击apache的配置按钮,然后单击apache (httpd-xampp.conf)。

enter image description here

  • 接下来,在httpd-xampp.conf文件的末尾添加以下代码,然后将/php8_1D:/xampp/php8_1/更改为php文件夹的名称和路径。
ScriptAlias /php8_1/ "D:/xampp/php8_1/"
Action application/x-httpd-php8_1-cgi "/php8_1/php-cgi.exe"
<Directory "D:/xampp/php8_1">
AllowOverride None
Options None
Require all denied
<Files "php-cgi.exe">
Require all granted
</Files>     SetEnv PHPRC "D:/xampp/php8_1"
</Directory>

enter image description here

  • 例如:如果你的php文件夹名称是php6_5,文件夹路径是C:/xampp/php6_5/,那么代码将是:
ScriptAlias /php6_5 "C:/xampp/php6_5/"
Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe"
<Directory "C:/xampp/php6_5">
AllowOverride None
Options None
Require all denied
<Files "php-cgi.exe">
Require all granted
</Files>
SetEnv PHPRC "C:/xampp/php6_5/"
</Directory>
  • 请注意:如果你愿意,你可以在步骤1到3之后向你的XAMPP安装中添加更多版本的PHP。

添加目录来运行特定的PHP版本

  • 只需在配置文件(步骤3中的httpd-xampp.conf)底部添加以下内容来设置目录。
<Directory "C:\xampp\htdocs\my_project1">
<FilesMatch "\.php$">
SetHandler application/x-httpd-php5_6-cgi //replace php5_6 with your version php
</FilesMatch>
</Directory>


<Directory "C:\xampp\htdocs\my_project2">
<FilesMatch "\.php$">
SetHandler application/x-httpd-php8_1-cgi //replace php8_1with your version php
</FilesMatch>
</Directory>
  • 你可以在下面的图片中看到说明

enter image description here

保存并重新启动XAMPP

  • 保存并关闭配置文件。从xampp控制面板重新启动apache。如果你想检查配置是否成功,创建一个index.php文件和<?php echo phpinfo()来检查php版本。

现在,我将展示我的结果

enter image description here

enter image description here

enter image description here

enter image description here

我是否建议使用Xampp PHP切换器通过JackieDo。 在非常简单的安装之后,你可以使用命令xphp switch [VERSION]来更改php版本