Wie aktiviere ich den Entwickler- / Debug-Modus?

36

Installation von Drupal 8 Core (mit Standardprofil). Wenn ich eine Ausnahme oder einen Fehler erhalte, wird eine leere Seite mit der Meldung "Auf der Website ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut." (als Bild unten) Text und keine Details / Spuren über Fehler.

Bildbeschreibung hier eingeben

vijaycs85
quelle

Antworten:

51

Auf einer Entwicklungssite würde ich vorschlagen, die folgenden Zeilen in der settings.phpDatei zu entfernen. emacs sites/default/settings.php

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

Kopieren Sie anschließend die Datei example.settings.local.phpvon /sitesOrdner zu /sites/defaultOrdner und benennen Sie sie in umsettings.local.php

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

Zusätzlich zum Hinzufügen der folgenden Einstellung

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

Es werden auch einige andere Einstellungen hinzugefügt, die Ihnen beim Debuggen und Erleichtern der Entwicklung helfen. Wenn Sie keine davon möchten, können Sie sie jederzeit auskommentieren.

Hinweis: Wenn Sie der Meinung sind, dass das Hinzufügen eines file_existsAufrufs zu jeder Seite die Website verlangsamt, können Sie ihn jederzeit im Produktionscode entfernen.

Gokul NK
quelle
Wenn Sie keine Beispieldatei haben, können Sie auch einfach eine Datei erstellen, die<?php $config[...;
Danielle Madeley,
1
Wie weiter unten erwähnt, kann das Devel-Modul Drupal 8 die Arbeit erleichtern. Einstellungen scheinen zu funktionieren.
Darrell Ulm
Ich habe einen Docker-Container erstellt, der die erforderlichen Einstellungen für Debugging und Nicht-Caching enthält - ich
Rainer Feike
8

Wenn Sie Zugriff auf die Drupal-Konsole haben, können Sie die Entwicklungs- / Debugging-Umgebung einfach über aktivieren drupal site:mode dev. Wenn Sie bereit sind, die Produktion wieder aufzunehmen, verwenden Sie drupal site:mode prod.

4life
quelle
1
Nizza Trick mit der Drupal-Konsole
ognockocaten
7

Hier ist die Variable mit den verschiedenen Werten:

$config['system.logging']['error_level'] = 'all'; // hide|some|all|verbose
Flo Develop
quelle
2
Vielen Dank, dass Sie die möglichen Werte hinzugefügt haben.
18.
Ja, danke, dass Sie die möglichen Werte hinzugefügt haben, die überraschend schwer zu finden waren.
Arnoldbird
4

Um grundlegende Fehlermeldungen in Drupal 8 zu erhalten, müssen Sie keinen Code berühren. Gehen Sie einfach zu:

/ admin / config / development / logging

und setzen Sie "Anzuzeigende Fehlermeldungen" auf eine geeignete Stufe.

Sie können Ihre letzten Fehler auch über die Administrationsoberfläche anzeigen:

/ admin / reports / dblog

Andere Antworten zu Einstellungsdateien sind jedoch relevant - Sie sollten Fehler immer nur auf Ihrer Entwicklungssite sichtbar machen, nicht auf der Produktionssite.

Überschriebene $ config-Objekte / -Schlüssel in settings.php werden beim Export nicht in das Synchronisationsverzeichnis geschrieben. Wenn Sie also settings.php in .gitignore haben, können Sie das Konfigurationssystem weiterhin sicher zum Synchronisieren zwischen Klonen derselben Site verwenden .

William Turrell
quelle
0

Sie können auch die Kint-Module Devel und Devel installieren. Dadurch können Sie mit debuggen kint(xyz).

rshah
quelle
0

Wenn Sie nur Zugriff auf Drush haben (keine Drupal-Konsole) und auf einem Remote-Server arbeiten, können Sie die Konfiguration so einstellen, dass alle Fehler angezeigt werden:

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

Dies ist nützlich, wenn Sie einen WSOD auf einem Remote-Server erhalten und ohne weitere Informationen keine Fehlerbehebung durchführen können.

Patrick Kenny
quelle
Für die beschriebene Situation auch empfehle ich , drush sqlcgefolgt von SELECT * FROM watchdog ORDER BY wid DESC LIMIT 1dem letzten Eintrag in der dblog zu zeigen.
Gogowitsch
0

Leere Seite mit "Auf der Website ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut." bringt dich nirgendwohin Um mehr Informationen von Ihrer Drupal 8-Site zu erhalten, können Sie die folgenden Konfigurationen aktivieren.

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

Für die lokale Drupal 8-Entwicklung sollten Sie außerdem die Fehlerberichterstattung aktivieren, Fehler anzeigen und Startfehler anzeigen, um das Debuggen und Beheben schwerwiegender Laufzeitfehler zu erleichtern.

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

Weitere Informationen zum TWIG-Debugging und zum Aktivieren des Debugs mit Drupal Console finden Sie im folgenden Blog-Beitrag.

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

Gulab Bisht
quelle