Как включить режим разработчика / отладки?

36

Установка ядра drupal 8 (с использованием стандартного профиля). всякий раз, когда я получаю исключение / ошибку, я получаю пустую страницу с сообщением «На веб-сайте обнаружена ошибка. Пожалуйста, повторите попытку позже». (как на картинке ниже) текст и никаких подробностей / трассировки об ошибке.

введите описание изображения здесь

vijaycs85
источник

Ответы:

51

На сайте разработки я бы предложил раскомментировать следующие строки в settings.phpфайле. emacs sites/default/settings.php

if (file_exists(__DIR__ . '/settings.local.php')) {
  include __DIR__ . '/settings.local.php';
}

а затем скопировать файл example.settings.local.phpиз /sitesпапки в /sites/defaultпапку и переименовать его вsettings.local.php

cp sites/example.settings.local.php sites/default/settings.local.php

В дополнение к добавлению следующего параметра

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

он также добавляет несколько других настроек, которые помогут вам в отладке и упрощении разработки. Если вам не нужен какой-либо из них, вы всегда можете их закомментировать.

Примечание. Если вы считаете, что добавление file_existsвызова на каждую страницу замедлит работу сайта, вы всегда можете удалить его в рабочем коде.

Гокул Н.К.
источник
Если у вас нет примера файла, вы также можете просто создать файл, содержащий<?php $config[...;
Даниэль Мадли
1
Как упомянуто ниже, модуль Devel может упростить работу для Drupal 8. Убедитесь, что $ config ['system.logging'] ['error_level'] = 'verbose'; Настройки, кажется, работают.
Даррелл Ульм,
Я создал докер-контейнер, который поставляется с необходимыми настройками для отладки и отсутствия кэширования - надеюсь, он будет полезен: hub.docker.com/r/feikede/drupal-dev
Rainer Feike
8

Если у вас есть доступ к консоли Drupal, вы можете легко включить среду разработки / отладки drupal site:mode dev; когда вы будете готовы вернуть его в производство, используйте drupal site:mode prod.

4life
источник
1
Хороший трюк с консолью Drupal
ognockocaten
7

Вот переменная с разными значениями:

$config['system.logging']['error_level'] = 'all'; // hide|some|all|verbose
Flo Develop
источник
2
Спасибо за добавление возможных значений.
plocks
Да, спасибо за добавление возможных значений, которые было удивительно трудно найти.
arnoldbird
4

Чтобы получить основные сообщения об ошибках в Drupal 8, вам вообще не нужно трогать код. Просто зайдите на:

/ Администратор / конфигурации / разработка / регистрация

и установите «Сообщения об ошибках для отображения» на соответствующий уровень.

Вы также можете просмотреть свои последние ошибки через интерфейс администратора:

/ Администратор / отчеты / dblog

Тем не менее, другие ответы о настройках файлов имеют отношение - вы должны всегда делать ошибки видны на вашем сайте разработки, а не производства.

Перезаписанные $ config объекты / ключи в файле settings.php не будут записываться в каталог синхронизации при экспорте, поэтому, если ваш файл settings.php находится в .gitignore, вы можете продолжать безопасно использовать систему конфигурации для синхронизации между клонами одного сайта ,

Уильям Туррелл
источник
0

Вы также можете установить модули Devel и Devel kint. Это позволит вам отлаживать с помощью kint(xyz).

rshah
источник
0

Если у вас есть доступ только к Drush (без консоли Drupal) и вы работаете на удаленном сервере, вы можете настроить конфигурацию так, чтобы она отображала все ошибки:

drush MYSITE.MYENV config-set system.logging error_level all -y

Это полезно, если вы получаете WSOD на удаленном сервере и не можете устранить неполадки без дополнительной информации.

Патрик Кенни
источник
Для описанной ситуации я настоятельно рекомендую drush sqlcзатем , SELECT * FROM watchdog ORDER BY wid DESC LIMIT 1чтобы показать последнюю запись в dblog.
Gogowitsch
0

Пустая страница с сообщением «На веб-сайте обнаружена ошибка. Повторите попытку позже». не возьму тебя никуда. Чтобы получить больше информации с вашего сайта Drupal 8, вы можете включить следующие настройки.

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

Для локальной разработки Drupal 8 вы также должны включить отчеты об ошибках, отображать ошибки и отображать ошибки запуска, чтобы помочь вам в дальнейшей отладке и исправлении основной ошибки времени выполнения.

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

Вы можете найти более подробную информацию об отладке TWIG и о том, как включить отладку с помощью Drupal Console, в блоге ниже.

https://www.drupixels.com/blog/enable-debug-mode-and-error-reporting-local-development-drupal-8

Гулаб Бишт
источник