温馨提示×

php-fpm在ubuntu如何升级

小樊
41
2026-08-12 09:25:08
栏目: 编程语言

Ubuntu 上升级 php-fpm 主要有两种方式,取决于你当前是通过 Ubuntu 官方源 还是 第三方 PPA(如 ondrej) 安装的。下面按常见场景说明。


一、先确认当前 php-fpm 版本

php -v
php-fpm -v

查看已安装的 php-fpm 包:

dpkg -l | grep php

二、通过 Ubuntu 官方仓库升级(小版本升级)

如果只是 小版本升级(如 8.1.2 → 8.1.10)

sudo apt update
sudo apt upgrade

或只升级 php-fpm:

sudo apt upgrade php-fpm

✅ 适合:

  • 不更换 PHP 主版本(7.4 → 7.4、8.1 → 8.1)

三、通过 Ondrej PPA 升级(推荐,支持跨版本)

1️⃣ 添加 PHP PPA(如果还没加)

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

2️⃣ 查看可用的 PHP 版本

apt-cache search php | grep "^php[0-9]"

例如:

php8.1
php8.2
php8.3

3️⃣ 安装新版本 php-fpm(以 8.2 为例)

sudo apt install php8.2-fpm

同时安装常用扩展:

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

4️⃣ 切换 PHP 版本(Web 服务器)

✅ Nginx

修改 fastcgi_pass

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

重启:

sudo systemctl restart nginx
sudo systemctl restart php8.2-fpm

✅ Apache(mpm_event + proxy_fcgi)

禁用旧版本,启用新版本:

sudo a2disconf php8.1-fpm
sudo a2enconf php8.2-fpm
sudo systemctl restart apache2

5️⃣ 确认新版本生效

php -v

四、卸载旧版本(可选)

sudo apt remove php8.1-fpm
sudo apt autoremove

五、升级注意事项(非常重要)

备份配置

cp -r /etc/php/8.1 /etc/php/8.1.bak

检查 php.ini 差异

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

确认扩展兼容性

  • 某些旧扩展在新版本中可能不存在

先测试再上线

  • 建议在测试环境先升级

六、常见错误排查

php-fpm 启动失败

sudo systemctl status php8.2-fpm
journalctl -xe

sock 文件不存在

ls /run/php/

七、总结

场景 推荐方式
小版本升级 apt upgrade
跨版本升级 Ondrej PPA
生产环境 新版本并行安装 + 逐步切换

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

  • Ubuntu 版本(20.04 / 22.04 / 24.04)
  • 当前 PHP 版本
  • 使用 Nginx 还是 Apache

我可以给你 精确到命令的升级方案

0