这几天手上的部分自托管WordPress网站崩溃,前后台皆然。报错信息(如图)为:
这个网站发生重大问题。

目次
背景
产生bug时的基本信息如下:
- 服务器系统:Ubuntu 20.04 LTS x64
- WordPress版本:6.0.3(升级为6.1仍有问题,后述)
笔者使用的是WordPress多站点架构,所以多个网站出现了上述问题。但值得注意的是,并非全部网站有此问题——
基本是主域名站点才遇到了此问题。子域名(从域名)站点庶几无发生此问题。
(当然,并不能确定问题是出在域名性质上,这只是一个粗浅的归分。)
开端
问题最开始出现的不到一个小时之前,笔者于某个子站点安装了Web Librarian插件。(但是该插件删除后,问题仍存在,后述。)
然后顺手于多站点管理后台“升级网络”(不知是否是这一步导致问题)。
而后问题出现。
排查
首先,透过FTP等手段访问WordPress的插件的根目录(位于/wp-content/plugins
)。将插件根目录/plugins
的文件夹名改为任意的其他名字,只要不是“plugins”就好。
通过这样的方式,令全部插件暂时不可用。如果此时对网站前后台的访问能够恢复,则可推测问题出在插件。
结果访问恢复。
再恢复插件根目录的原文件夹名,bug重现。
再更改插件根目录的文件夹名,令全部插件暂时不可用。然后将WordPress由6.0.3更新为6.1(正好它发布了更新,所以顺手更新),可以正常访问网站前后台。恢复插件根目录原文件夹名,bug重现。
至此将排查范围缩小至插件。
然后则开始了痛苦的插件排查过程,即将插件一个个禁用过去,看看问题会不会消失。(由于网站后台无法访问,所以是在服务器上的WordPress插件根目录下将插件文件夹一个个删除过去。)
最终排查到了Jetpack,将之删除,网站访问恢复。
关于Jetpack
Jetpack是Automattic旗下的一款插件。安装后,可以在统一的网页端、手机端、电脑端后台,管理手上的诸多自托管WordPress站点。虽然也有人对该插件有非议,但笔者暂时还是相当仰仗之的。
解决
于是再通过WordPress官方的插件商城将Jetpack安装。无任何问题发生。
复将必要的插件悉数装回,仍无问题。问题宣告解决。
是次问题疑为Jetpack插件的bug,通过重装插件解决。
附:排查插件问题的小撇步

如果平日启用插件较多,经过上述排查过程,还要手动再将插件全部恢复启用,相信又是一番痛苦过程。而手上站点一多,则是双加痛苦。且手动操作,又有插件遗失之虞。
这时,采取以下两则方法可尽量避免上述问题。
一,是在通过访问服务器上的WordPress目录来禁用——甚至批量禁用——插件的时候,避免访问站点后台的插件管理页面。
一旦访问了,访问者会收到“插件文件找不到,插件已被禁用”的警告。然后,即便安装回这些插件,在插件列表中它们仍旧是“未启用”的状态,而需要去再度手动逐个启用它们。
但如果在全过程都不去访问插件管理页面,而到排查、重装过程全部完毕之后,再访问插件管理页面,检查有无遗失插件,这时则会发现原有的插件启用、禁用状态基本不会被改变。如是便能避免劳力手动重新启用插件。
二,以截图或手记的方式记下所安装、启用的插件。回头恢复安装、启用时,可对照列表,逐个确认,避免疏失。
留下評論