1. 先确认网站实际使用的 PHP#
命令行 php -v 与网站 PHP-FPM 可能是不同版本。宝塔可以给不同站点选择不同 PHP;手工 Nginx 则通常通过 socket 指向某个 FPM 服务。升级前记录站点对应版本、扩展和关键 php.ini 设置。
php -v
php --ini
php -m
ls /run/php/这些命令主要查看命令行环境与本地 socket,不能代替网站运行时核对。WordPress 可在“工具 → 站点健康 → 信息”中查看实际 Web 环境。

2. 在测试副本确认兼容性#
先备份文件与数据库,在测试站升级 PHP,测试主题、插件、支付/邮件接口和后台任务。选择 PHP 官方仍受支持、应用也兼容的版本,不能只根据面板中还提供旧版就继续使用。
重点检查已弃用函数、扩展缺失、编码处理和数据库驱动。测试站不发送真实通知,不处理真实支付回调。发现错误先更新对应主题或插件,不能用隐藏错误来代替修复。
3. 宝塔安装新版本并切换单个站点#
在软件商店安装所需 PHP 版本及对应扩展。确认安装完成后,进入该站点的 PHP 设置选择新版本,先只切一个测试站,不必立刻卸载旧运行时。

切换后从未登录浏览器访问首页,再验证后台登录、图片上传、表单和计划任务。CLI 定时任务可能仍调用旧 php,需要使用明确的新版本路径。
4. 手工环境核对 FPM 与代理配置#
新 FPM 服务安装后,确认实际 socket 和权限,修改站点的 fastcgi_pass 指向新服务。先检查 Nginx 配置,再 reload;保留旧服务与配置以便恢复。
sudo nginx -t
systemctl list-units --type=service 'php*-fpm.service'
sudo systemctl reload nginx出现 502 时,检查 socket 路径、FPM 是否运行和权限,不能只因为 CLI php -v 正确就排除 PHP 问题。
5. 内存与上传限制要成组检查#
memory_limit 限制单个 PHP 请求可用内存,不是整台服务器总内存。FPM 并发进程数也要与实例容量匹配,不能在 1 GiB 机器上把每个进程上限和并发都设得很大。
上传还涉及 upload_max_filesize、post_max_size、Web 服务请求体限制和磁盘空间。post_max_size 通常需要大于单文件限制并留出表单开销。WordPress 的内存常量不能突破底层环境允许的所有限制。
6. 上线后留一段回退窗口#
观察 PHP 错误日志、响应时间和内存,覆盖一次真实业务周期后再卸载不需要的旧版本。回退时恢复原 socket、配置和扩展;数据库或插件升级引起的数据变化需要单独处理。
临时 phpinfo/探针页面检查完就移除,避免公开系统路径和环境信息。继续阅读WordPress 排错与性能优化。
完成后检查
验证网站实际运行的版本,而不是只看 php -v 的输出。