老Q的自动化之路

分享QClaw使用心得、自动化运营技巧、副业盈利方案。从0开始,记录一个普通人用AI工具赚钱的真实过程。

老Q的自动化之路

分享QClaw使用心得、自动化运营技巧、副业盈利方案。从0开始,记录一个普通人用AI工具赚钱的真实过程。

WordPress升级后网站崩溃:我踩过的2个大坑

做网站这么多年,最怕的不是网站没流量,而是网站直接打不开了。去年我用WordPress搭了一个技术博客,平时更新也挺勤快的,结果在一次例行升级之后,整个站直接给我整”白屏”了——浏览器一片空白,连后台都进不去。今天就把这两次让我印象深刻的坑整理出来,希望你别再重蹈覆辙。

坑一:升级WordPress核心版本导致白屏

那天我照常在后台点了”自动升级”,弹了个成功提示,我也没在意就去干别的了。过了几分钟有朋友发微信说网站打不开了,我一打开浏览器——好家伙,纯白一片,什么错误信息都没有。

起初我以为是服务器的问题,SSH连上去看了半天Nginx和PHP-FPM都正常运行,PHP版本也对。后来想起来可以开启WordPress的调试模式,就在wp-config.php里加了一行:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', true);

刷新页面,错误信息终于露出来了:

Fatal error: Cannot declare class WP_Screen, because the name is already used in…

一看这报错就知道是类名冲突,多半是插件或者主题和新版WordPress不兼容了。但当时我连后台都进不去,总不能一个个插件去猜吧。

解决方案:

进服务器把wp-content/plugins目录改名,相当于把所有插件临时禁用:

mv wp-content/plugins wp-content/plugins.bak

刷新页面,网站活了!然后把目录名改回来,通过FTP或者命令行逐个重新启用插件,找出那个”罪魁祸首”。我最后排查出来是某个SEO插件和最新版WordPress不兼容,删掉换一个就解决了。升级前最好先在测试环境跑一遍,不要直接在生产环境点”一键升级”。

坑二:主题不兼容导致后台也白屏

以为白屏问题解决了就万事大吉?太天真了。换了新主题之后,后台文章列表页和编辑器页面全部空白,按钮点击没反应,连媒体库都打不开。

这次不是整个站白屏,是后台特定页面出问题。我第一反应是清浏览器缓存,无效。然后以为是JavaScript冲突,打开Chrome开发者工具一看,控制台满屏都是Uncaught SyntaxError的错误,都是主题里某个JS文件报出来的。

看了下主题的JS代码,发现主题作者在footer.php里直接手动引用了一个压缩过的jQuery插件,但那个插件依赖的是旧版jQuery,而WordPress 5.6之后默认带的jQuery版本已经变了,API不兼容,直接报语法错误。

解决方案:

先把主题切换回默认主题(Twenty Twenty系列),后台恢复正常后再处理问题主题。有两个思路:一是把主题里错误的那段jQuery引用删掉,改用WordPress自带的wp_enqueue_script方式加载;二是联系主题作者要一个兼容新版WordPress的更新版本。

我选择了方案一,顺手还把主题里其他几个有类似问题的文件也修了一下。修完之后主题正常了,后台也恢复了。

总结:防坑三板斧

经过这两次折腾,我总结了一套WordPress升级的标准流程:

  • 升级前:完整备份数据库和所有文件,用测试站(或者本地环境)先升级确认没问题再上生产环境
  • 升级后:先清浏览器缓存,再开调试模式看有没有报错,别上来就刷新主页
  • 出问题时:先禁插件再禁主题,二分法快速定位问题根源

网站崩溃这种事真的是不发生在你身上你就不知道有多痛苦,一台稳定的服务器也很重要。如果你也在找靠谱的云服务器,我目前在用的是腾讯云的机器,稳定性还不错,有需要的朋友可以看看:

腾讯云服务器推荐:https://curl.qcloud.com/7Znu7m7b

有问题也欢迎留言交流,或者直接加我微信,咱们一起把坑填平!

WordPress升级后网站崩溃:我踩过的2个大坑

发表回复

Scroll to top