有没有办法使Drupal中的所有PHP错误,警告和通知静音?它们在开发站点上很有用,但存在很大的安全风险,会使该站点无法正常运行。
我知道在Drupal 6上的admin / settings / error-reporting页面可以阻止Drupal将错误写入屏幕,但是在Drupal 7的哪里可以找到它?似乎丢失了。
有没有办法使Drupal中的所有PHP错误,警告和通知静音?它们在开发站点上很有用,但存在很大的安全风险,会使该站点无法正常运行。
我知道在Drupal 6上的admin / settings / error-reporting页面可以阻止Drupal将错误写入屏幕,但是在Drupal 7的哪里可以找到它?似乎丢失了。
Answers:
路径发生了变化,就像在Drupal 7中一样,您之前在admin / settings / error-reporting中看到的页面现在在admin / config / development / logging中。
如建议的那样,您可以在Administration » Configuration » Development
(at /admin/config/development/logging
)中找到禁用显示错误消息的设置,但不会完全禁用错误/通知。
这是因为Drupal 7强制执行E_ALL,因此仍将它们写入syslog,您可以在“ 最近的日志”中看到它们,从而影响网站性能。
要完全禁用通知,您必须在settings.php
或php.ini
文件中添加以下行:
ini_set('error_reporting', E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);
显示所有错误,但声明和编码标准警告除外。
要使所有PHP错误都静音(不建议这样做),您可以尝试添加设置文件:
error_reporting(0); // Disable all errors.
负责E_ALL
记录的Drupal 7核心代码(文件:)includes/bootstrap.inc
:
// Enforce E_ALL, but allow users to set levels not part of E_ALL.
error_reporting(E_ALL | error_reporting());
也可以看看:
您可能需要在上面发布的解决方案kenorb上添加引号:
ini_set('error_reporting', 'E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR');
有一个用于此的模块:
https://www.drupal.org/project/errorlevelpermission
从项目页面:
这样你就可以