Debian 11 平滑升级 PHP 8.2 避坑全纪录:从 7.4 到 8.2 不踩雷、MySQL 扩展失踪一次解决 - 技术宅银魂 - 科技改变生活 - 万事屋 | 生活·动漫·娱乐综合社区-银魂同好聚集地

Debian 11 平滑升级 PHP 8.2 避坑全纪录:从 7.4 到 8.2 不踩雷、MySQL 扩展失踪一次解决

如果你也跟我一样,Debian 11 服务器还在跑 WordPress + PHP 7.4,每天看着官方安全提醒「7.4 已死」心里发慌,却又担心升级挂站——恭喜你,这篇Debian 11 升级 PHP 8.2 教程就是为你写的。

本文关键词:Debian 11 升级 PHP 8.2PHP 7.4 平滑升级到 PHP 8.2Debian 11 安装 PHP 8.2 MySQL 扩展WordPress 提示缺少 MySQL 扩展


一、为什么要升级?官方都催命了

PHP 7.4 已经在 2022-11-28 结束生命周期,安全补丁不再更新。WordPress 6.x 虽然还能跑,但官方已经发出“建议最低 PHP 8.0”的温柔警告。再等下去,插件作者都要撂挑子了。


二、升级前先做两件小事

    1. 备份!备份!备份!
# 列出所有 php7.4 包
dpkg -l | grep php7.4 | tee ~/php74-list.txt

# 备份配置文件
sudo cp -r /etc/php/7.4 ~/php74-backup
  1. 确认网站可用时间:升级就几分钟,但回滚需要重启,选个凌晨没人访问的点儿。

三、添加 Sury 源:Debian 官方仓库没有 8.2

sudo apt install -y lsb-release apt-transport-https ca-certificates wget
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update

四、安装 PHP 8.2 全家桶

sudo apt install php8.2 php8.2-fpm php8.2-cli \
  php8.2-common php8.2-mysql php8.2-xml php8.2-curl \
  php8.2-gd php8.2-mbstring php8.2-opcache php8.2-zip \
  php8.2-apcu

注意:Debian 11 安装 PHP 8.2 MySQL 扩展的关键包就是 php8.2-mysql,它一次性把 mysqli、pdo_mysql、mysqlnd 都带上了。


五、Web 服务器切换指向

Nginx 用户

sudo nano /etc/nginx/sites-available/your-site.conf

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

改成

fastcgi_pass unix:/run/php/php8.2-fpm.sock;
sudo nginx -t && sudo systemctl reload nginx

Apache 用户

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

六、常见坑合集(踩过才懂)

坑 1:php -v 显示 8.4?

你之前可能顺手装了 php8.4-cli,抢了默认。

sudo apt remove --purge php8.4*
sudo apt install --reinstall php8.2-cli
sudo update-alternatives --set php /usr/bin/php8.2

坑 2:php-fpm 启动报找不到 7.4 目录

因为你把 7.4 的 pool 直接复制到 8.2,主配置里 include 路径没改。

sudo nano /etc/php/8.2/fpm/php-fpm.conf

include=/etc/php/7.4/fpm/pool.d/*.conf

改成

include=/etc/php/8.2/fpm/pool.d/*.conf
sudo php-fpm8.2 -t && sudo systemctl restart php8.2-fpm

坑 3:WordPress 提示「缺少 MySQL 扩展」

实际是 PDO 扩展与 pdo_mysql 版本不匹配,符号表对不上。

sudo apt install --reinstall php8.2-common php8.2-pdo php8.2-mysql

七、清理战场:卸载 PHP 7.4

sudo apt remove --purge php7.4*
sudo apt autoremove
sudo rm -rf /etc/php/7.4 /usr/lib/php/20190902

八、最终检查清单

  • php -v 显示 PHP 8.2.x
  • php -m | grep -E 'mysqli|pdo_mysql|mysqlnd' 三兄弟都在
  • WordPress 后台「站点健康」全部绿灯

九、一键脚本(懒人福利)

把下面保存为 upgrade-php82.shchmod +x 后直接跑:

#!/bin/bash
set -e
sudo apt update
sudo apt install -y php8.2 php8.2-{fpm,cli,mysql,common,xml,curl,gd,mbstring,opcache,zip,apcu}
sudo apt remove --purge php7.4* -y
sudo apt autoremove -y
sudo systemctl restart php8.2-fpm nginx
echo "PHP 8.2 升级完成!"

十、写在最后

整个流程下来,Debian 11 升级 PHP 8.2其实就三件事:加 Sury 源、装 8.2、把 Web 指过去。剩下的坑基本都是复制粘贴路径没改、扩展版本对不上。跟着本文一步一步来,PHP 7.4 平滑升级到 PHP 8.2根本不难。

祝各位老板升级顺利,WordPress 再不提示「缺少 MySQL 扩展」!

请登录后发表评论

    没有回复内容

万事屋新帖