ubuntu中PHP升级详细方法

本文介绍在Ubuntu上升级php,从PHP 8.1.x升级到8.2.x的方法和步骤。。

一、准备阶段

1. 确认现有PHP环境

检查当前版本

复制代码
php -v

2. 添加PHP仓库

  • 添加包含PHP 8.2的第三方PPA

    sudo add-apt-repository ppa:ondrej/php

  • 更新包列表 刷新软件包缓存

    sudo apt update

二、安装阶段

1、安装PHP 8.2

安装核心及常用扩展

复制代码
sudo apt install php8.2 php8.2-cli php8.2-common
  • 安装所需扩展 按需安装其他扩展(如fpm、mysql等)

    复制代码
    sudo apt install php8.2-fpm php8.2-mysql

2、切换PHP版本

  • 为命令行和Web服务配置新版本

    sudo update-alternatives --config php

三、验证阶段

1、验证新版本安装情况

  • 重启apache服务

    sudo systemctl restart apache2

  • 检查版本

    • php -v
  • 检查Web服务器PHP版本

    sudo -u www-data php -v

  • 如果上述代码显示的版本是 8.2,说明升级成功,否则,你需要用以下方法手段切换web服务器的php版本为8.2

    sudo a2query -m php8.2 # 返回 "enabled"为正常

  • 如果上述代码显示非enabled,执行下列代码

    sudo a2dismod php8.1 # 禁用旧版本
    sudo a2enmod php8.2 # 启用新版本
    sudo systemctl restart apache2 #重启web服务器
    sudo -u www-data php -v #检查web中的php版本

2、测试业务在新版本中是否正常运行

  • 这一步要根据业务类型,测试升级后的php8.2版本是否与你现有的业务系统兼容。

3、 清理旧版本

  • 如果你确认你的新版本稳定后,可以移除PHP 8.1版本,当然你也可以选择不移除,这不影响你的业务。

    sudo apt purge php8.1*

四、注意事项与说明

1、添加仓库:

  • ondrej/php PPA 是Ubuntu社区广泛使用和维护的PHP仓库,可靠性较高。如果你之前已经添加过此仓库用于安装PHP 8.1,则无需重复添加。

2、安装扩展:

  • 这是最关键的一步。你必须安装所有PHP 8.1上已安装的扩展的对应8.2版本。你可以用以下命令查看已安装的8.1扩展,然后逐一安装:

    dpkg -l | grep php8.1

复制代码
dpkg -l | grep php8.2
复制代码
安装php8.2缺少的插件

sudo apt install php8.2-zip php8.2-curl php8.2-gd php8.2-intl php8.2-mbstring php8.2-soap php8.2-xml
  • 对于Apache Web服务器,安装 libapache2-mod-php8.2,会自动禁用旧版本模块并启用新模块。

    sudo apt install libapache2-mod-php8.2

3、业务测试

  • 升级后,需要访问你的网站,检查功能是否正常。之前你遇到的H5P版本兼容问题,在PHP升级后也是否解决。

4、 数据备份

  • 操作前,请备份重要的PHP配置文件(如 /etc/php/apache/8.1/ 下的php.ini及conf.d/中的自定义配置)和Web服务器配置。

  • 只有在确认所有网站和依赖PHP的应用在8.2上运行稳定后,才建议卸载PHP 8.1以保持系统整洁。

相关推荐
lifewange9 分钟前
Linux ps 进程查看命令详解
linux·运维·服务器
功德+n16 分钟前
Linux下安装与配置Docker完整详细步骤
linux·运维·服务器·开发语言·docker·centos
问简1 小时前
ubuntu24 主题经验
ubuntu
左手厨刀右手茼蒿1 小时前
Linux 内核中的块设备驱动:从原理到实践
linux·嵌入式·系统内核
星辰徐哥1 小时前
5G的行业应用:工业互联网、车联网、智慧医疗中的网络支撑
网络·5g·php
杨云龙UP1 小时前
从0到1快速学会Linux操作系统(基础),这一篇就够了!
linux·运维·服务器·学习·ubuntu·centos·ssh
HXQ_晴天1 小时前
Ubuntu 设置中文输入法
linux·运维·ubuntu
Dovis(誓平步青云)1 小时前
《Linux 信号入门:搞懂 “进程通信的紧急电话” 到底怎么用(初篇)》
linux·运维·服务器
左手厨刀右手茼蒿1 小时前
Linux 内核中的模块机制:从加载到卸载
linux·嵌入式·系统内核