我们使用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版本?
注意:请不要建议将旧项目升级到与新版本兼容,因为我无法做到这一点 这些决定是我作为开发人员(只是一名员工)无法得到的。
当前回答
我使用unisserver。
它内置了这个功能。
http://www.uniformserver.com/
就是这么简单。
统一服务器是一个免费的轻量级WAMP服务器解决方案。小于24MB,模块化设计,包括最新版本的Apache2, Perl5, PHP(在PHP53, PHP54, PHP55或PHP56之间切换),MySQL5或MariaDB5, phpMyAdmin或Adminer4。不需要安装!没有注册尘埃!打开行李,发动吧!
它甚至可以用u盘运行。有cron仿真,支持perl, mariaDB,几个版本的Mysql, filezilla服务器和其他一些东西。
其他回答
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。
安装一个XAMPP就可以安装多个版本的PHP。下面的说明适用于Windows。
为Windows安装最新的XAMPP版本(在我的例子中是PHP 7.1) 确保Apache没有从XAMPP控制面板运行 将XAMPP安装目录下的php目录重命名,如C:\ XAMPP \php改为C:\ XAMPP \php-7.1.11。 下载你想要运行的PHP版本(例如:PHP 5.4.45) 将php目录从您下载的版本移动到XAMPP安装目录。重命名它,使其包含PHP版本。例如C:\xampp\php-5.4.45。
现在你需要编辑XAMPP和Apache配置:
在C:\xampp\apache\conf\httpd.conf中,找到PHP的xampp设置,您应该将其更改为如下内容:
你必须注释(用#)其他的PHP版本,所以只有一个包含将被解释在同一时间。
#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"
Now in C:\xampp\apache\conf\extra directory rename httpd-xampp.conf to httpd-xampp.conf.7.1 and add a new configuration file for httpd-xampp.conf.5.4.45. In my case, I copied the conf file of another installation of XAMPP for php 5.5 as the syntax may be slightly different for each version. Edit httpd-xampp.conf.5.4.45 and httpd-xampp.conf.7.1 and replace there all the reference to the php directory with the new php-X.X version. There are at least 10 changes to be made here for each file. You now need to edit php.ini for the two versions. For example for php 7.1, edit C:\xampp\php-7.1.11\php.ini where you will replace the path of the php directory for include_path, browscap, error_log, extension_dir..
就是这样。您现在可以从XAMPP控制面板启动Apache。要从一个版本切换到另一个版本,你只需要在重新启动apache之前编辑C:\xampp\apache\conf\httpd.conf并更改包含的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版本。
现在,我将展示我的结果
除非它必须是绝对的XAMPP,否则您可以尝试使用WAMP得到您想要的东西。 WAMP几乎是相同的东西,只是包装不同。
一旦你安装了它,你可以在这里切换php版本:
您可以根据需要安装任意版本的PHP。
下面是具体的操作步骤。
点击这里:WAMP下载
然后选择你的基础服务器,例如最新的php7。
然后,当WAMP 3安装完成后,进入文件夹:addons并选择你想要的php版本。他们提供了从php 5.3.29开始的php版本,它应该与mysql_connect一起工作。
要安装插件,在安装过程中(双击exe文件)只需指向安装WAMP 3的文件夹。
然后您可以使用其他文件夹的内容,如:应用程序等,以添加更多的功能
所有东西都是接口的,所以您可以专注于编码,而不是破坏您的环境。
这可能是这个问题最不具技术性的答案,但也是最容易实现的。
如果你有两个驱动器,比如C:和D:,你可以在两个不同的php版本的驱动器上安装XAMPP的单独实例。这花了我不到10分钟的时间,是最不容易出错的。
我只是为xampp-control.exe创建了两个桌面快捷方式,并以它们的php版本命名快捷方式。我希望这能帮助像我这样喜欢快速而肮脏的解决方案的人。