“网站遇到了意外错误。请稍后再试。”


27

我在Drupal 7中遇到此错误

  1. 如何获得有关此错误的更多信息?任何报告,任何地方的日志?php错误中没有。

  2. 如何禁用该消息,并有一条更有用的消息用于调试?

注意:我的问题不是“如何解决此问题”

Answers:


27

此错误来自未捕获的PHP异常。Drupal捕获异常,因此不会向用户显示难看的PHP错误消息。您可以在报告的“最近的日志消息”链接中找到异常信息(或尝试使用以下路径:/ admin / reports / dblog)。确保已启用“数据库日志记录”模块,因为该模块提供了此报告。

您将看到所有已生成的内部消息。通过类型“ PHP”和严重性“错误”进行过滤,您可能会发现有关未捕获的异常的消息。这是造成您的问题。现在您有了更多信息,因此您可以对其进行修复。


好的,谢谢,因此,没有现成的方法可以将这种行为更改为更符合调试要求的行为吗?(例如...在萤幕上显示例外状况)
2012年

不,AFAIK没有做到这一点的简便方法。您可以尝试设置自己的异常处理程序(使用标准PHP函数set_exception_handler),但要注意副作用。
sanzante 2012年

7
检查的好主意/admin/reports/dblog。除非,当然,除非您甚至无法登录,因为这个愚蠢的错误使您的整个drupal网站陷入困境!
g33kz0r

我本人在viewreference中看到了此错误“ FieldException:尝试创建未知字段...”对我来说,启用drush en viewreference的解决方案有效-我正在与其他人合作并拉动他们的git更新,所以我得到了模块代码,但是我需要启用模块(因为启用在数据库中,而我没有在拉取请求中得到,我们正在使用功能)。希望这对其他人有帮助。
therobyouknow 2013年

4
@ g33kz0r:可以使用drush watchdog-show查看错误消息,或者如果您的站点完全损坏,请检查存储这些消息的数据库中的watchdog表。
sanzante 2014年

15

Drupal 6和7

如果使用Drush,请执行drush vset error_level 1

否则,请转到“ /admin/config/development/logging”并将设置更改为“错误和警告”

Drupal 8

代替drush vset/ vget/ vdel,可以将cset/ cget/ cdel用于配置值和sset/ sget/ sdel用于状态值。


12

简单的方法

编辑您的settings.php并在其中添加一行(特别是在您的开发网站上,您可以继续进行此操作)

$conf['error_level'] = 1;

drush需要您能够引导数据库。


最佳答案。它节省了我的时间。
奥斯汀

6

Drupal 8的便捷方法

如果您无法按照已接受的答案中所述再次登录以访问最近的日志消息。

/sites/default/settings.php使用编辑器或ftp客户端打开文件并添加以下行:

$config['system.logging']['error_level'] = 'verbose';

重新加载页面后,您将看到完整的错误消息,而不是通用的“网站遇到意外错误。请稍后再试。”


2

该错误来自_drupal_log_error()

作为开发的快速解决方案,您可以更新该功能以提供更多详细的错误消息,但是请务必确保在网站上线之前将其更改回:)


0

检查dblog。它是在Drupal网站中发现错误的最佳位置。还要检查JS控制台,以在浏览器中找出其他错误。


感谢您的dblog(/ admin / reports / dblog)。现在,我如何禁用该消息,并有一条更有用的消息用于调试?
2012年

1
无论如何,我认为JS错误不会导致该服务器错误...
2012年


0

尝试这个:

错误等级

admin menu equivalent: admin/config/development/logging
drush command: drush vset -y error_level <value>
values:
    0: none
    1: errors and warnings
    2: all 

0

要使错误在您的Drupal网站上可见,请在网站的主目录中找到index.php文件。打开index.php并将此代码直接添加到文件的第一行之前:

error_reporting(E_ALL); 
ini_set('display_errors', TRUE); 
ini_set('display_startup_errors', TRUE); 

您也可以按照此处所述尝试使用错误日志解决Drupal问题


0

这是一个旧线程,但是由于最近在提供输入时遇到了相同的问题。我无法访问任何Drupal路径,因为无论如何我总是会遇到此错误。在更新视图后开始发生这种情况,因此我知道需要执行什么操作,但无法打开视图。因此,我查看了Apache服务器日志。除了上面提供的解决方案(例如查看drush和dblogs)之外,查看Apache服务器日志可能会有所帮助,尤其是在您无法访问任何应用程序路径时。这些通常存在于\ logs \ error.log文件下,并将包含未处理的异常及其生成位置的详细信息。作为快速解决方案,您可以注释引发异常的代码并对该应用程序进行更新。在我的情况下,我评论了能够访问视图并进行所需更新的代码发布。希望它能在类似情况下帮助某人


0

这很有趣,但是如果您打开页面源(CTRL-U),则所有警告和错误消息都在其中,它们只是在隐藏的元素中。搜索element-invisible

编辑:$conf['error_level'] = 1;也应放在settings.php文件中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.