"El sitio web encontró un error inesperado. Por favor, inténtelo de nuevo más tarde."

27

Tengo este error con Drupal 7

  1. ¿Cómo puedo tener más información sobre este error? ¿Algún informe, algún registro en alguna parte? Nada en los errores de php.

  2. ¿Cómo puedo desactivar ese mensaje y tener uno más útil para la depuración?

Nota : mi pregunta NO es "¿cómo puedo solucionar este problema"

theredled
fuente

Respuestas:

27

Este error proviene de una excepción PHP no detectada . Drupal detecta excepciones, por lo que no se muestra ningún mensaje de error PHP desagradable al usuario. Puede encontrar la información de excepción en el enlace 'Mensajes de registro recientes' en Informes (o pruebe esta ruta: / admin / reports / dblog). Asegúrese de que el módulo 'Registro de base de datos' esté habilitado porque este módulo proporciona este informe.

Verá todos los mensajes internos que se han generado. Filtre por tipo 'PHP' y Severidad 'error' y probablemente encontrará un mensaje sobre una excepción no detectada. Esto está causando tu problema. Ahora tiene más información, por lo que puede solucionarlo.

sanzante
fuente
Ok, gracias, entonces, ¿no hay una forma inmediata de cambiar este comportamiento a uno más compatible con la depuración? (como ... mostrar la excepción en la pantalla)
theredled
No, AFAIK no hay una manera fácil de hacer eso. Puede intentar configurar su propio controlador de excepciones (usando la función estándar set_exception_handler de PHP) pero tenga cuidado con los efectos secundarios.
sanzante
77
Gran idea para comprobar /admin/reports/dblog. ¡A menos que, por supuesto, ni siquiera pueda iniciar sesión porque este estúpido error ha mangueado todo su sitio drupal!
g33kz0r
Yo mismo, vi este error con viewreference "FieldException: intento de crear un campo desconocido ..." La solución para mí habilitar drush en viewreference funcionó: estoy trabajando con otras personas y obteniendo sus actualizaciones de git, así que obtengo el código del módulo pero es necesario habilitar el módulo (ya que la habilitación está en la base de datos, lo que no obtengo en la solicitud de extracción, estamos usando Características). Espero que esto ayude a otras personas.
therobyouknow
44
@ g33kz0r: Puede usar el drush watchdog-show para ver los mensajes de error o si su sitio está completamente roto, verifique la tabla de vigilancia en la base de datos donde se almacenan esos mensajes.
sanzante
15

Drupal 6 y 7

Si usa Drush, simplemente hágalo drush vset error_level 1.

De lo contrario, vaya a " /admin/config/development/logging" y cambie la configuración a "Errores y advertencias"

Drupal 8

En lugar de drush vset/ vget/ vdel, puede usar cset/ cget/ cdelpara los valores de configuración y sset/ sget/ sdelpara los valores de estado.

capa
fuente
12

FORMA FÁCIL

Edite su settings.php y agregue una línea allí (especialmente en su sitio de desarrollo, puede mantener esto activado)

$conf['error_level'] = 1;

drush requiere que puedas arrancar la base de datos.

Frank Carey
fuente
La mejor respuesta. Me salvó el tiempo.
Austin
6

FÁCIL MANERA para Drupal 8 ,

si ya no puede iniciar sesión para acceder a los mensajes de registro recientes como se describe en la respuesta aceptada.

Abra el archivo /sites/default/settings.phpcon un editor o cliente ftp y agregue esta línea:

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

Después de volver a cargar la página, verá un mensaje de error completo, en lugar del genérico “El sitio web encontró un error inesperado. Por favor, inténtelo de nuevo más tarde."

4k4
fuente
2

Ese error viene de _drupal_log_error().

Como una solución rápida para el desarrollo, puede actualizar esa función para proporcionar mensajes de error más detallados, pero asegúrese absolutamente de volver a cambiarla antes de que el sitio se active :)

Clive
fuente
0

Revisa el dblog. Es el mejor lugar para encontrar errores en un sitio web de Drupal. Compruebe también la consola JS para detectar errores adicionales en su navegador.

Binny
fuente
Gracias por dblog (/ admin / reports / dblog). Ahora, ¿cómo puedo desactivar ese mensaje y tener uno más útil para la depuración?
theredled
1
De todos modos, no creo que un error de JS podría causar que el error del servidor ...
theredled
0

Consulte en la watchdogtabla en MySQL. Puede descargar el Blob (la variablescolumna) y abrirlo con el Bloc de notas. Le mostrará un objeto serializado con su error.

Maxime Fafard
fuente
0

Prueba esto:

nivel de error

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

Para hacer visibles los errores en su sitio web de Drupal, busque el archivo index.php en el directorio principal de su sitio. Abra index.php y agregue este código directamente antes de la primera línea del archivo:

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

También puede intentar resolver problemas de Drupal con registros de errores como se describe aquí.

Chetabahana
fuente
0

Este es un hilo viejo pero, como encontré este mismo problema, recientemente proporcioné mis entradas. No pude acceder a ninguna de las rutas de Drupal ya que siempre recibía este error sin importar qué. Esto comenzó a suceder después de que actualicé una vista, así que supe lo que debía hacerse, pero no pude abrir la vista. Por lo tanto, busqué en los registros del servidor Apache. Además de la solución dada anteriormente, como mirar drush y dblogs, puede ser útil buscar registros en el servidor Apache, especialmente cuando no puede acceder a ninguna de las rutas de la aplicación. Por lo general, están presentes en el archivo \ logs \ error.log y tendrán los detalles sobre la excepción no controlada y el lugar donde se está generando, etc. En mi caso, comenté el código publicado que pude acceder a la vista y realizar las actualizaciones necesarias. Espero que ayude a alguien en situaciones similares

COMANDANTE
fuente
0

Eso es muy interesante, pero si abre la fuente de la página (CTRL-U), todas las advertencias y mensajes de error están allí, solo están en un elemento oculto. Buscar element-invisible.

Editar: también $conf['error_level'] = 1;debe colocarse en el settings.phparchivo.

endo64
fuente