当前位置: 首页
编程语言
Ubuntu系统下更新PHP版本的详细步骤与方法

Ubuntu系统下更新PHP版本的详细步骤与方法

热心网友 时间:2026-06-17
转载

在Ubuntu上更新PHP有三种方式:APT包管理器获取官方稳定版,添加ondrej phpPPA获取最新稳定版,或手动编译安装自定义配置。更新后需重启Web服务器并检查版本,注意兼容性与备份,建议在测试环境先行验证以确保安全。

在 Ubuntu 系统上更新 PHP 其实有不少讲究。不同的使用场景和需求,对应的操作方法也各有不同。有的用户可能更倾向于使用系统自带的稳定版本,有的则希望第一时间体验最新特性,还有的因为项目特殊需要手动编译定制版本。下面将几种主流路线逐一详细讲解,帮助你在 Ubuntu 上顺利完成 PHP 版本升级。

PHP在Ubuntu上如何更新

一、准备工作:更新系统软件包列表

在开始更新 PHP 之前,有一个步骤必不可少:先刷新系统的软件包列表。这一步没做好,后续很可能遇到依赖冲突导致安装失败。执行下面两条命令即可:

sudo apt update# 更新软件包列表,同步最新索引sudo apt upgrade # 升级所有已安装软件包(可选,但强烈建议执行)

二、方法一:使用APT包管理器更新(适用于官方仓库版本)

如果你只需要 Ubuntu 官方仓库中的 PHP 版本——虽然不是最新,但胜在稳定性高——直接使用 APT 处理是最省心高效的做法。具体操作如下:

  1. 安装当前最新的可用 PHP 版本:
    sudo apt install php# 默认安装系统仓库中的最新稳定版(例如Ubuntu 22.04仓库中的PHP 8.1)
  2. 如果已安装旧版,只想升级 PHP 及其相关模块,加上 --only-upgrade 参数:
    sudo apt --only-upgrade install php php-cli php-fpm php-mysql php-gd php-mbstring
  3. 检查是否更新成功:
    php -v# 查看当前PHP版本信息

三、方法二:通过PPA添加官方源更新(推荐,获取最新稳定版)

Ubuntu 官方仓库中的 PHP 版本更新往往滞后。如果你想用上 PHP 8.2 甚至更高版本,Ondřej Surý 提供的 PPA 可以说是社区中的“标配”方案。操作流程简洁明了:

  1. 先添加 PPA 源:
    sudo add-apt-repository ppa:ondrej/php# 添加PPA源sudo apt update# 更新软件包列表(需重新拉取PPA中的包信息)
  2. 然后直接安装你期望的版本,例如 PHP 8.2:
    sudo apt install php8.2# 安装PHP核心sudo apt install php8.2-cli php8.2-fpm php8.2-mysql php8.2-gd php8.2-mbstring# 安装常用扩展
  3. 如果系统中存在多个 PHP 版本,需要设置默认版本:
    sudo update-alternatives --set php /usr/bin/php8.2# 设置CLI默认版本sudo update-alternatives --set php-fpm /usr/sbin/php8.2-fpm# 设置PHP-FPM默认版本(适用于Nginx用户)
  4. 验证安装结果:
    php -v# 应显示你所安装的最新版本

四、方法三:手动编译安装(高级用户,灵活自定义配置)

在某些特殊场景下——例如需要某个旧版本的修复补丁,或者想启用一些特定的编译选项——APT 和 PPA 都无法满足需求。此时就需要手动编译源码进行安装。

  1. 首先安装编译工具链和必要依赖:
    sudo apt install build-essential libxml2-dev libssl-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libonig-dev libzip-dev
  2. 从 PHP 官方网站下载所需的版本,解压并进入目录:
    wget https://www.php.net/distributions/php-8.1.22.tar.gztar -xzvf php-8.1.22.tar.gzcd php-8.1.22
  3. 根据自身需求配置编译参数,例如启用 mbstring、curl 等常用扩展:
    ./configure --prefix=/usr/local/php8.1 --with-config-file-path=/etc/php/8.1/cli --enable-mbstring --with-curl --with-openssl --with-mysqli --with-pdo-mysql
  4. 开始编译并安装:
    make -j$(nproc)# 多线程编译,提升速度sudo make install# 安装到指定目录
  5. 配置环境:
    • 复制配置文件:
      sudo cp php.ini-production /etc/php/8.1/cli/php.ini# CLI配置sudo cp php-fpm.conf.default /etc/php/8.1/fpm/php-fpm.conf# FPM配置sudo cp /etc/php/8.1/fpm/php-fpm.conf /etc/php/8.1/fpm/php-fpm.conf# 确保FPM配置存在sudo cp /etc/php/8.1/fpm/pool.d/www.conf.default /etc/php/8.1/fpm/pool.d/www.conf# FPM进程池配置
    • 启动 PHP-FPM(若配合 Nginx 使用):
      sudo systemctl start php8.1-fpmsudo systemctl enable php8.1-fpm
  6. 最后确认版本:
    /usr/local/php8.1/bin/php -v# 查看手动编译安装的PHP版本

五、更新后必要操作

  1. 务必重启 Web 服务器:
    • Apache 用户:
      sudo systemctl restart apache2
    • Nginx + PHP-FPM 用户:
      sudo systemctl restart nginxsudo systemctl restart php-fpm# 替换为实际版本号(例如php8.2-fpm)
  2. 验证 Web 环境中的 PHP 版本——创建一个 info.php 文件(例如放在 /var/www/html/info.php),内容如下:
    然后通过浏览器访问 http://服务器IP/info.php,核对显示的 PHP 版本是否正确。

注意事项

  • 备份始终是安全底线:更新前最好将网站文件(如 /var/www/html)和数据库全部备份,一旦出现问题可以快速回滚。
  • 兼容性必须提前评估:并非所有老旧项目都能无缝升级到 PHP 8.0+,尤其是一些历史悠久的框架。强烈建议先在测试环境中进行全面测试。
  • 依赖问题:若安装过程中遇到依赖错误,可尝试执行 sudo apt --fix-broken install,通常能解决大部分依赖冲突。
  • PPA 的安全性:ondrej/php 虽被广泛使用,但它毕竟不是官方源。开发环境可放心使用,若在生产环境部署,建议先评估潜在风险。
来源:https://www.yisu.com/ask/10956840.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Go微服务熔断后指数退避重试机制配置

Go微服务熔断后指数退避重试机制配置

熔断器打开后应进入半开状态,再对试探请求启用指数退避重试,避免无效重试。使用gobreaker控制请求准入,backoff控制试探间隔,并启用抖动防止脉冲流量。重试和熔断需分层,重试只针对临时错误,熔断统计重试后的最终结果。

时间:2026-07-14 06:59
Java多重上界通配符无法直接写入语法的根本原因

Java多重上界通配符无法直接写入语法的根本原因

Java通配符仅支持单一上界,如?extendsA,无法直接使用多重上界。多重上界(如TextendsA&B)仅适用于泛型类型参数声明,这是Java泛型设计中的语法限制,旨在简化类型系统。若需多约束,需通过类型参数间接实现。

时间:2026-07-14 06:59
Golang微服务中集成Argo实现GitOps持续发布

Golang微服务中集成Argo实现GitOps持续发布

Go微服务与ArgoCD边界清晰,Application路径指向manifests目录而非源码。镜像更新通过CI自动提交或argocd-image-updater实现,避免写死latest标签。readinessProbe需合理配置initialDelaySeconds与periodSeconds,确保同步顺畅。

时间:2026-07-14 06:59
Java中AbstractList的快速失败机制中并发修改检查方法的执行时机

Java中AbstractList的快速失败机制中并发修改检查方法的执行时机

在AbstractList迭代器中,每次调用next()、remove()、previous()、set()或add()时,都会先执行checkForComodification,通过比较modCount与expectedModCount检测并发修改,确保操作时视图一致性,防止状态错乱。

时间:2026-07-14 06:59
Python中statistics模块快速计算统计学中位数的方法与步骤

Python中statistics模块快速计算统计学中位数的方法与步骤

使用Python的statistics median()计算中位数需注意:不接受空列表,否则抛出StatisticsError异常;不自动过滤None或非数字值;传入大型生成器可能耗尽内存或导致性能下降。建议先过滤脏数据并转为列表,再计算,同时明确空数据时的处理策略。

时间:2026-07-14 06:59
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 热门数据榜