温馨提示×

debian升级php要注意什么

小樊
47
2026-09-11 02:09:41
栏目: 编程语言

在 Debian 上升级 PHP(例如从 PHP 7.4 → 8.1/8.2/8.3)时,有几个关键风险点和标准做法需要注意。下面按「注意事项 → 升级步骤 → 常见坑」来说明。


一、升级前必须注意的点

1. 确认业务兼容性(最重要)

PHP 大版本升级(7.x → 8.x)不保证向后兼容:

  • 废弃函数(如 create_function、each)
  • 类型严格化(Fatal Error 变多)
  • 框架要求(Laravel / ThinkPHP / WordPress 版本是否支持)

✅ 建议:

php -l file.php        # 语法检查
composer why-not php:8.2

2. 不要直接 apt upgrade php

Debian 默认仓库 PHP 版本较低(如 Debian 11 = 7.4)。

常见做法:

  • 保留旧版本
  • 并行安装新版本
  • 再逐步切换

3. Web 服务器配置要同步改

PHP 升级后必须确认:

  • Apache:libapache2-mod-php* 版本
  • Nginx:PHP-FPM socket 路径

例如:

/run/php/php7.4-fpm.sock
→
/run/php/php8.2-fpm.sock

4. 扩展必须重装

PHP 扩展是按版本编译的:

php7.4-mysql
php8.2-mysql  # 必须重新装

5. CLI 和 FPM 是两套

  • CLI:php -v
  • Web:取决于 FPM / Apache 模块

很多人“命令行是新版,网站还是旧版”。


二、推荐升级方式(安全)

方式 A:使用 sury 源(最常用)

apt install -y lsb-release ca-certificates apt-transport-https
curl -sSL https://packages.sury.org/php/README.txt
# 按官方说明添加 GPG + repo
apt update
apt install php8.2 php8.2-fpm php8.2-cli

方式 B:多版本共存

update-alternatives --set php /usr/bin/php8.2

Web 服务单独切换 FPM:

a2disconf php7.4-fpm
a2enconf php8.2-fpm
systemctl restart apache2

三、升级后必做检查

php -v
php -m
nginx -t
systemctl status php8.2-fpm

日志重点看:

  • /var/log/php8.2-fpm.log
  • /var/log/nginx/error.log
  • phperror.log

四、常见坑总结

❌ 只升级 CLI,网站没变
❌ 忘了装 php8.x-mbstring / curl / gd
❌ Composer 依赖不支持新 PHP
❌ OPcache / session 配置丢失
❌ 旧 cron 仍用旧 php 路径


五、最佳实践建议

✅ 测试环境先升
✅ 保留旧版本至少 1 周
✅ 用 Docker 做回归测试
✅ 记录扩展清单

php -m > php_modules.txt

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

  • Debian 版本(10 / 11 / 12)
  • 当前 PHP 版本
  • Web 服务(Nginx / Apache)

我可以给你一套精确命令。

0 踩