Drupal 7 Troubleshooting Guide

Drupal 7 除错指引

致命错误

Drupal 发生致命错误时,有时会返回空白页面,需要查看 PHP 或 Apache 日志文件来定位具体错误。

menu_get_object 未定义

PHP Fatal error:  Uncaught Error: Call to undefined function menu_get_object() in includes/theme.inc:2580
Stack trace:
#0 includes/theme.inc(1125): template_preprocess_html(Array, 'maintenance_pag...')
#1 includes/errors.inc(254): theme('maintenance_pag...', Array)
#2 includes/bootstrap.inc(2609): _drupal_log_error(Array, true)
#3 [internal function]: _drupal_exception_handler(Object(PDOException))
#4 {main}
  thrown in includes/theme.inc on line 2580

清除 Cache 可以解决此类错误。

环境配置错误

Image Captcha 无图片

查看 Apache 的 rewrite 模块是否正确开启 apachectl -t -D DUMP_MODULES,执行 a2enmod rewrite 可解决。 

Clean URL 无法开启

访问 /admin/config/search/clean-urls,尝试开启 Clean URL 失败,查看 Apache 的 rewrite 模块是否正确开启 apachectl -t -D DUMP_MODULES,执行 a2enmod rewrite 可开启模块。

表单无法提交

提交表单后无法调用对应的 submit 函数,即使显式设置 form 的提交函数 $form['#submit'][] = '<函数名>'; 也无法调用。

解决办法:查看 Clean URL 是否正确配置。Clean URL 没有正确配置的情况下,表单虽然可以访问,但是会发生无法提交的情况。尝试用 ?q= 的方式访问表单,确认能否提交数据,如果表单正确工作,则查看 Apache rewrite 模块是否正确开启 a2enmod rewrite

Author: njun
njun's picture
Updated: 2019/10/30