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

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

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

注意:请不要建议将旧项目升级到与新版本兼容,因为我无法做到这一点 这些决定是我作为开发人员(只是一名员工)无法得到的。


当前回答

我使用unisserver。

它内置了这个功能。

http://www.uniformserver.com/

就是这么简单。

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

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

其他回答

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

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

Run an older PHP version for only the directory of your old project: This will serve the purpose most of the time. You may have one or two old projects that you intend to run with an older PHP version. Just configure xampp to run an older PHP version for only those project directories. Run an older PHP version on a separate port of xampp: Sometimes you may be upgrading an old project to the latest PHP version and at the same time you need to run the same project back and forth between the new PHP version and the old PHP version. To do this you can set an older PHP version on a different port (say 8056) so when you go to http://localhost/any_project/, xampp runs PHP 7 and when you go to http://localhost:8056/any_project/ xampp runs PHP 5.6. Run an older PHP version on a virtualhost: You can create a virtualhost like localhost56 to run PHP 5.6 while you can use PHP 7 on localhost.

我们来设置一下

步骤1:下载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配置httpd-xamp .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-xamp .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-xamp .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-xamp .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>

Finish:保存并重启Apache

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

遵循这些简单的步骤。我目前在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:,你可以在两个不同的php版本的驱动器上安装XAMPP的单独实例。这花了我不到10分钟的时间,是最不容易出错的。

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

使用这个php切换器

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

简单和最容易的步骤

Install xampps whatever php version you want. Rename xampp folder in C:\xampp to C:\xampp74 Download and install another xampps like I do: (first is php7 second is php8) Now you have two different xampp with different php version Now whenever you want to change you just nned to follow stop Apache and mysql and Quit xampp Rename folder to xampp an change other xampp folder with it's version name to remember Again Start the Apache and mysql (some time it can't rename then restart and try)