「デバッグ」の版間の差分
Mitsuhiro Yoshida (トーク | 投稿記録) 編集の要約なし |
Toshihiro KITA (トーク | 投稿記録) |
||
(2人の利用者による、間の23版が非表示) | |||
1行目: | 1行目: | ||
{{ | {{開発者ツール}} | ||
==デバッグメッセージの使用== | |||
デバッグメッセージは、問題の診断および/またはMoodle開発者の支援を目的としています。 Moodleサイトに問題があり、Moodle.orgフォーラムで助けを求める場合、開発者は問題の原因を特定するために、デバッグを有効にする、つまりデバッグメッセージをオンにするように依頼する場合があります。空白の画面や不完全な画面などの問題がある場合は、通常、最初にデバッグをオンにすることを試みます。 | |||
==デバッグを有効にする== | |||
デバッグを有効にするには、 ''サイト管理 > 開発 > デバッグ''に移動します。 | |||
== | ===デバッグメッセージ=== | ||
オプションは次のとおりです。 | |||
*NONE: デバッグ情報を表示しない(デフォルト) | |||
*MINIMAL: 致命的なエラーのみ表示する | |||
*NORMAL: エラー、警告および注意を表示する | |||
*ALL: すべての妥当なPHPデバッグメッセージを表示する | |||
*DEVELOPER: 開発者のための特別Moodleデバッグメッセージ | |||
ノート: | |||
#エラーメッセージの記録を保持し、管理者がエラーログを定期的に監視することをお勧めします。これは、'デバッグメッセージ'(デバッグ)をNORMALに設定し、'デバッグメッセージを表示する'(デバッグ表示)をオフ(チェックしない)にしておくことで実行できます。その後、エラーメッセージがサーバログに記録されます。 | |||
#実稼働(パブリック)サイトで'デバッグメッセージ'がDEVELOPERに設定されている場合は、取得したデバッグメッセージをコピーして貼り付けてから、開発者デバッグをオフにすることをお勧めします。これは、デバッグメッセージが、サイトのセットアップに関してハッカーに手掛かりを与える可能性があるためです。 | |||
===デバッグメッセージを表示する=== | ===デバッグメッセージを表示する=== | ||
このチェックボックスを選択すると、デバッグメッセージがブラウザに直接表示されます。それ以外の場合は、サーバログに保存されます。 | |||
=== | ===メール送信のデバッグ=== | ||
SMTPサーバへの電子メールメッセージの送信中に詳細なデバッグ情報を有効にするかどうかを決定します。 | |||
=== | ====送信メール(SMTP)をデバッグするためのその他のツール==== | ||
config.phpファイルを使用して、送信メール(およびSMTPサーバ構成)のデバッグに役立つ「ツール」をさらに有効にすることもできます。 | |||
*すべての送信メールを特定のアドレスにリダイレクトします。 | |||
<code php> | |||
// Divert all outgoing emails to this address to test and debug emailing features | |||
// $CFG->divertallemailsto = 'root@localhost.local'; // NOT FOR PRODUCTION SERVERS! | |||
</code> | |||
* CRONデバッグをオンにして、CLI cron.phpスクリプトを実行します。 | |||
<code php> | |||
// Force developer level debug and add debug info to the output of cron | |||
// $CFG->showcrondebugging = true; | |||
</code> | |||
次に、SSH(またはWindowsではputty.exe)を使用して実行します。 | |||
<code php> | |||
you@moodle-server(/var/www/html/moodle)# php admin/cli/cron.php | |||
</code> | |||
*詳細なSMTPデバッグをオンにして、システムのerror_log(コードハック)に出力します。 | |||
Moodleのディスカッションフォーラムで[https://moodle.org/mod/forum/discuss.php?d=316222#p 1289850提案]のように: | |||
[https://github.com/moodle/moodle/blob/master/lib/moodlelib.php#L5379 lib/moodlelib.php L5379]を開き、次のように変更します。 | |||
<code php> | |||
if (!empty($CFG->debugsmtp)) { | |||
$mailer->SMTPDebug = 1; // 0 - no debug ... 4 - low level full debug | |||
$mailer->Debugoutput = "error_log"; | |||
} | |||
</code> | |||
[https://github.com/moodle/moodle/blob/master/lib/phpmailer/class.phpmailer.php#L314 SMTPDebug]パラメータと[https://github.com/moodle/moodle/blob/master/lib/phpmailer/class.phpmailer.php#L328 Debugoutput]パラメータの詳細を参照してください、 | |||
メールキャッチャー(https://mailcatcher.me/)をセットアップします。 | |||
===パフォーマンス情報=== | |||
パフォーマンス情報オプションは、パフォーマンス情報を標準テーマ(および他のいくつかのテーマ)のフッターに含めるかどうかを決定します。パフォーマンス情報には、ページの読み込み時間、ページの生成に使用されたメモリの量、CPU使用率、読み込み、およびレコードキャッシュのヒット/ミス率が含まれます。 | |||
追加した場合 | |||
<code php> | <code php> | ||
define('MDL_PERF', true); | define('MDL_PERF', true); | ||
42行目: | 75行目: | ||
define('MDL_PERFTOFOOT', true); | define('MDL_PERFTOFOOT', true); | ||
</code> | </code> | ||
config.phpファイルに追加すると、データベースクエリもカウントされます。 (Moodleがデータベースに構成情報をロードする前にMoodleがDBクエリを開始するため、これはconfig.phpにある必要があります!) | |||
= | 一般ユーザからパフォーマンス情報を非表示にするには、ディスカッション[https://moodle.org/mod/forum/discuss.php?d=358032 管理者専用のパフォーマンス情報?]を参照してください。 | ||
=== | ===言語ストリングの原語を表示する=== | ||
== | [[:dev:Translation | translation]]と[[言語カスタマイゼーション]]を支援します。時には<code>?strings=1</code>を追加する必要があります。その他の場合<code>&strings=1</code> 。詳細については、Wikipediaの記事[http://en.wikipedia.org/wiki/Query_string Query string]を参照してください。 | ||
== | ===Validatorリンクを表示する=== | ||
注意して、警告を読んでください。 | |||
===ページ情報を表示する=== | |||
ページフッターに印刷されたページ情報を表示します。 | |||
=== | === SQLクエリのデバッグ=== | ||
次のdboptionsをconfig.phpファイルに追加(オン)すると、さまざまなタイプのSQLクエリをmdl_log_queiresテーブルに記録できます。 | |||
* ''' logall ''' -すべてのクエリをログに記録します-開発者のみに適しており、サーバの負荷が高くなります。本番環境では推奨されません。 | |||
* ''' logslow ''' -指定した秒数より長い時間がかかるクエリを記録します(float値も受け入れられます)。 | |||
* ''' logerrors ''' -すべてのエラークエリをログに記録します。 | |||
完全なサンプル: | |||
=== | <code php> | ||
$CFG->dboptions = array ( | |||
//'logall' => true, | |||
'logslow' => 5, | |||
'logerrors' => true, | |||
); | |||
</code> | |||
==管理画面にアクセスできない場合の対処方法== | |||
エラーが原因で、管理画面でデバッグをオンにすることさえできない場合は、デバッグ設定を手動で設定できます。 | |||
=== URLを直接入力してください=== | |||
デバッグ設定は、サーバーのURL <code><nowiki>http://.../admin/settings.php?section=debugging</nowiki></code>にあります。 そこにたどり着くために必要なページ(たとえば、サイトのフロントページ)が機能しない場合でも、そのURLが機能することがあります。 そのため、そのURLを直接入力してみる価値があります。 | |||
=== config.php === | |||
[[設定ファイル| config.php]]では、セクション7の行のコメントを解除(行の先頭にある//を削除)して、すべてまたは特定のユーザのデバッグを有効にすることができます。 | |||
<code php> | <code php> | ||
//========================================================================= | |||
// 7. SETTINGS FOR DEVELOPMENT SERVERS - not intended for production use!!! | |||
//========================================================================= | |||
// | |||
// Force a debugging mode regardless the settings in the site administration | // Force a debugging mode regardless the settings in the site administration | ||
// @error_reporting( | // @error_reporting(E_ALL | E_STRICT); // NOT FOR PRODUCTION SERVERS! | ||
@ini_set('display_errors', '1'); // NOT FOR PRODUCTION SERVERS! | // @ini_set('display_errors', '1'); // NOT FOR PRODUCTION SERVERS! | ||
$CFG->debug = | // $CFG->debug = (E_ALL | E_STRICT); // === DEBUG_DEVELOPER - NOT FOR PRODUCTION SERVERS! | ||
// | // $CFG->debugdisplay = 1; // NOT FOR PRODUCTION SERVERS! | ||
$CFG->debugdisplay = | // | ||
// You can specify a comma separated list of user ids that that always see | // You can specify a comma separated list of user ids that that always see | ||
// debug messages, this overrides the debug flag in $CFG->debug and $CFG->debugdisplay | // debug messages, this overrides the debug flag in $CFG->debug and $CFG->debugdisplay | ||
// for these users only. | // for these users only. | ||
$CFG->debugusers = '2'; | // $CFG->debugusers = '2'; | ||
</code> | </code> | ||
問題の診断が終了したら、これらの行を再度コメントする(行の先頭に//を再挿入する)ことを忘れないでください。 | |||
'''注1 ''' :構成データベーステーブルを直接変更しないでください。値はMUCにキャッシュされるため、機能しません。 | |||
'''注2 ''' :config.phpに上記の設定がない場合(約30行のconfig.phpが削減されています)、完全な内容を含む「config-dist.php」ファイルを探します詳細。現在の ''config.php'' ファイルの詳細を完全なconfigファイルに転送し、名前を ''config.php'' に変更することをお勧めします。 | |||
== | ==こちらもご覧ください== | ||
* | *開発者は、[http://xdebug.org/ XDEBUG](Apacheサーバにモジュールとしてインストール)を使用して、[http://xdebug.org/docs/remote XDEBUGクライアントアプリケーション]。おそらく、お気に入りのIDEの一部として。例:[http://php.netbeans.org/ NetBeans]、[http://www.jetbrains.com/phpstorm/ phpStorm]または... | ||
[[en:Debugging]] | [[en:Debugging]] | ||
[[es:Depuración]] | |||
[[fr:Débogage]] | |||
[[de:Debugging]] |
2021年3月25日 (木) 04:19時点における最新版
デバッグメッセージの使用
デバッグメッセージは、問題の診断および/またはMoodle開発者の支援を目的としています。 Moodleサイトに問題があり、Moodle.orgフォーラムで助けを求める場合、開発者は問題の原因を特定するために、デバッグを有効にする、つまりデバッグメッセージをオンにするように依頼する場合があります。空白の画面や不完全な画面などの問題がある場合は、通常、最初にデバッグをオンにすることを試みます。
デバッグを有効にする
デバッグを有効にするには、 サイト管理 > 開発 > デバッグに移動します。
デバッグメッセージ
オプションは次のとおりです。
- NONE: デバッグ情報を表示しない(デフォルト)
- MINIMAL: 致命的なエラーのみ表示する
- NORMAL: エラー、警告および注意を表示する
- ALL: すべての妥当なPHPデバッグメッセージを表示する
- DEVELOPER: 開発者のための特別Moodleデバッグメッセージ
ノート:
- エラーメッセージの記録を保持し、管理者がエラーログを定期的に監視することをお勧めします。これは、'デバッグメッセージ'(デバッグ)をNORMALに設定し、'デバッグメッセージを表示する'(デバッグ表示)をオフ(チェックしない)にしておくことで実行できます。その後、エラーメッセージがサーバログに記録されます。
- 実稼働(パブリック)サイトで'デバッグメッセージ'がDEVELOPERに設定されている場合は、取得したデバッグメッセージをコピーして貼り付けてから、開発者デバッグをオフにすることをお勧めします。これは、デバッグメッセージが、サイトのセットアップに関してハッカーに手掛かりを与える可能性があるためです。
デバッグメッセージを表示する
このチェックボックスを選択すると、デバッグメッセージがブラウザに直接表示されます。それ以外の場合は、サーバログに保存されます。
メール送信のデバッグ
SMTPサーバへの電子メールメッセージの送信中に詳細なデバッグ情報を有効にするかどうかを決定します。
送信メール(SMTP)をデバッグするためのその他のツール
config.phpファイルを使用して、送信メール(およびSMTPサーバ構成)のデバッグに役立つ「ツール」をさらに有効にすることもできます。
- すべての送信メールを特定のアドレスにリダイレクトします。
// Divert all outgoing emails to this address to test and debug emailing features
// $CFG->divertallemailsto = 'root@localhost.local'; // NOT FOR PRODUCTION SERVERS!
- CRONデバッグをオンにして、CLI cron.phpスクリプトを実行します。
// Force developer level debug and add debug info to the output of cron
// $CFG->showcrondebugging = true;
次に、SSH(またはWindowsではputty.exe)を使用して実行します。
you@moodle-server(/var/www/html/moodle)# php admin/cli/cron.php
- 詳細なSMTPデバッグをオンにして、システムのerror_log(コードハック)に出力します。
Moodleのディスカッションフォーラムで1289850提案のように:
lib/moodlelib.php L5379を開き、次のように変更します。
if (!empty($CFG->debugsmtp)) {
$mailer->SMTPDebug = 1; // 0 - no debug ... 4 - low level full debug
$mailer->Debugoutput = "error_log";
}
SMTPDebugパラメータとDebugoutputパラメータの詳細を参照してください、 メールキャッチャー(https://mailcatcher.me/)をセットアップします。
パフォーマンス情報
パフォーマンス情報オプションは、パフォーマンス情報を標準テーマ(および他のいくつかのテーマ)のフッターに含めるかどうかを決定します。パフォーマンス情報には、ページの読み込み時間、ページの生成に使用されたメモリの量、CPU使用率、読み込み、およびレコードキャッシュのヒット/ミス率が含まれます。
追加した場合
define('MDL_PERF', true);
define('MDL_PERFDB', true);
define('MDL_PERFTOLOG', true);
define('MDL_PERFTOFOOT', true);
config.phpファイルに追加すると、データベースクエリもカウントされます。 (Moodleがデータベースに構成情報をロードする前にMoodleがDBクエリを開始するため、これはconfig.phpにある必要があります!)
一般ユーザからパフォーマンス情報を非表示にするには、ディスカッション管理者専用のパフォーマンス情報?を参照してください。
言語ストリングの原語を表示する
translationと言語カスタマイゼーションを支援します。時には?strings=1
を追加する必要があります。その他の場合&strings=1
。詳細については、Wikipediaの記事Query stringを参照してください。
Validatorリンクを表示する
注意して、警告を読んでください。
ページ情報を表示する
ページフッターに印刷されたページ情報を表示します。
SQLクエリのデバッグ
次のdboptionsをconfig.phpファイルに追加(オン)すると、さまざまなタイプのSQLクエリをmdl_log_queiresテーブルに記録できます。
- logall -すべてのクエリをログに記録します-開発者のみに適しており、サーバの負荷が高くなります。本番環境では推奨されません。
- logslow -指定した秒数より長い時間がかかるクエリを記録します(float値も受け入れられます)。
- logerrors -すべてのエラークエリをログに記録します。
完全なサンプル:
$CFG->dboptions = array (
//'logall' => true,
'logslow' => 5,
'logerrors' => true,
);
管理画面にアクセスできない場合の対処方法
エラーが原因で、管理画面でデバッグをオンにすることさえできない場合は、デバッグ設定を手動で設定できます。
URLを直接入力してください
デバッグ設定は、サーバーのURL http://.../admin/settings.php?section=debugging
にあります。 そこにたどり着くために必要なページ(たとえば、サイトのフロントページ)が機能しない場合でも、そのURLが機能することがあります。 そのため、そのURLを直接入力してみる価値があります。
config.php
config.phpでは、セクション7の行のコメントを解除(行の先頭にある//を削除)して、すべてまたは特定のユーザのデバッグを有効にすることができます。
//=========================================================================
// 7. SETTINGS FOR DEVELOPMENT SERVERS - not intended for production use!!!
//=========================================================================
//
// Force a debugging mode regardless the settings in the site administration
// @error_reporting(E_ALL | E_STRICT); // NOT FOR PRODUCTION SERVERS!
// @ini_set('display_errors', '1'); // NOT FOR PRODUCTION SERVERS!
// $CFG->debug = (E_ALL | E_STRICT); // === DEBUG_DEVELOPER - NOT FOR PRODUCTION SERVERS!
// $CFG->debugdisplay = 1; // NOT FOR PRODUCTION SERVERS!
//
// You can specify a comma separated list of user ids that that always see
// debug messages, this overrides the debug flag in $CFG->debug and $CFG->debugdisplay
// for these users only.
// $CFG->debugusers = '2';
問題の診断が終了したら、これらの行を再度コメントする(行の先頭に//を再挿入する)ことを忘れないでください。
注1 :構成データベーステーブルを直接変更しないでください。値はMUCにキャッシュされるため、機能しません。
注2 :config.phpに上記の設定がない場合(約30行のconfig.phpが削減されています)、完全な内容を含む「config-dist.php」ファイルを探します詳細。現在の config.php ファイルの詳細を完全なconfigファイルに転送し、名前を config.php に変更することをお勧めします。
こちらもご覧ください
- 開発者は、XDEBUG(Apacheサーバにモジュールとしてインストール)を使用して、XDEBUGクライアントアプリケーション。おそらく、お気に入りのIDEの一部として。例:NetBeans、phpStormまたは...