「ウェブサイトで予期しないエラーが発生しました。後でもう一度やり直してください。」


27

Drupal 7でこのエラーがあります

  1. このエラーに関する詳細情報を入手するにはどうすればよいですか?任意のレポート、任意のログはどこにありますか?PHPエラーには何もありません。

  2. どうすればそのメッセージを無効にし、デバッグ目的でより有用なものを使用できますか?

:私の質問は「この問題をどのように修正できますか」ではありません

回答:


27

このエラーは、キャッチされていないPHP例外に起因しています。Drupalは例外をキャッチするため、userいPHPエラーメッセージはユーザーに表示されません。例外情報は、レポートの「最近のログメッセージ」リンクで見つけることができます(または、次のパスを試してください:/ admin / reports / dblog)。このモジュールはこのレポートを提供するため、「データベースロギング」モジュールが有効になっていることを確認してください。

生成されたすべての内部メッセージが表示されます。タイプ「PHP」および重大度「エラー」でフィルタリングすると、おそらくキャッチされていない例外に関するメッセージが表示されます。これが問題の原因です。より多くの情報が得られたため、修正できる場合があります。


おかげで、この動作をよりデバッグ準拠の動作に変更するための、すぐに使用できる方法はありませんか?(例えば、...画面上の例外表示)
theredled

いいえ、それを行う簡単な方法はありません。(標準のPHP関数set_exception_handlerを使用して)独自の例外ハンドラを設定することもできますが、副作用に注意してください。
サンザンテ

7
チェックする素晴らしいアイデア/admin/reports/dblog。もちろん、この馬鹿げたエラーがあなたのdrupalサイト全体を圧迫しているので、あなたもログインできないのです!
g33kz0r

私は、viewreference "FieldException:未知のフィールドを作成しようとしています..."でこのエラーを見ました。モジュールを有効にする必要があります(有効にするのはプルリクエストでは取得していないデータベースにあるため、機能を使用しています)。これが他の人々に役立つことを願っています。
therobyouknow

4
@ g33kz0r:drush watchdog-showを使用してエラーメッセージを表示するか、サイトが完全に壊れている場合は、それらのメッセージが保存されているデータベースのウォッチドッグテーブルを確認します。
サンザンテ14

15

Drupal 6および7

Drushを使用している場合は、実行しますdrush vset error_level 1

それ以外の場合は、「/admin/config/development/logging」に進み、設定を「エラーと警告」に変更します

Drupal 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';

ページをリロードした後、一般的な「Webサイトで予期しないエラーが発生しました。後でもう一度やり直してください。」


2

そのエラーはから来てい_drupal_log_error()ます。

開発の迅速な修正として、より詳細なエラーメッセージを提供するようにその関数を更新できますが、サイトが公開される前に必ず元に戻すようにしてください:)


0

dblogを確認してください。Drupal Webiteでエラーを見つけるのに最適な場所です。また、JSコンソールをチェックして、ブラウザーで追加のエラーを見つけてください。


dblog(/ admin / reports / dblog)に感謝します。さて、どうすればそのメッセージを無効にして、デバッグのためにより有用なメッセージを取得できますか?
12

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 Webサイトでエラーを表示するには、サイトのメインディレクトリで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.