跳转到主要内容
lhanappa 提交于 23 October 2014

 “嗨,升级以后,我再也无法有效地编辑专栏了!”需求来了。好吧,最近几个月已经有好几个不同的版本升级了。菜单编辑模组,服务器端都有升级。站点正被大量使用,因此目录上也有很多的变化。

首先:有新的许可吗?我看见一大堆许可出现在这个模组,这些应该都是新的,可是为什么会有?熟练地添加他们。等等,我猜不行,这些许可不能轻松地作用于你的25个域内。好吧,我们创建自己的许可来检查这些权限。嗨 ,还需要知道什么?我们都已经做了!而且。。。这都不是问题。

好,下一步。Drupal,尤其是旧版本的Drupal,不喜欢把文件放在目录中。我记得我们曾遇到有关于自定义代码和链接的问题。啊哈,没有任何链接!而且它看上去对目录没有什么影响。等等,当我们在测试时,编辑这些完全相同的目录是正常的!

错误日志。让我们来看看这里面是否会有一些有用的东西。Dang,这里有一打针对每一个请求的完整日志,这真是一个繁忙的地方。一个升级PHP的结果是,是的原先的可用的代码不在适用。这并不会是的站点崩溃但它会使得日志变得很没用。

好吧。也许菜单中有一些用户没有权限的新东西。让我们直接刷新数据库副本,然后继续。1.8G的数据迁移、清洁在那里仍然工作正常。完全没有异常!下面就是环境的问题了。我们主要的设备环境仍然是在旧版本上运行的。在工作站上做一个全新的站点,哈!终于要回到这个问题了。

首先,我们清理出一些垃圾日志,这样我们可以看到它真正记录下的问题。然后,记录下每个请求的3个消息——与菜单编辑无关的。继续查错,这里是一个大的递归过程——检查树结构的走向。。。天哪,有138的条目,NetBeans的调试会有一些不足——我不能设置条件断点,不能在某一固定值的时候停下来。没有这个就无路可走了。

嗨,为什么直接跳过那些确认表格的步骤呢?这可不对——我提交表格,它就应该经过表格确认然后交由提交步骤处理。为什么不直接跳过呢?让我们来看一下变量 $_POST,我观察整个内嵌数组,但是没有form_id?这正是跳过确认环节所需要的。是的,没有问题变量form_build_id 和 form_id都被封装在POST内了。但是等等,为什么它们不是PHP中的变量呢?POST最大值?这是一个漫长的提交过程,超过28K。但是服务器的上限是2M ,应该不成问题。搜索GOOGLE。没反应,反复试几次,有不同的词。啊哈!max_input_vars:添加进~PHP5.4用来防止涉及建立$_POST 和 其它请求队列的DOS攻击。新的缺省值是:1000. 有多少变量我们试着公布的?1228个。变量form_id 和 form_build_id 正好是在最后。

诊断问题时间:大于4小时

处理问题时间:30秒

为什么提供正确的评估测试这么难——你不知道你不知道什么。而且这些东西都在不断变化——无论你经验多么丰富,多勤奋,总有你不了解的地方。

Drupal 版本