Ubuntu PHP-FPM如何更新和升级
Ubuntu 上 PHP-FPM 的更新与跨版本升级指南 一 概念与准备 动手之前,咱们得先厘清两个核心概念,这能帮你避免很多后续的麻烦。 区分两个动作: 更新: 指的是执行 apt update && apt upgrade,目的是获取当前已安装 PHP-FPM 版本的安全补丁与小版本修复。这属于
Ubuntu 上 PHP-FPM 的更新与跨版本升级指南

一 概念与准备
动手之前,咱们得先厘清两个核心概念,这能帮你避免很多后续的麻烦。
区分两个动作:
- 更新: 指的是执行
apt update && apt upgrade,目的是获取当前已安装 PHP-FPM 版本的安全补丁与小版本修复。这属于常规维护,风险较低。 - 升级: 则意味着安装并切换到更高主次版本的 PHP-FPM,比如从 7.4 迁移到 8.2。这个过程涉及更多变动,需要谨慎对待。
准备与风险控制:
- 备份是金科玉律。 务必完整备份你的 PHP 配置文件(如
/etc/php/目录)以及网站目录数据。 - 检查服务器磁盘空间与网络连通性,尽量选择业务低峰期或维护窗口进行操作。
- 最稳妥的做法是,先在测试环境中完整验证应用的兼容性,包括框架、插件、扩展以及所有自定义的 INI 设置。这一步能提前发现绝大多数潜在问题。
二 更新当前版本(安全补丁与小版本)
如果你只是想为当前版本的 PHP-FPM 打上最新的安全补丁,流程其实相当直接。
刷新索引并升级:
sudo apt updatesudo apt upgrade php-fpm
重启以生效:
sudo systemctl restart php{version}-fpm(请将{version}替换为你的实际版本号,例如 php7.4-fpm)
验证:
- 通过
php-fpm{version} -v查看版本信息,或使用systemctl status php{version}-fpm检查服务状态。
简单来说,只要系统软件源中已经包含了新补丁,上述命令就能完成更新,无需改动任何 Web 服务器配置。
三 跨版本升级(安装并切换到新版本)
这才是重头戏。跨版本升级意味着引入一套全新的 PHP 环境,步骤要细致得多。
安装必要工具并添加 Ondřej Surý PHP PPA(若尚未添加):
sudo apt install -y software-properties-commonsudo add-apt-repository -y ppa:ondrej/phpsudo apt update
安装目标版本的 PHP-FPM 与常用扩展(按需增减扩展):
- 以升级到 PHP 8.2 为例:
sudo apt install -y php8.2-fpm php8.2-{cli,mysql,curl,mbstring,intl,xml,zip,gd,sqlite3}
使用 phpenmod 启用所需扩展(如 mbstring、gd):
sudo phpenmod mbstringsudo phpenmod gd
重启新版本服务:
sudo systemctl restart php8.2-fpm
验证新版本:
php-fpm8.2 -v
这里有个小技巧:Ubuntu 系统允许同一台机器上并行安装多个 PHP 版本,它们通过不同的服务名(如 php7.4-fpm 与 php8.2-fpm)来区分,这为测试和回滚提供了极大便利。
四 Web 服务器与连接调整
安装好新 PHP 只是第一步,接下来得告诉 Web 服务器去连接它。
Nginx: 需要修改站点配置文件,将 fastcgi_pass 指令指向新版本的 FPM socket。
- 例如:
fastcgi_pass unix:/run/php/php8.2-fpm.sock; - 修改后执行:
sudo systemctl restart nginx
Apache(使用 PHP-FPM 方式):
- 禁用旧版本配置并启用新版本:
sudo a2disconf php7.4-fpmsudo a2enconf php8.2-fpm
- 重启:
sudo systemctl restart apache2
验证页面(临时): 在网站根目录创建一个 info.php 文件,内容为 ,然后通过浏览器访问,确认 PHP 版本和 SAPI 模式已变为 FPM/FastCGI。验证完成后,切记删除该文件以保证安全。
五 回滚与验证
升级后如果发现问题,别慌,清晰的回滚路径是运维安全感的来源。
回滚思路:
- 最快捷的方式是在 Web 服务器配置中,将连接指回旧版本的 socket 或配置。
- 对于 Apache,可以禁用新版本配置并重新启用旧版本配置。
- 随后,重启 Nginx/Apache 以及旧版的 PHP-FPM 服务。
- 如果升级过程中修改了
php.ini或pool.d/www.conf等配置文件,用之前的备份覆盖恢复即可。
常用检查: 日常运维或排错时,这几个命令非常实用:
- 查看版本:
php-fpm{version} -v - 检查服务状态:
systemctl status php{version}-fpm - 查看日志:
/var/log/php{version}-fpm.log(这里是排查启动失败、进程异常、权限与连接问题的关键所在)。


































