如何在XAMPP中将PHP从7.0.9升级至7.2?能否共存多版本?
我来帮你搞定XAMPP升级PHP到7.2以及多版本共存的问题,步骤都给你整理好了👇
升级XAMPP(Lampp)中的PHP到7.2版本
以下是Ubuntu环境下亲测可行的操作步骤,放心跟着来:
步骤1:先停掉XAMPP服务
升级前必须确保XAMPP没在运行,不然文件被占用会搞出问题:
sudo /opt/lampp/lampp stop
步骤2:备份当前的PHP目录
这一步非常重要!万一升级出问题,咱们还能一键恢复回去:
sudo mv /opt/lampp/php /opt/lampp/php-7.0.9-backup
步骤3:下载并提取兼容的PHP 7.2包
咱们不用自己编译,直接拿Apache Friends官方编译好的XAMPP配套PHP包就行:
- 去Apache Friends的归档页面找对应你系统架构的XAMPP 7.2.x版本(比如x86_64架构就选
xampp-linux-x64-7.2.34-0.tar.gz这类) - 下载后解压到本地:
tar -xzf xampp-linux-x64-7.2.34-0.tar.gz
- 把解压出来的
lampp/php目录复制到你的XAMPP安装目录里:
sudo cp -r xampp-linux-x64-7.2.34-0/lampp/php /opt/lampp/
步骤4:更新bin目录下的符号链接
XAMPP的bin目录里有几个指向PHP的快捷链接,得换成新的7.2版本的:
cd /opt/lampp/bin sudo rm php php-cgi php-cli phpize sudo ln -s ../php/bin/php php sudo ln -s ../php/bin/php-cgi php-cgi sudo ln -s ../php/bin/php-cli php-cli sudo ln -s ../php/bin/phpize phpize
步骤5:验证升级是否成功
启动XAMPP,然后访问http://localhost/dashboard/phpinfo.php查看版本号是不是变成7.2.x了:
sudo /opt/lampp/lampp start
要是出问题了也别怕,按下面的步骤恢复备份:
sudo /opt/lampp/lampp stop sudo rm -r /opt/lampp/php sudo mv /opt/lampp/php-7.0.9-backup /opt/lampp/php # 再把符号链接恢复回去 cd /opt/lampp/bin sudo rm php php-cgi php-cli phpize sudo ln -s ../php/bin/php php sudo ln -s ../php/bin/php-cgi php-cgi sudo ln -s ../php/bin/php-cli php-cli sudo ln -s ../php/bin/phpize phpize sudo /opt/lampp/lampp start
在XAMPP中安装多个PHP版本的方法
XAMPP本身没自带多版本切换功能,但咱们可以手动配置实现,两种方法给你参考:
方法1:虚拟主机+独立PHP目录(最推荐)
这个方法能让不同的站点用不同的PHP版本,非常实用:
- 先把各个版本的PHP都放在单独的目录里,比如
/opt/lampp/php-7.0.9(就是你之前备份的那个)、/opt/lampp/php-7.2 - 编辑Apache的虚拟主机配置文件
/opt/lampp/etc/extra/httpd-vhosts.conf,给每个站点指定对应的PHP版本:- PHP-FPM模式(性能更好):先确保每个PHP版本的FPM服务都配置好了,监听不同的端口(比如7.2用9072,7.0用9070),然后在虚拟主机里加这段配置:
<VirtualHost *:80> ServerName site1.local DocumentRoot "/opt/lampp/htdocs/site1" <Directory "/opt/lampp/htdocs/site1"> AllowOverride All Require all granted </Directory> # 这里的9072对应PHP7.2的FPM端口,根据你的配置调整 ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9072/opt/lampp/htdocs/site1/$1 </VirtualHost> - CGI模式(配置更简单):如果不想搞FPM,用CGI也可以,给站点加这段:
<VirtualHost *:80> ServerName site2.local DocumentRoot "/opt/lampp/htdocs/site2" <Directory "/opt/lampp/htdocs/site2"> AllowOverride All Require all granted </Directory> Action php70-cgi /php70-cgi ScriptAlias /php70-cgi /opt/lampp/php-7.0.9/bin/php-cgi AddHandler php70-cgi .php </VirtualHost>
- PHP-FPM模式(性能更好):先确保每个PHP版本的FPM服务都配置好了,监听不同的端口(比如7.2用9072,7.0用9070),然后在虚拟主机里加这段配置:
- 重启Apache生效:
sudo /opt/lampp/lampp restart apache
方法2:第三方多版本管理工具
有一些第三方工具比如xampp-multi-php可以帮你一键管理多版本,但要注意它的兼容性,得确保支持你的Ubuntu和XAMPP版本。不过我还是更推荐手动配置虚拟主机的方式,更可控,不容易出问题。
内容的提问来源于stack exchange,提问作者Attila Naghi
相关产品推荐
相关产品推荐

