今天登陆自己的Wordpress博客进行查看,结果一个我最最讨厌的问题抛了出来:

1

呵呵呵呵呵!上一次碰到类似的问题是使用NextGEN Gallery上传图片的时候遇到的,那时候费了好大的功夫通过SSH把php.ini的内存限制进行了修改才算勉强能用,而这次这个问题更是奇葩到家了……我还没上传图片好吗!我才刚刚进首页好吗!泪目啊。这明显不应该是我大Dreamhost不给力,这分明是软件问题啊。
好吧,先看那错误提示,找到发生错误的位置,代码是这样的:

2

这个功能闭着眼睛都知道是干啥的了吧!加载配置选项的,这尼玛怎么能崩炸掉我大内存呢?我忍不住print_r了一下$alloptions_db这个变量,然后一口老血喷出。
在翻过了前面短短的各种信息交杂的“乱码”过后……正面90%以上的都内容都是这样的:

3

看那个红框框啊,整页都是这个前缀来标识的选项啊,我非常想把这些都复制下来看看有多大,结果我太天真了……这文本量之大已足以让我大Chrom崩溃啊有木有!
显然,就是这些个废渣导致Wordpress崩了,既然如此,就去数据库看看这些玩意的真身到底有多残。

4

……
……
……
好嘛,我写了几年的博客的posts表都没你个options表大,而且你大就大吧,敢不敢不这么夸张啊!T^T。

5

检查内容后发现,表内充斥着这两种数据条目,一个是displayed_galleries作为前缀的,另外一个是_transient作为前缀的,而且displayed_galleries君还全部都无节操的被标记为了Autoload……在如此数据量之下,也难怪会崩坏内存了。
行吧……只能杀之而后快了,解决办法就是,执行下面这段SQL代码来清楚这些小变态们:

DELETE FROM wp_options WHERE option_name like ‘_transient%’ OR option_name like ‘displayed_galleries%’

6

 

你可以看到,这个动作执行了非常长的时间才返回结果,由此也可见涉及的数据条目之多了,NG作为一个应用如此之广泛的WP插件犯下如此错误实在是太不应该了……希望这篇文章能够帮助到出现了同样问题的小伙伴们。

说点什么

1 评论 在 "NextGEN Gallery 导致的严重问题及应对办法"

提醒
排序:   最新 | 最旧 | 得票最多

很喜欢你写的技术文,赞