手动升级 WordPress 核心文件是后台自动更新失败时的标准补救方案,最稳妥的方式是通过 SFTP 或 SSH 替换除 wp-content 和 wp-config.php 之外的所有核心文件。
先说结论:手动升级的核心在于“保留配置、替换核心、触发数据库更新”。
- 适合自动更新报错或服务器权限受限的场景
- 操作前务必检查磁盘空间并开启维护模式
- 建议升级前完整备份数据库和文件,以便故障回滚
升级前准备与检查
在开始替换文件前,需确保服务器环境满足升级条件,避免中途中断导致站点不可用。
- 检查磁盘空间:通过 SSH 登录服务器,运行
df -h确认剩余空间充足,避免解压失败。 - 完整备份:使用插件或主机面板备份全站文件及数据库。如果升级失败,这是唯一的回滚途径。
- 开启维护模式:在 WordPress 根目录手动创建
.maintenance文件,防止用户在升级过程中访问站点产生错误。命令:touch .maintenance。
方案一:SFTP 文件替换(推荐)
除了 FTP 方式,如果你拥有 SSH 权限,推荐使用命令行更高效完成,但 SFTP 图形化操作更直观。以下是 SFTP 关键操作逻辑:
- 下载最新 WordPress 压缩包并在本地解压。
- 连接服务器,进入 WordPress 根目录。先上传新的
wp-admin和wp-includes目录。 - 确认新文件上传完成后,再删除旧的
wp-admin和wp-includes目录。不要删除wp-content。 - 根目录其他文件覆盖更新,但务必跳过
wp-config.php。 - 上传完成后,删除根目录的
.maintenance文件。
方案二:SSH 命令行升级
如果你熟悉命令行,可以通过 SSH 快速完成核心文件替换,效率更高且不易出错。
- 进入 WordPress 根目录:
cd /path/to/wordpress - 下载最新核心:
wget https://cn.wordpress.org/latest-zh_CN.zip - 解压文件:
unzip latest-zh_CN.zip - 替换核心文件(排除配置和内容目录):
rsync -av `--delete` `--exclude`='wp-content' `--exclude`='wp-config.php' wordpress/ ./ - 清理临时文件:
rm -rf wordpress latest-zh_CN.zip
权限与所有者修复
上传后如果文件所有者不对,可能导致后台无法写入。需确保文件权限通常为 644,目录为 755,可使用以下命令修复:
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
chown -R www-data:www-data .注意:www-data 需替换为你服务器实际的运行用户(如 nginx 或 apache)。
数据库升级与验证
文件替换完成后,需触发数据库结构更新。
- 在浏览器访问
http://你的域名/wp-admin/upgrade.php。如果提示数据库需要更新,点击确认按钮。 - 登录 WordPress 后台仪表盘,查看首页显示的版本号是否与最新版一致。
- 进入“工具”>“站点健康”,检查是否有严重问题。
- 前台访问几个关键页面,确认没有 PHP 报错或白屏。
故障排查与回滚
如果升级后站点出现白屏或错误,请按以下步骤处理:
- 覆盖 wp-config.php:这会导致数据库连接信息丢失,站点直接无法访问。若误覆盖,请立即从备份还原该文件。
- 忽略数据库升级:文件更新了但数据库结构没变,可能导致某些功能异常。请重新访问
/wp-admin/upgrade.php。 - 紧急回滚:若无法修复,通过主机面板或 SSH 还原升级前备份的文件和数据库。
- 插件兼容性:核心升级后,旧插件可能不兼容。建议升级前先禁用关键插件或排查错误日志。