WordPress 作为一款非常实用的内容管理系统,在全球各网站使用都很普遍。Wordpress 的更新也很频繁,小版本几周已更新,大版本几个月就更新一次,每次更新都会修复一些安全漏洞和增加一些新功能,所以说对 WordPress 更新是非常有必要的。
WordPress 的更新也很简单,点击一个按钮自动更新即可。但是在国内的站长一定对自动更新这个功能很无奈吧,由于 WordPress 更新服务器架设在国外,导致自动升级异常困难,通常更新几次都不成功,还会出现各种各样问题让网站打不开。

我就用文字记录一次 WordPress 的升级过程,留给自己作参考:
一、自动更新返回 504 Gateway time-out
我的网站前端使用 Nginx 做反向代理,最近每次对 WordPress 进行升级,前端都会返回 504 Gateway time-out。
怀疑是 nginx 前端等待超时,修改了 nginx.conf 的
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_read_timeout 300s;
这几个参数,让前端多等待下后端处理结果。
经测试,依旧不行。
再次修改后端 php-fpm 的进程数,最大到 30,再修改 php 的最大执行时间,max_execution_time = 300,依旧无果,仍然返回 504。
无论如何设置,始终是无法完成升级,而且 WordPress 每次自动升级失败后,再次点击更新,会提示:
有”升级 WordPress”,“另一更新正在进行”错误提示。
解决:登入MySQL 客户端,打开wp_options数据表,然后找到core_updater.lock字段,删除。
删除之后,可以继续点击自动更新,但是依旧返回 504 无法完成。
二、Wordpress 手动更新
折腾了有个把小时,实在对自动更新不抱希望了,决定手动更新,步骤记录如下:
1、备份 WordPress 的源程序和数据库文件
2、下载最新版 WordPress 源文件:https://cn.wordpress.org/
3、本地解压源程序,并删除 wp-content 文件夹
4、通过 SCP 工具删除服务器上 WordPress 程序目录内的 wp-includes、wp-admin 文件夹
5、将本地解压删除了 wp-content 目录(步骤3)的最新代码整体上传到服务器,并覆盖
6、上传文件完成后访问 https://域名.com/wp-admin/upgrade.php 按提示对数据库升级
完成!
总结
WordPress 自动升级失败,原因有很多,出现这个问题大概是因为
- 网络原因,无法连接 downloads.wordpress.com 升级服务器或下载速度太慢
- php 性能不够,程序执行超时
针对第一个问题,多出现于国内的服务器,暂时无解,针对问题2,可以试着调节 php 最大执行时间以及 php-fpm 的进程数。
如果实在是搞不定 WordPress 自动升级,那么就下载最新 WordPress 程序包手动升级吧,为了安全起见,切记要到官网下载,并且确认下载文件地址是 https 开头,不要使用迅雷等下载工具。