温馨提示×

如何升级Ubuntu PHP-FPM

小樊
37
2026-07-13 20:23:30
栏目: 编程语言

下面给你一份在 Ubuntu 上升级 PHP-FPM 的完整指南,适用于常见场景(系统自带源、第三方 PPA、多版本共存等)。


一、先确认当前 PHP-FPM 版本

php -v
php-fpm -v

查看已安装版本:

dpkg -l | grep php

二、升级到 Ubuntu 官方仓库中的最新版本

1️⃣ 更新软件源

sudo apt update
sudo apt upgrade -y

2️⃣ 升级 PHP-FPM

sudo apt install --only-upgrade php-fpm

⚠️ 注意:Ubuntu 官方仓库通常只提供一个 PHP 版本,升级幅度有限。


三、推荐方式:使用 Ondřej Surý PPA(最常用 ✅)

这是 Ubuntu 上升级 PHP 的标准做法,支持 PHP 7.4 / 8.1 / 8.2 / 8.3 等。

1️⃣ 添加 PPA

sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

2️⃣ 安装新版本 PHP-FPM(例如 PHP 8.2)

sudo apt install php8.2-fpm

常用扩展:

sudo apt install php8.2-mysql php8.2-curl php8.2-mbstring php8.2-xml php8.2-zip

3️⃣ 切换 PHP-FPM 版本(Nginx / Apache)

✅ Nginx

查看 sock 路径:

ls /run/php/

修改 nginx 配置:

fastcgi_pass unix:/run/php/php8.2-fpm.sock;

重载 Nginx:

sudo systemctl reload nginx

✅ Apache(mpm_event + php-fpm)

禁用旧版本:

sudo a2disconf php7.4-fpm

启用新版本:

sudo a2enconf php8.2-fpm
sudo systemctl reload apache2

4️⃣ 停止并禁用旧版本

sudo systemctl stop php7.4-fpm
sudo systemctl disable php7.4-fpm

四、升级后必须检查的事项 ✅

1️⃣ PHP-FPM 是否运行

systemctl status php8.2-fpm

2️⃣ php.ini 配置是否迁移

对比:

diff /etc/php/7.4/fpm/php.ini /etc/php/8.2/fpm/php.ini

3️⃣ 网站是否报错

常见错误:

  • 扩展未安装
  • open_basedir
  • disable_functions
  • 新版本废弃的函数

五、保留多个 PHP 版本(可选)

你可以同时运行多个 PHP-FPM 版本

sudo apt install php7.4-fpm php8.2-fpm

通过 Nginx 指定不同站点使用不同 PHP:

fastcgi_pass unix:/run/php/php7.4-fpm.sock;

六、从 PHP 7.x → 8.x 特别注意 ⚠️

项目 说明
旧语法 eregeach() 已移除
扩展 部分 PECL 扩展不支持
WordPress 建议 ≥ PHP 8.1

建议先在测试环境验证!


七、快速总结命令(示例:升到 PHP 8.2)

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2-fpm
sudo systemctl stop php7.4-fpm
sudo systemctl reload nginx

如果你愿意,可以告诉我:

  • ✅ Ubuntu 版本(20.04 / 22.04 / 24.04)
  • ✅ Web 服务(Nginx / Apache)
  • ✅ 当前 PHP 版本

我可以给你精确的一步到位命令

0