WordPress提示“另一个更新正在进行”怎么办?原因分析 + 3种安全解决方法(含手动清理)

先说结论:这不是“你手速太快”,是 WordPress 更新锁没松手

当你在后台更新主题/插件/WordPress 核心时,如果中途网络断了、页面关了、服务器超时了,WordPress 可能会留下一个“更新锁(lock)”。然后它就会一本正经地告诉你:

“另一个更新正在进行(Another update is currently in progress)”

翻译成人话就是:我以为我还在更新,所以你别动。问题在于,它“以为”的时间可能长到离谱。

这个提示到底是什么机制?(为什么会出现)

WordPress 为了避免多人/多窗口同时更新导致文件互相覆盖,会在更新时写入一个锁。这个锁一般存储在数据库的 wp_options 表里,key 通常是:

  • core_updater.lock

正常情况下,更新完成后它会自动删除/释放;异常情况下(超时、宕机、权限问题、磁盘满、PHP 进程挂掉),锁就可能残留,导致你后续任何更新都被拦截。

在动手之前:先做一个“人类该做的检查”

别急着删数据库。你先判断一下是否真的有更新任务在跑:

  1. 如果你刚刚点了更新,等 2–5 分钟再刷新(有些主机 IO 慢得像在用算盘)。
  2. 如果你是多人协作后台,确认没人正在更新插件/主题/核心。
  3. 如果你用了缓存/反代/CDN(尤其是后台被奇怪地缓存),先清缓存再试。

如果你已经等了很久(比如 10 分钟以上),还在提示,那基本就是锁残留了。

解决方法 1:等它自己释放(适合“刚卡住不久”的情况)

WordPress 的锁通常会有过期时间,很多情况下你等一会儿它会自己恢复。

适用场景:你刚点更新不久,服务器性能一般但没崩,且你不想碰数据库。

不适用场景:你已经被它“另一个更新正在进行”教育了半小时。

解决方法 2(推荐):用 WP-CLI 安全解除锁

如果你能 SSH 登录服务器,WP-CLI 是最省心的方式,操作清晰、可回滚,像个靠谱的人类。

执行前先查看锁:

wp option get core_updater.lock

然后删除锁:

wp option delete core_updater.lock

如果你的站点有自定义表前缀或多站点环境,WP-CLI 会比你手动找表更不容易翻车。

解决方法 3:phpMyAdmin/数据库里删除 core_updater.lock(最常用,也最容易手滑)

如果你没法 SSH,那就用 phpMyAdmin 或数据库管理工具直接删锁。

步骤(按顺序做,别自由发挥)

  1. 备份数据库(至少导出 wp_options 表)。
  2. 打开数据库,找到你的 WordPress 数据库。
  3. 进入 wp_options 表(注意:你的前缀可能不是 wp_)。
  4. 搜索 core_updater.lock
  5. 删除这一行(Delete)。

如果你想用 SQL(更快,但也更“刺激”)

wp_ 替换成你的表前缀:

DELETE FROM wp_options WHERE option_name = 'core_updater.lock';

删了锁还不行?那说明“锁只是表象”,更新本身可能失败了

现实通常更残酷:锁解除后你再更新,又卡住或报错。这时候你要排查的是“为什么更新会失败”。常见原因:

  • 文件权限不对:WordPress 无法写入 wp-content 或核心文件目录。
  • 磁盘满:更新需要解压文件,磁盘不够直接翻车。
  • PHP 超时 / 内存不足:更新包大一点就会中途断。
  • 安全插件/防火墙拦截:某些 WAF 会把更新请求当可疑。
  • 主机 IO 太慢:共享主机常见,更新体验像在等地铁末班车。

避免复发:别让 WordPress 更新像抽盲盒

想减少再次遇到“另一个更新正在进行”,你可以做这些更务实的事:

  1. 尽量用 WP-CLI 更新:比后台点按钮更稳定,日志更清晰。
  2. 更新前先备份:尤其是核心更新和批量插件更新。
  3. 不要一次性全选几十个插件更新:失败概率会按你的人类自信程度上升。
  4. 检查服务器资源:磁盘、内存、PHP max_execution_time。
  5. 避免在高峰期更新:服务器本来就喘不过气,你还让它搬家。

快速自检清单(你可以照着对号入座)

  • 等待超过 10 分钟仍提示:大概率锁残留
  • 有 SSH:优先 WP-CLI 删除 core_updater.lock
  • 无 SSH:phpMyAdmin 删除 wp_options 里的 core_updater.lock
  • 解锁后仍更新失败:排查权限/磁盘/PHP超时/安全拦截

一句话总结

“另一个更新正在进行”不是玄学,是 WordPress 的更新锁没释放。解法也不神秘:要么等它醒悟,要么你帮它删掉 core_updater.lock,然后把导致更新失败的根因顺手解决掉,免得下次再见。

滚动至顶部