Come abilito la modalità sviluppatore / debug?


36

Installazione di drupal 8 core (usando il profilo standard). ogni volta che ricevo un'eccezione / errore, ottengo una pagina vuota con "Si è verificato un errore nel sito Web. Riprovare più tardi." (come sotto l'immagine) testo e nessun dettaglio / traccia sull'errore.

inserisci qui la descrizione dell'immagine

Risposte:


51

Su un sito di sviluppo suggerirei di decommentare le seguenti righe nel settings.phpfile. emacs sites/default/settings.php

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

e quindi copiare il file example.settings.local.phpda una /sitescartella all'altra /sites/defaulte rinominarlo insettings.local.php

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

Oltre ad aggiungere la seguente impostazione

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

aggiunge anche alcune altre impostazioni che ti aiuteranno nel debug e faciliteranno lo sviluppo. Se non li desideri in particolare, puoi sempre commentarli.

Nota: se si ritiene che l'aggiunta di una file_existschiamata a ciascuna pagina rallenti il ​​sito, è sempre possibile rimuoverlo nel codice di produzione.


Se non hai un file di esempio, puoi anche creare un file contenente<?php $config[...;
Danielle Madeley

1
Come menzionato di seguito, il modulo Devel può rendere le cose più facili per Drupal 8. Verificato che $ config ['system.logging'] ['error_level'] = 'verbose'; le impostazioni sembrano funzionare.
Darrell Ulm,

Ho creato un contenitore docker fornito con le impostazioni necessarie per il debug e la non memorizzazione nella cache - spero che sia utile: hub.docker.com/r/feikede/drupal-dev
Rainer Feike


8

Un'opzione semplice, se si ha accesso alla console Drupal, è abilitare l'ambiente di sviluppo / debug utilizzando drupal site:mode dev; quando si è pronti per tornare alla produzione, utilizzare drupal site:mode prod.


1
Bel trucco con la console Drupal
ognockocaten

7

Ecco la variabile con i diversi valori:

$config['system.logging']['error_level'] = 'all'; // hide|some|all|verbose

2
Grazie per aver aggiunto i possibili valori.
chiude il

Sì, grazie per aver aggiunto i possibili valori, che erano sorprendentemente difficili da trovare.
arnoldbird,

4

Per ricevere messaggi di errore di base in Drupal 8 non è necessario toccare alcun codice. Vai a:

/ Admin / config / sviluppo / logging

e impostare "Messaggi di errore da visualizzare" su un livello appropriato.

Puoi anche visualizzare i tuoi errori recenti tramite l'interfaccia di amministrazione:

/ Admin / reports / dblog

Detto questo, altre risposte sui file delle impostazioni sono rilevanti: dovresti sempre e solo rendere visibili gli errori sul tuo sito di sviluppo, non sulla produzione.

Gli oggetti / le chiavi $ config sovrascritti in settings.php non verranno scritti nella directory di sincronizzazione durante l'esportazione, quindi fornendo il file settings.php in .gitignore, è possibile continuare a utilizzare in modo sicuro il sistema di configurazione per la sincronizzazione tra cloni dello stesso sito .


0

Puoi anche installare i moduli di sviluppo e sviluppo kint. Questo ti permetterà di eseguire il debug usando kint(xyz).


0

Se hai accesso solo a Drush (nessuna console Drupal) e stai lavorando su un server remoto, puoi impostare la configurazione per mostrare tutti gli errori:

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

Ciò è utile se si riceve un WSOD su un server remoto e non è possibile risolvere i problemi senza ulteriori informazioni.


Per la situazione descritta, consiglio vivamente anche di drush sqlcseguire SELECT * FROM watchdog ORDER BY wid DESC LIMIT 1l'ultima voce nel dblog.
Gogowitsch,

0

Pagina vuota con "Si è verificato un errore nel sito Web. Riprovare più tardi." non ti porterà da nessuna parte. Per ottenere maggiori informazioni dal tuo sito Drupal 8 puoi abilitare le seguenti configurazioni.

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

Per lo sviluppo locale di Drupal 8, dovresti anche abilitare la segnalazione degli errori, visualizzare gli errori e visualizzare l'errore di avvio per aiutarti a eseguire il debug e correggere i principali errori di runtime.

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

Puoi trovare ulteriori informazioni sul debug TWIG e abilitare il debug con Drupal Console nel post di blog qui sotto.

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


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.