개발자 / 디버그 모드는 어떻게 활성화합니까?


35

drupal 8 코어 설치 (표준 프로파일 사용). 예외 / 오류가 발생하면 "웹 사이트에 오류가 발생했습니다. 나중에 다시 시도하십시오."라는 빈 페이지가 나타납니다. (아래 이미지와 같이) 텍스트 및 오류에 대한 세부 정보 / 추적이 없습니다.

여기에 이미지 설명을 입력하십시오

답변:


50

개발 사이트에서는 settings.php파일 에서 다음 줄의 주석 처리를 제거하는 것이 좋습니다 . emacs sites/default/settings.php

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

그런 다음 파일 example.settings.local.php/sites폴더 에서 폴더로 /sites/default복사하고 이름을settings.local.php

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

다음 설정을 추가하는 것 외에도

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

또한 디버깅 및 개발을 쉽게 해주는 몇 가지 다른 설정이 추가되었습니다. 특히 그중 하나를 원하지 않으면 언제든지 주석을 달 수 있습니다.

참고 : file_exists각 페이지에 전화를 추가 하면 사이트 속도가 느려질 경우 언제든지 프로덕션 코드에서 사이트를 제거 할 수 있습니다.


예제 파일이없는 경우<?php $config[...;
Danielle Madeley

1
아래에 언급 된 것처럼 Devel 모듈은 Drupal 8을보다 쉽게 ​​만들 수 있습니다. $ config [ 'system.logging'] [ 'error_level'] = 'verbose'; 설정이 작동하는 것 같습니다.
Darrell Ulm 17

디버깅 및 비 캐싱에 필요한 설정이 포함 된 도커 컨테이너를 만들었습니다. 이것이
Rainer Feike


7

다른 값을 가진 변수는 다음과 같습니다.

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

2
가능한 값을 추가해 주셔서 감사합니다.
잠금 해제

예, 놀랍게도 찾기 힘든 가능한 값을 추가해 주셔서 감사합니다.
arnoldbird

7

Drupal Console에 액세스 할 수있는 쉬운 옵션은;를 사용하여 개발 / 디버깅 환경을 활성화하는 것입니다 drupal site:mode dev. 다시 프로덕션으로 변경할 준비가되면를 사용하십시오 drupal site:mode prod.


1
Drupal Console을 사용한 멋진 트릭
ognockocaten

4

Drupal 8에서 기본 오류 메시지를 얻으려면 코드를 전혀 만질 필요가 없습니다. 그냥 가십시오 :

/ admin / config / development / logging

"오류 메시지 표시"를 적절한 수준으로 설정하십시오.

관리자 인터페이스를 통해 최근 오류를 볼 수도 있습니다.

/ admin / reports / dblog

즉, 설정 파일에 대한 다른 답변 관련이 있습니다. 프로덕션이 아닌 개발 사이트에서만 오류를 볼 수 있어야합니다.

settings.php에서 덮어 쓴 $ config 객체 / 키는 내보낼 때 동기화 디렉토리에 기록되지 않으므로 settings.php를 .gitignore에 제공하면 구성 시스템을 계속 사용하여 동일한 사이트의 클론간에 동기화 할 수 있습니다 .


0

Devel 및 Devel kint 모듈을 설치할 수도 있습니다. 이렇게하면를 사용하여 디버깅 할 수 있습니다 kint(xyz).


0

Drush (Drupal 콘솔 없음)에만 액세스 할 수 있고 원격 서버에서 작업중인 경우 모든 오류를 표시하도록 구성을 설정할 수 있습니다.

MYSITE.MYENV 구성 설정 system.logging error_level all -y

이는 원격 서버에서 WSOD를 가져오고 추가 정보없이 문제를 해결할 수없는 경우에 유용합니다.


상황 설명을 위해 나는 또한 매우 좋습니다 drush sqlc다음 SELECT * FROM watchdog ORDER BY wid DESC LIMIT 1dblog의 마지막 항목을 표시합니다.
Gogowitsch

0

"웹 사이트에 오류가 발생했습니다. 나중에 다시 시도하십시오."가있는 빈 페이지 어디서나 당신을 데려 가지 않습니다. Drupal 8 사이트에서 자세한 정보를 얻으려면 다음 구성을 활성화하십시오.

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

로컬 Drupal 8 개발의 경우 오류보고, 표시 오류 및 표시 시작 오류를 활성화하여 주요 런타임 오류를 추가로 디버깅하고 수정하는 데 도움이됩니다.

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

TWIG 디버깅 및 Drupal Console을 사용한 디버깅 활성화에 대한 자세한 내용은 아래 블로그 게시물에서 확인할 수 있습니다.

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


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