開発者/デバッグモードを有効にするにはどうすればよいですか?


36

drupal 8コアのインストール(標準プロファイルを使用)。例外/エラーが発生するたびに、「Webサイトでエラーが発生しました。しばらくしてからもう一度お試しください」という空白のページが表示されます。(下の画像のように)テキストとエラーに関する詳細/トレースなし。

ここに画像の説明を入力してください

回答:


51

開発サイトでは、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'; 設定が機能しているようです。
ダレルウルム

デバッグと非キャッシュに必要な設定を備えたドッカーコンテナーを作成しました-役に立つことを願っています:hub.docker.com/r/feikede/drupal-dev
Rainer Feike


8

Drupal Consoleにアクセスできる場合の簡単なオプションは、drupal site:mode dev; を使用して開発/デバッグ環境を有効にすることです。運用環境に戻す準備ができたら、を使用しますdrupal site:mode prod


1
Drupalコンソールの素敵なトリック
-ognockocaten

7

異なる値を持つ変数は次のとおりです。

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

2
可能な値を追加していただきありがとうございます。
plocks

はい、可能性のある値を追加していただきありがとうございます。これは驚くほど見つけるのが困難でした。
アーノルドバード

4

Drupal 8で基本的なエラーメッセージを取得するには、コードを一切変更する必要はありません。ただ行く:

/ admin / config / development / logging

「表示するエラーメッセージ」を適切なレベルに設定します。

また、管理インターフェイスを使用して最近のエラーを表示することもできます。

/ admin / reports / dblog

とはいえ、設定ファイルに関するその他の回答いえ関連しています。エラーは本番ではなく開発サイトでのみ表示するようにしてください。

settings.phpで上書きされた$ configオブジェクト/キーは、エクスポート時にsyncディレクトリに書き込まれないため、settings.phpが.gitignoreにある場合、構成サイトを安全に使用して同じサイトのクローン間で同期を続行できます。 。


0

DevelおよびDevel kintモジュールをインストールすることもできます。これにより、を使用してデバッグできますkint(xyz)


0

Drushへのアクセスのみがあり(Drupalコンソールはない)、リモートサーバーで作業している場合、すべてのエラーを表示するように構成を設定できます。

MYSITE.MYENV config-set system.logging error_level all -yを削除します

これは、リモートサーバーでWSODを取得していて、詳細な情報がないとトラブルシューティングできない場合に便利です。


説明した状況については、dblogの最後のエントリを表示するdrush sqlcことSELECT * FROM watchdog ORDER BY wid DESC LIMIT 1を強くお勧めします。
-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コンソールを使用したデバッグの有効化に関する詳細については、以下のブログ投稿をご覧ください。

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.