温馨提示×

Ubuntu PHP版本如何更新

小樊
35
2025-11-16 20:50:13
栏目: 编程语言

Ubuntu 更新 PHP 的实用步骤

一 准备与版本确认

  • 更新索引并升级现有软件包:
    • sudo apt update
    • sudo apt upgrade
  • 安装添加仓库所需工具:
    • sudo apt install software-properties-common
  • 查看可用的 PHP 版本与模块:
    • apt-cache search php | grep -E ‘php[0-9]+’
  • 确认当前 CLI 版本:
    • php -v 以上步骤确保系统软件源为最新,并明确需要安装的目标版本与扩展。

二 使用 Ondřej Surý PPA 安装或升级 PHP(推荐)

  • 添加 ppa:ondrej/php(按需选择具体版本分支,如需要 PHP 8.0 可使用 ppa:ondrej/php8.0):
    • sudo add-apt-repository ppa:ondrej/php
    • sudo apt update
  • 安装目标版本(示例为 PHP 8.0;将版本号替换为你的目标版本):
    • sudo apt install php8.0
  • 安装常用扩展(按需增减):
    • sudo apt install php8.0-cli php8.0-fpm php8.0-json php8.0-opcache php8.0-mysql php8.0-mbstring php8.0-xml php8.0-gd php8.0-curl
  • 验证安装结果:
    • php -v 该方式适用于 Ubuntu 18.04/20.04/22.04/24.04 等常见版本,便于获取较新的 PHP 版本与扩展。

三 在 Apache 或 Nginx 中启用新版本

  • Apache(模块方式)
    • 启用新版本模块并禁用旧版本(示例为 8.0):
      • sudo a2enmod php8.0
      • sudo a2dismod php7.4(如存在)
    • 重启 Apache:
      • sudo systemctl restart apache2
  • Nginx(PHP-FPM 方式)
    • 确认站点配置使用新版本套接字(示例为 php8.0-fpm.sock):
      • fastcgi_pass unix:/run/php/php8.0-fpm.sock;
    • 重启服务:
      • sudo systemctl restart php8.0-fpm
      • sudo systemctl restart nginx
  • 说明
    • 使用 Apache 模块方式时,CLI 与 FPM 可能版本不一致;Nginx 通常配合 PHP-FPM 使用,需确保 FPM 与站点配置版本一致。

四 多版本并存与切换

  • 同时安装多个版本(示例:7.48.0):
    • sudo apt install php7.4 php8.0
  • 按需切换 CLI 默认版本(示例切换到 8.0):
    • sudo update-alternatives --set php /usr/bin/php8.0
  • 验证:
    • php -v
  • 提示
    • Web 端实际运行的版本取决于 Apache 模块PHP-FPM 的启用与站点配置,CLI 切换不会影响已运行的 FPM 实例。

五 验证与回滚建议

  • 验证
    • CLI:php -v
    • Web:创建 /var/www/html/info.php,内容为 ,访问确认版本与扩展;完成后删除该文件以免泄露信息。
  • 回滚
    • 降级 CLI:sudo update-alternatives --set php /usr/bin/php7.4
    • Apache:sudo a2dismod php8.0 && sudo a2enmod php7.4 && sudo systemctl restart apache2
    • Nginx:将站点 fastcgi_pass 改为 php7.4-fpm.sock,然后 sudo systemctl restart php7.4-fpm nginx
  • 注意事项
    • 升级前备份数据与配置,先在测试环境验证;升级可能影响依赖旧版 PHP 的应用,按需逐步切换与回归。

0