跳转到主要内容
bright_king 提交于 23 September 2012

无忧主机小编(www.51php.com)之前翻译的技术文章,都是针对当个问题去解决的,由详细的过程,今天为大家奉献一篇drupal常见问 题故障排除方法的文章,希望可以从方法上,宏观上给大家带来帮助,解决问题找到正确的方法,避免走入死胡同。这个文章里不会过多的涉及到解决问题的详细步 骤,但会告诉新手站长们遇到问题的时候如何去排除故障。而这文章当然也是根据drupal官网的资料整理出来的,无忧主机也只是一家php虚拟主机运营商,我们也是希望给广大的站长带来最有价值的服务,为 大家提供最优质的免费技术参考文档。好了题外话到此为止,开始译文开始,一下文章,均翻译来自drupal官方技术网站,译文原地址:http://drupal.org/Troubleshooting-FAQ

译文:

Drupal故障排除指南

1、考虑下面这两个问题

●是不是我们做了什么修改或者是升级模块。

●安装模块的版本是否和您的drupal站点的版本相适应。打个比方说,为drupal7做的模块是不可能用在d6上的。

2、查看错误信息

错误信息如何的显示,特点的错误在页面中显示。而drupal提供了core dblog模块来协助我们查看系统事件,而您可以在后台的…/admin/reports/dblog中找到错误报告。当然不依靠这个模块,我们也可以使 用类似无忧主机php虚拟主机上的日志文件,这个时候我们我们可以在http://www.51php.com首页下方的在线客服处得到帮助。

●.htaccess配置问题 — “内部服务器错误” —“500错误”定向在这里是不允许的

●内存问题 — Fatal error: Allowed memory size of 8388608 bytes exhausted。详细可参考:“解决Drupal7.x提示Fatal error: Allowed memory size of Y bytes exhausted内存报错的方法”

●javascript问题 — modules/troublesome/utilty.js 404文件无法找到。

3、页面前端异常。前面已经聊到了,直接参考:“drupal页面显示异常(打不开)的处理办法 ”。

4、清除点缓存

缓存机制大家应该也多多少少也应该了解一点。当drupal响应您的页面请求的时候,返回的页面就很可能因为缓存的原因不会反应出最近的修改。对于这个问题,只需要清除缓存就可以了。其实这一点和discuz之类的开源程序是有一定的相似。

●Drupal 6:清除缓存,点击…/admin/setting/performance下方的“Clear all caches”按钮

●Drupal 7:清理缓存, 点击…/admin/config/development/performance上方的“Clear all caches” 按钮

5、查看模块中的README文件

●来自模块开发者的生成信息和建议

●相关性(例如服务器的php扩展)

●需求

●安装说明

●警告(例如模块冲突和补)

6、使用搜索引擎

这个似乎没什么好解释的。但建议最您的问题最后加一个drupal单词。

7、源代码中SQL错误

下面是错误的示例。

1 You have an error in your SQL syntax; check the manual that corresponds to
2 your MySQL server version for the right syntax to use near '(n.nid), n.title
3 FROM category c INNER JOIN category_node r ON c.cid = r.cid INN'
4 at line 1 ...  in /var/www/html/doadance/drupal/includes/database.mysql.inc on line 120.

对于那些英语有点小问题的站长们, 这个时候一定要坚持住,淡定、淡定,不好意思问别人的话就用在线翻译!首先我们可以确定这类不是核心文件的问题,更可能是第三方模块引起的问题。慢慢的调 试出是哪个第三方模块引起的问题。而在我们现在这个案例中来说,可能是分类模块的问题。当然,这也可能是与分类模块有直接数据关联的模块引起的。

8、调试模块代码

代码的问题已经会涉及到报错内容中一些显示了的代码。而Devel module模块是能帮助我们的,有兴趣的可以看一看这个模块。而这里呢,就让我们用一个例子来看看如何一步步调试和找出问题。

warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/httpd/global/drupal/modules/node.module on line 1303.

●找到node.module的1303行,而这里您将会要修改文件,那么现在您当然要备份文件。

●而1303行,node.module是定位在in_array(‘status’,$node_options)。

●在这一行前插入代码 — print(“Node options are : ‘”.print_r($node_options,1).”‘”);

●查看输出,并确定错误的数据类型是从何来的。

9、到drupal的官网论坛寻求帮助

英语还行的话就上去发发问题帖,一般都会有热心人为您回答问题的。Just try,don’t be shy.

10、确定是模块引起的问题

当您确定是模块引起的问题,打开相应的“模块名.module”文件。而模块定义的也面通常是定义在hook_menu()函数内。首先,看URL;然后是模块提供的内容;最后当然看用了hook_menu()函数的代码和“模块名.module”文件。

遇到故障后的最基本的处理方法,希望对大家有所帮助。有些排障的方法虽然就几句话就简单的概述了,但没一定的基础建议不要随便试,但然一切是在您没 有做备份的情况下。然而无忧主机(www.51php.com)小编也会继续加油,多给一些质量高的文章出来。为用户提供香港最优质的免费php主机产 品、提供最专业的售后服务支撑,这是每一个无忧人一直追求的目标。为你提供最权威、最专业的php网站部署方案。

 

纯Linux环境下高端免备案【香港独立IP地址】php空间,仅仅只需199元一年起。商务中国域名核心代理直销50元注册国际顶级域名

本文地址:http://www.51php.com/drupal/8237.html

喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^