DrupalですべてのPHP=エラー、警告、および通知を黙らせる方法はありますか?これらは、develサイトでは便利ですが、セキュリティ上の大きなリスクであり、ライブでサイトの見栄えを悪くします。
私はDrupal 6でadmin/settings/error-reportingのページが停止する可能性があることを知っていますDrupalエラーの画面への書き込みが原因ですが、これはどこにありますかDrupal 7?欠けているようです。
Drupal 7のようにパスが変わります。admin/ settings/error-reportingに表示される前と同じページがadmin/config/development/loggingにあります。
提案されているように、_Administration » Configuration » Development
_(_/admin/config/development/logging
_)には、エラーメッセージの無効化displayingの設定がありますが、エラー/通知を完全に無効にしないでください。
これは、Drupal 7がE_ALLを実施するため、syslogに書き込まれ、最近のログで確認できるため)、ウェブサイトのパフォーマンスに影響を及ぼします。
通知を完全に無効にするには、_settings.php
_または_php.ini
_ファイルに次の行を追加する必要があります。
_ini_set('error_reporting', E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);
_
通知とコーディング標準の警告を除いて、すべてのエラーを表示します。
すべてのPHPエラーを沈黙させるには、これはお勧めできません。設定ファイルを追加してみてください。
_error_reporting(0); // Disable all errors.
_
責任Drupal _E_ALL
_ロギングの7つのコアコード(ファイル:_includes/bootstrap.inc
_):
_// Enforce E_ALL, but allow users to set levels not part of E_ALL.
error_reporting(E_ALL | error_reporting());
_
以下も参照してください。
人々が知るのに役立つかもしれないと誰も言っていないことの1つは、Drupal 7はすべてのローカルシステムエラー報告レベルを無視することです。したがって、.htaccessやphp.iniを使用して設定することはできません。 Drupalのphpエラー報告レベル。
D8にはこのためのパッチが提案されていますが、現在D7では、管理ページkiamlalunoに示されている3つのエラーマスク(すべて、なし、またはエラーと警告)に制限されています。
設定は常にadmin/config/development/logging :)にあります
Drushメソッドが文書化されていない理由はわかりませんが、ビルドスクリプトに次のように記述しています。
drush vset error_level 0
...エラーメッセージをログに保存しますが、画面には表示しません。
上記のkenorbソリューションに引用を追加する必要がある場合があります。
ini_set('error_reporting', 'E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR');
そのためのモジュールがあります:
https://www.drupal.org/project/errorlevelpermission
プロジェクトページから:
だからあなたはできる