Как отключить PHP-ошибки?

Есть ли способ отключить все ошибки PHP, предупреждения и уведомления в Drupal? Они полезны на сайте разработки, но они представляют большой риск для безопасности и делают сайт плохо выглядящим в режиме реального времени.

Я знаю, что на Drupal 6 страница в admin /settings /error-reporting может остановить Drupal от написания ошибок на экране, но где я могу найти это в Drupal 7? Кажется, он отсутствует.

7
31 голос | спросил drupal_stuff_alter 14 12011vEurope/Moscow11bEurope/MoscowMon, 14 Nov 2011 13:14:52 +0400 2011, 13:14:52

7 ответов


28

Путь изменяется, как и в Drupal 7, на той же странице, которую вы раньше видели в admin /settings /error-report, теперь находится в admin /config /development /logging.

screenshot

ответил kiamlaluno 14 12011vEurope/Moscow11bEurope/MoscowMon, 14 Nov 2011 13:28:18 +0400 2011, 13:28:18
14

Как было предложено, в Администрирование  »Конфигурация » Разработка/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); //Отключить все ошибки.

Смотрите: error_reporting ()


Ответственный Drupal 7 основной код для E_ALL ведения журнала (файл: includes /bootstrap.inc):

//Enforce E_ALL, но разрешить пользователям устанавливать уровни, не входящие в E_ALL.
error_reporting (E_ALL | error_reporting ());

См. также:

ответил kenorb 15 J000000Tuesday14 2014, 16:52:50
4

Одна вещь, о которой никто не упомянул, может быть полезен для людей, чтобы знать, что Drupal 7 игнорирует все локальные системные сообщения об ошибках. Поэтому вы не можете использовать .htaccess или даже php.ini для установки уровней отчетности об ошибках php в Drupal.

В D8 есть исправление, но в настоящее время в D7 вы ограничены тремя масками ошибок - все, ничто, или ошибки и amp; предупреждения, которые заданы на странице admin kiamlaluno.

ответил forest 1 Mayam12 2012, 04:45:19
3

Настройки всегда находятся в admin /config /development /logging :)

ответил Remon 14 12011vEurope/Moscow11bEurope/MoscowMon, 14 Nov 2011 13:23:37 +0400 2011, 13:23:37
1

Возможно, вам нужно будет добавить кавычки к решению kenorb, указанному выше:

ini_set ('error_reporting', 'E_COMPILE_ERROR | E_RECOVERABLE_ERROR | E_ERROR | E_CORE_ERROR');
ответил Greg Lund-Chaix 5 MaramThu, 05 Mar 2015 03:22:47 +03002015-03-05T03:22:47+03:0003 2015, 03:22:47
1

Не знаю, почему метод Drush настолько недокументирован, но у меня есть сценарий сборки:

drush vset error_level 0

... который сохраняет сообщения об ошибках в журнале, но не показывает их на экране.

ответил Matt Fletcher 12 PM00000080000000331 2015, 20:33:03
0

Для этого есть модуль:

https://www.drupal.org/project/errorlevelpermission

На странице проекта:

Итак, вы можете

  • имеют роль сайта (или даже особую роль отладчика), чтобы увидеть ошибки и уведомления
  • другие не видят ошибок и уведомлений.
ответил aexl 19 AM00000030000001031 2016, 03:45:10

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132