“웹 사이트에 예기치 않은 오류가 발생했습니다. 나중에 다시 시도 해주십시오."


27

Drupal 7 에서이 오류가 있습니다.

  1. 이 오류에 대한 정보를 어떻게 더 얻을 수 있습니까? 모든 보고서, 모든 로그? PHP 오류가 없습니다.

  2. 어떻게 그 메시지를 비활성화하고 디버그 목적으로 더 유용한 메시지를 가질 수 있습니까?

참고 : 내 질문은 "이 문제를 어떻게 해결할 수 있습니까?"가 아닙니다.

답변:


27

이 오류는 포착되지 않은 PHP 예외에서 발생 합니다. Drupal은 예외를 포착하므로 사용자에게 못생긴 PHP 오류 메시지가 표시되지 않습니다. 보고서의 '최근 로그 메시지'링크에서 예외 정보를 찾을 수 있습니다 (또는 / admin / reports / dblog 경로 사용). 이 모듈이이 보고서를 제공하므로 '데이터베이스 로깅'모듈이 활성화되어 있는지 확인하십시오.

생성 된 모든 내부 메시지가 표시됩니다. 유형 'PHP'및 심각도 '오류'별로 필터링하면 발견되지 않은 예외에 대한 메시지가 표시 될 수 있습니다. 문제가 발생했습니다. 이제 추가 정보가 있으므로 수정할 수 있습니다.


고마워, 그래서이 동작을보다 디버그 호환 방식으로 변경하는 즉시 사용할 수있는 방법이 없습니까? (예 : 화면에 예외 표시)
초에 theredled

아니요, AFAIK는 쉬운 방법이 없습니다. 표준 PHP 함수 set_exception_handler를 사용하여 자체 예외 처리기를 설정하려고 시도 할 수 있지만 부작용에주의하십시오.
sanzante

7
확인하는 것이 좋습니다 /admin/reports/dblog. 물론이 멍청한 오류로 인해 드루팔 사이트 전체가 막혔 기 때문에 로그인조차 할 수 없습니다!
g33kz0r

내 자신, viewreference "FieldException : 알 수없는 필드를 만들려고 시도 중 ..."으로이 오류를 보았습니다 .drush en viewreference를 활성화하는 솔루션이 작동했습니다. 다른 사람들과 협력하고 git 업데이트를 가져 와서 모듈 코드를 얻습니다. 모듈을 활성화해야합니다 (활성화는 데이터베이스에서 가져 오기 요청에 포함되지 않으므로 기능을 사용하고 있음). 이것이 다른 사람들에게 도움이되기를 바랍니다.
therobyouknow

4
@ g33kz0r : drush watchdog-show를 사용하여 오류 메시지를 보거나 사이트가 완전히 손상된 경우 해당 메시지가 저장된 데이터베이스에서 watchdog 테이블을 확인하십시오.
sanzante

15

드루팔 6 & 7

Drush를 사용하는 경우을 수행하십시오 drush vset error_level 1.

그렇지 않으면 " /admin/config/development/logging" 로 이동 하여 설정을 "오류 및 경고"로 변경하십시오.

드루팔 8

대신에 drush vset/ vget/ vdel, 당신은 사용할 수 있습니다 cset/ cget/ cdel설정 값과 sset/ sget/ sdel상태 값.


12

쉬운 방법

settings.php를 편집하고 거기에 줄을 추가하십시오 (특히 개발자 사이트에서 계속 유지할 수 있습니다)

$conf['error_level'] = 1;

drush는 데이터베이스를 부트 스트랩 할 수 있어야합니다.


가장 좋은 답변입니다. 시간이 절약되었습니다.
오스틴

6

Drupal 8을위한 쉬운 방법 ,

허용 된 답변에 설명 된대로 더 이상 로그인하여 최근 로그 메시지에 액세스 할 수없는 경우

/sites/default/settings.php편집기 또는 ftp 클라이언트로 파일 을 열고 다음 행을 추가하십시오.

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

페이지를 다시로드하면 일반“웹 사이트에 예기치 않은 오류가 발생했습니다. 대신 전체 오류 메시지가 표시됩니다. 나중에 다시 시도 해주십시오."


2

이 오류는에서 발생 _drupal_log_error()합니다.

개발을위한 빠른 수정 사항으로보다 자세한 오류 메시지를 제공하기 위해 해당 기능을 업데이트 할 수 있지만 사이트가 활성화되기 전에 다시 변경해야합니다. :)


0

dblog를 확인하십시오. 드루팔 웹 사이트에서 오류를 찾기에 가장 좋은 곳입니다. 또한 JS 콘솔을 확인하여 브라우저에서 추가 오류를 선택하십시오.


dblog (/ admin / reports / dblog)에게 감사합니다. 이제 메시지를 비활성화하고 디버그 목적으로 더 유용한 메시지를 어떻게 가질 수 있습니까?
theredled

1
어쨌든, 나는 JS 오류가 서버 오류가 발생할 수 있다고 생각하지 않는다 ...
theredled

0

watchdogMySQL 의 표를 확인하십시오 . Blob ( variables열)을 다운로드하여 메모장 에서 열 수 있습니다 . 오류가있는 직렬화 된 객체가 표시됩니다.


0

이 시도:

오류 수준

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

Drupal 웹 사이트에 오류를 표시하려면 사이트의 기본 디렉토리에서 index.php 파일을 찾으십시오. index.php를 열고 파일의 첫 줄 바로 앞에이 코드를 추가하십시오 :

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

여기에 설명 된대로 오류 로그로 Drupal 문제 해결을 시도 할 수도 있습니다.


0

이것은 오래된 스레드이지만 최근에 입력을 제공하는 것과 동일한 문제가 발생했습니다. 내가 무엇이든 상관없이 항상이 오류가 발생하여 Drupal 경로에 액세스 할 수 없었습니다. 이것은 뷰를 업데이트 한 후에 시작되었으므로 수행해야 할 작업을 알았지 만 뷰를 열 수 없었습니다. 따라서 Apache 서버 로그를 조사했습니다. drush 및 dblog를 보는 것과 같이 위에 제공된 솔루션 외에, 특히 응용 프로그램 경로에 액세스 할 수없는 경우 Apache 서버 로그를 조사하는 것이 도움이 될 수 있습니다. 이들은 일반적으로 \ logs \ error.log 파일 아래에 있으며 처리되지 않은 예외 및 생성 된 위치 등에 대한 세부 사항을 갖습니다. 빠른 수정으로 예외를 발생시키는 코드에 주석을 달고 애플리케이션을 업데이트 할 수 있습니다. 필자의 경우보기에 도달하고 필요한 업데이트를 수행 할 수있는 코드 게시물에 주석을 달았습니다. 그것이 비슷한 상황에서 누군가를 도울 수 있기를 바랍니다.


0

그것은 매우 흥미롭지 만 페이지 소스 (CTRL-U)를 열면 모든 경고와 오류 메시지가 있으며 숨겨진 요소에 있습니다. 를 검색하십시오 element-invisible.

편집 : 파일에 $conf['error_level'] = 1;배치해야합니다 settings.php.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.