我们使用PHP 7.0运行XAMPP,因为我们的新产品需要PHP 7。
但也有一些旧的项目使用mysql_connect等函数。这些在PHP 7.0中被删除。
那么,是否有一种方法可以轻松地在XAMPP中更改PHP版本?
注意:请不要建议将旧项目升级到与新版本兼容,因为我无法做到这一点 这些决定是我作为开发人员(只是一名员工)无法得到的。
我们使用PHP 7.0运行XAMPP,因为我们的新产品需要PHP 7。
但也有一些旧的项目使用mysql_connect等函数。这些在PHP 7.0中被删除。
那么,是否有一种方法可以轻松地在XAMPP中更改PHP版本?
注意:请不要建议将旧项目升级到与新版本兼容,因为我无法做到这一点 这些决定是我作为开发人员(只是一名员工)无法得到的。
当前回答
我最近也遇到了同样的情况,我用以下步骤解决了它:
第一步:从php.net下载nts(非线程安全)版本的PHP压缩文件。然后将其解压到xampp文件夹中,与默认的php文件夹相同。xampp文件夹现在看起来是这样的:
步骤2:
打开下载的php文件夹。复制文件php.ini-development到php.ini,并用任何编辑器(notepad, notepadd++…)打开它。按下Ctrl+F组合键并找到text: extension_dir = "ext",然后删除该行开头的分号来取消该行的注释。
执行同样的操作取消注释以下几行:extension=curl extension=ftp extension=fileinfo extension=mysqli extension=openssl extension=pdo_mysql
步骤3:
进入xampp文件夹,打开httpd-xampp.conf文件,路径为{disk_name}/xampp/apache/conf/extra/httpd-xampp.conf(将{磁盘名称}替换为安装xampp的驱动器磁盘)。 例如,我将xampp安装在D盘,这是打开文件的路径 httpd-xampp.conf现在是D:\xampp\apache\conf\extra\httpd-xampp.conf。 或者更简单地说,打开xampp控制面板,单击apache的配置按钮,然后单击apache (httpd-xampp.conf)。
接下来,在httpd-xampp.conf文件的末尾添加以下代码,然后将/php8_1和D:/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>
例如:如果你的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。
步骤4:添加目录以运行特定的PHP版本
只需在配置文件(步骤3中的httpd-xamp .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>
你可以在下面的图片中看到说明
步骤5:保存并重新启动XAMPP
保存并关闭配置文件。从xampp控制面板重新启动apache。如果要检查配置是否成功,可以创建index.php文件和<?PHP echo phpinfo()检查PHP版本。
现在,我将展示我的结果
其他回答
我推荐使用Docker,它允许你将环境分成不同的组件,并在任何时候混合和匹配你想要的组件。
Docker将允许您运行一个容器与MySQL,另一个与PHP。因为它们是独立的映像,所以你可以有两个容器,一个是PHP 5,另一个是PHP 7,你可以任意启动一个,端口80可以映射到两个容器。
https://hub.docker.com有许多预配置的映像,您可以轻松地安装和运行这些映像。
我还添加了portainer作为一个映像,它允许您从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/获取开发环境配置。
使用这个php切换器
你可以通过vhost配置控制php版本到任何你想要的项目。
遵循这些简单的步骤。我目前在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环境变量路径
我只是想分享我的新发现:https://laragon.org/docs/index.html
我刚用了一个小时,看起来很不错。
你可以添加和切换PHP版本, 它有一键安装Wordpress, laravel等 它自动创建vhosts与每个应用程序的名称(例如。appname.test) 你可以选择你当前的htdocs文件夹作为WWW根文件夹 您只需添加其他PHP版本,将它们提取到文件夹中,并从列表中选择它们 它会在每次更改后自动重载apache 添加phpMyAdmin就像下载它一样简单,并把它放在{LARAGON_DIR}\etc\apps\phpMyAdmin等…
拉拉贡文档
如何添加另一个PHP版本的Laragon
如何添加phpMyAdmin到Laragon
我和拉拉贡没有任何关系。刚刚在谷歌上找到它,寻找“XAMPP Windows替代品”
在命令提示符窗口(cmd.exe)中运行此命令。
set PATH=C:\xampp\php;%PATH%
根据安装PHP 7的位置进行更改。