"Le site Web a rencontré une erreur inattendue. Veuillez réessayer plus tard."


27

J'ai cette erreur avec Drupal 7

  1. comment puis-je avoir plus d'informations sur cette erreur? Un rapport, un journal n'importe où? Rien dans les erreurs php.

  2. comment puis-je désactiver ce message et en avoir un plus utile à des fins de débogage?

Remarque : ma question n'est PAS "comment puis-je résoudre ce problème"

Réponses:


27

Cette erreur provient d'une exception PHP non interceptée . Drupal intercepte des exceptions, donc aucun message d'erreur PHP laid n'est affiché pour l'utilisateur. Vous pouvez trouver les informations d'exception dans le lien «Messages de journal récents» sur Rapports (ou essayez ce chemin: / admin / reports / dblog). Assurez-vous que le module «Database logging» est activé car ce module fournit ce rapport.

Vous verrez tous les messages internes qui ont été générés. Filtrer par type «PHP» et gravité «erreur» et vous trouverez probablement un message sur une exception non interceptée. Cela cause votre problème. Vous disposez maintenant de plus d'informations pour pouvoir y remédier.


Ok merci, donc n'y a-t-il aucun moyen prêt à l'emploi de changer ce comportement en un comportement plus conforme au débogage? (comme ... afficher l'exception à l'écran)
résolu

Non, AFAIK, il n'y a pas de moyen facile de le faire. Vous pouvez essayer de définir votre propre gestionnaire d'exceptions (en utilisant la fonction PHP standard set_exception_handler) mais méfiez-vous des effets secondaires.
sanzante

7
Excellente idée à vérifier /admin/reports/dblog. À moins, bien sûr, que vous ne puissiez même pas vous connecter car cette erreur stupide a arrosé tout votre site drupal!
g33kz0r

Moi-même, j'ai vu cette erreur avec viewreference "FieldException: Tentative de créer un champ d'inconnu ..." besoin d'activer le module (comme l'activation est dans la base de données, que je n'obtiens pas dans la demande de pull, nous utilisons des fonctionnalités). J'espère que cela aide les autres.
therobyouknow

4
@ g33kz0r: Vous pouvez utiliser le drush watchdog-show pour voir les messages d'erreur ou si votre site est complètement cassé, vérifiez la table de surveillance dans la base de données où ces messages sont stockés.
sanzante

15

Drupal 6 & 7

Si vous utilisez Drush, faites-le drush vset error_level 1.

Sinon, accédez à " /admin/config/development/logging" et modifiez le paramètre en "Erreurs et avertissements"

Drupal 8

Au lieu de drush vset/ vget/ vdel, vous pouvez utiliser cset/ cget/ cdelpour les valeurs de configuration et sset/ sget/ sdelpour les valeurs d'état.


12

MOYEN FACILE

Modifiez votre settings.php et ajoutez une ligne là-bas (en particulier sur votre site de développement, vous pouvez simplement le garder)

$conf['error_level'] = 1;

drush nécessite que vous puissiez démarrer la base de données.


La MEILLEURE réponse. Cela m'a fait gagner du temps.
Austin

6

EASY WAY pour Drupal 8 ,

si vous ne pouvez plus vous connecter pour accéder aux messages de journal récents, comme décrit dans la réponse acceptée.

Ouvrez le fichier /sites/default/settings.phpavec un éditeur ou un client ftp et ajoutez cette ligne:

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

Après avoir rechargé la page, vous verrez un message d'erreur complet, au lieu du générique «Le site Web a rencontré une erreur inattendue. Veuillez réessayer plus tard."


2

Cette erreur vient de _drupal_log_error().

En tant que solution rapide pour le développement, vous pouvez mettre à jour cette fonction pour fournir des messages d'erreur plus détaillés, mais assurez-vous absolument de la modifier avant la mise en ligne du site :)


0

Consultez le blog. C'est le meilleur endroit pour trouver des erreurs dans un site Web Drupal. Vérifiez également la console JS pour détecter les erreurs supplémentaires dans votre navigateur.


Merci pour dblog (/ admin / reports / dblog). Maintenant, comment puis-je désactiver ce message et en avoir un plus utile à des fins de débogage?
traité

1
Quoi qu'il en soit, je ne pense pas qu'une erreur JS puisse provoquer cette erreur de serveur ...
résolu

0

Vérifiez le watchdogtableau dans MySQL. Vous pouvez télécharger le Blob (la variablescolonne) et l'ouvrir avec le Bloc-notes. Il vous montrera un objet sérialisé avec votre erreur.


0

Essaye ça:

niveau d'erreur

admin menu equivalent: admin/config/development/logging
drush command: drush vset -y error_level <value>
values:
    0: none
    1: errors and warnings
    2: all 

0

Pour rendre les erreurs visibles sur votre site Web Drupal, recherchez le fichier index.php dans le répertoire principal de votre site. Ouvrez index.php et ajoutez ce code directement avant la toute première ligne du fichier:

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

Vous pouvez également essayer de résoudre les problèmes Drupal avec les journaux d'erreurs comme décrit ici.


0

Ceci est un vieux fil mais comme j'ai rencontré ce même problème récemment en fournissant mes entrées. Je n'ai pu accéder à aucun des chemins Drupal car je recevais toujours cette erreur, quoi qu'il arrive. Cela a commencé à se produire après avoir mis à jour une vue, donc je savais ce qui devait être fait, mais je n'ai pas pu ouvrir la vue. J'ai donc examiné les journaux du serveur Apache. En dehors de la solution donnée ci-dessus, telle que la recherche de drush et de blogs, il peut être utile de consulter les journaux du serveur Apache, surtout lorsque vous ne pouvez accéder à aucun des chemins d'application. Ceux-ci sont généralement présents sous le fichier \ logs \ error.log et contiendront les détails sur l'exception non gérée et l'endroit où elle est générée, etc. Dans mon cas, j'ai commenté le message de code que j'ai pu accéder à la vue et effectuer les mises à jour nécessaires. J'espère que cela aidera quelqu'un dans des situations similaires


0

C'est très intéressant mais si vous ouvrez la page source (CTRL-U) alors tous les avertissements et messages d'erreur sont là, ils sont juste dans un élément caché. Recherchez element-invisible.

Modifier: $conf['error_level'] = 1;doit également être placé dans le settings.phpfichier.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.