「セッションハンドリング」の版間の差分
Mitsuhiro Yoshida (トーク | 投稿記録) (done.) |
Toshihiro KITA (トーク | 投稿記録) 編集の要約なし |
||
1行目: | 1行目: | ||
{{ | {{サーバー設定}} | ||
管理者は、サイト管理の「セッション処理」で以下の設定を変更できます。 | |||
Moodleサーバーに誰かがログインすると、サーバーがセッションを開始します。セッションデータにより、サーバーはユーザーが別のページにアクセスするときにユーザーを追跡できます。 | |||
== | ==セッション情報にデータベースを使用する== | ||
Moodleはセッションデータを何らかのストレージに保存する必要があります。デフォルトでは、ファイルまたはデータベースセッションストレージが選択されています。このオプションを使用すると、管理者はストレージを変更できます。大規模なインストールでは、以下で説明するmemcachedドライバーを使用する必要があります。 | |||
このオプションは、config.phpファイルで$ CFG-> session_handler_classを設定すると表示されなくなることに注意してください。 | |||
== | ==タイムアウト== | ||
ここで設定した時間内にユーザーが新しいページをロードしない場合、Moodleはセッションを終了してログアウトします。 | |||
この時間枠は、教師が提供できる最も長いテストをカバーするのに十分な長さであることを確認してください。テスト中に生徒がログアウトすると、テストの質問に対する生徒の応答が失われる可能性があります。 | |||
== | == Cookieプレフィックス== | ||
同じサーバー上で複数のMoodleサイトを実行しているのでない限り、ほとんどの場合、これを空白のままにすることができます。この場合、各Moodleサイトがセッションを追跡するために使用するCookieの名前をカスタマイズする必要があります。これにより、同時に複数のMoodleサイトにログインできます。 | |||
[[en: | 注:「Cookieプレフィックス」または「Cookieパス」を変更した場合、変更はすぐに有効になるため、再度ログインする必要があります。 | ||
== Cookieパス== | |||
このMoodleインストールへの相対パス。これを使用して、MoodleセッションCookieを親ディレクトリに強制的に送信できます。無効な値は自動的に無視されます。 | |||
== Cookieドメイン== | |||
これは、サーバードメインだけでなく、上位のドメインにセッションCookieを送信するために使用できます。これは、一部のSSOソリューションに役立つ場合があります。無効な値は自動的に無視されます。 | |||
==セッションドライバー== | |||
ユーザーセッションは、異なるバックエンドに保存される場合があります。セッションドライバーは、config.phpファイルでのみ構成できます。config-dist.phpファイルの例を参照してください。 | |||
=== Memcachedセッションドライバ=== | |||
Memcachedセッションドライバーは最速のドライバーです。外部のmemcachedサーバーとmemcached PHP拡張が必要です。サーバークラスタノードは、共有セッションストレージを使用する必要があります。 | |||
config.phpの設定オプション: | |||
<コードphp> | |||
$ CFG-> session_handler_class = '\ core \ session \ memcached'; | |||
$ CFG-> session_memcached_save_path = '127.0.0.1:11211'; | |||
$ CFG-> session_memcached_prefix = 'memc.sess.key。'; | |||
$ CFG-> session_memcached_acquire_lock_timeout = 120; | |||
$ CFG-> session_memcached_lock_expire = 7200; // memcached拡張機能<= 2.1.0の場合は無視されます | |||
</ code> | |||
ノート: | |||
* memcachedサーバーに十分なメモリがあることを確認してください。 | |||
* 1つのサーバーに複数のMoodleサイトからのセッションを保存する場合は、異なるプレフィックスを使用してください。 | |||
*インストールされているPECL memcached拡張バージョンが2.2.0未満の場合、ロックは他のドライバーとは異なる働きをします-ロックはタイムアウトの終わりに期限切れ/解放されます-MDL-42485を参照してください。 | |||
* '' 'セッションとMUCの両方に同じmemcachedサーバーを使用しないでください。 MUCキャッシュの削除をトリガーするイベントは、MUCがmemcachedサーバーを削除することにつながり、すべてのセッションが終了します。」 | |||
* <code php> $ CFG-> session_memcached_number_of_replicas </ code>オプションはサポートされなくなりました。 | |||
Windowsユーザーの場合、PHP.netはmemcacheのバイナリのみを提供し、memcachedは提供しません。 (http://windows.php.net/downloads/pecl/releases/) | |||
(2.7以降、memcacheセッションの処理には2つの異なる要素が存在します-MDL-42011を参照してください-何らかの理由でOUがprefix / lock_expireを使用していないようです...上記のconfig.phpはmemcache(d)のスペルです。) | |||
===ファイルセッションドライバー=== | |||
このドライバは、新規インストールではデフォルトで使用されます。 | |||
config.phpの設定オプション: | |||
<コードphp> | |||
$ CFG-> session_handler_class = '\ core \ session \ file'; | |||
$ CFG-> session_file_save_path = $ CFG-> dataroot。 '/ sessions'; | |||
</ code> | |||
ノート: | |||
*ファイルベースのセッションには、ファイルロックをサポートするファイルシステムが必要です。 | |||
===データベースセッションドライバ=== | |||
このタイプのドライバーは、Moodle 2.0-2.5ではデフォルトで使用されていました。 | |||
<コードphp> | |||
$ CFG-> session_handler_class = '\ core \ session \ database'; | |||
$ CFG-> session_database_acquire_lock_timeout = 120; | |||
</ code> | |||
ノート: | |||
* DBセッションはMyISAMデータベースエンジンと互換性がありません。 | |||
* MySQL / MariaDBを使用している場合、my.cnf(またはmy.ini)の\ 'max_allowed_packet \'が少なくとも4Mであることを確認してください。 | |||
*パフォーマンスは比較的低く、大規模なサイトには推奨されません。 | |||
=== Redisセッションドライバ=== | |||
[[Redis]]セッションドライバはMoodle 3.1.3以降で利用可能です(MDL-54606を参照)。 [[Redis_cache_store#Installing_Redis_server | Redis server]]と[[Redis_cache_store#Installing_Redis_php_driver | Redis extension]]が必要です。 | |||
config.phpの設定オプション: | |||
<コードphp> | |||
$ CFG-> session_handler_class = '\ core \ session \ redis'; | |||
$ CFG-> session_redis_host = '127.0.0.1'; | |||
$ CFG-> session_redis_port = 6379; //オプション。 | |||
$ CFG-> session_redis_database = 0; //オプション、デフォルトはdb 0。 | |||
$ CFG-> session_redis_auth = ''; //オプションで、デフォルトでは設定されていません。 | |||
$ CFG-> session_redis_prefix = ''; //オプションで、デフォルトでは設定されていません。 | |||
$ CFG-> session_redis_acquire_lock_timeout = 120; | |||
$ CFG-> session_redis_lock_expire = 7200; | |||
$ CFG-> session_redis_serializer_use_igbinary = false; //オプションで、デフォルトはPHP組み込みシリアライザです。 | |||
</ code> | |||
ノート: | |||
*デフォルトのシリアライザを変更するときは注意してください: '' phpredis ''拡張機能のコンパイル時に 'code php>-enable-redis-igbinary </ code>が必要です' ''および '' 'を削除する必要があります' '' Moodleを再び使用する前に、以前のセッションのデータ '' '。 | |||
==読み取り専用セッション== | |||
Moodle 3.9には実験的な機能があり、特定のページが読み取り専用セッションを開始できるようにします。これにより、大規模なパフォーマンスを目的とした書き込みロックは必要ありません。 | |||
https://tracker.moodle.org/browse/MDL-58018 | |||
詳細TBA | |||
==こちらもご覧ください== | |||
* [[セッションFAQ]] | |||
[[en:Session handling]] | |||
[[cs:admin/setting/sessionhandling]] | |||
[[de:Sitzungsinformationen]] | |||
[[es:Manejo de la sesión]] | |||
[[fr:Gestion des sessions]] |
2020年7月8日 (水) 07:37時点における版
テンプレート:サーバー設定 管理者は、サイト管理の「セッション処理」で以下の設定を変更できます。
Moodleサーバーに誰かがログインすると、サーバーがセッションを開始します。セッションデータにより、サーバーはユーザーが別のページにアクセスするときにユーザーを追跡できます。
セッション情報にデータベースを使用する
Moodleはセッションデータを何らかのストレージに保存する必要があります。デフォルトでは、ファイルまたはデータベースセッションストレージが選択されています。このオプションを使用すると、管理者はストレージを変更できます。大規模なインストールでは、以下で説明するmemcachedドライバーを使用する必要があります。
このオプションは、config.phpファイルで$ CFG-> session_handler_classを設定すると表示されなくなることに注意してください。
タイムアウト
ここで設定した時間内にユーザーが新しいページをロードしない場合、Moodleはセッションを終了してログアウトします。
この時間枠は、教師が提供できる最も長いテストをカバーするのに十分な長さであることを確認してください。テスト中に生徒がログアウトすると、テストの質問に対する生徒の応答が失われる可能性があります。
Cookieプレフィックス
同じサーバー上で複数のMoodleサイトを実行しているのでない限り、ほとんどの場合、これを空白のままにすることができます。この場合、各Moodleサイトがセッションを追跡するために使用するCookieの名前をカスタマイズする必要があります。これにより、同時に複数のMoodleサイトにログインできます。
注:「Cookieプレフィックス」または「Cookieパス」を変更した場合、変更はすぐに有効になるため、再度ログインする必要があります。
Cookieパス
このMoodleインストールへの相対パス。これを使用して、MoodleセッションCookieを親ディレクトリに強制的に送信できます。無効な値は自動的に無視されます。
Cookieドメイン
これは、サーバードメインだけでなく、上位のドメインにセッションCookieを送信するために使用できます。これは、一部のSSOソリューションに役立つ場合があります。無効な値は自動的に無視されます。
セッションドライバー
ユーザーセッションは、異なるバックエンドに保存される場合があります。セッションドライバーは、config.phpファイルでのみ構成できます。config-dist.phpファイルの例を参照してください。
Memcachedセッションドライバ
Memcachedセッションドライバーは最速のドライバーです。外部のmemcachedサーバーとmemcached PHP拡張が必要です。サーバークラスタノードは、共有セッションストレージを使用する必要があります。
config.phpの設定オプション: <コードphp> $ CFG-> session_handler_class = '\ core \ session \ memcached'; $ CFG-> session_memcached_save_path = '127.0.0.1:11211'; $ CFG-> session_memcached_prefix = 'memc.sess.key。'; $ CFG-> session_memcached_acquire_lock_timeout = 120; $ CFG-> session_memcached_lock_expire = 7200; // memcached拡張機能<= 2.1.0の場合は無視されます </ code>
ノート:
- memcachedサーバーに十分なメモリがあることを確認してください。
- 1つのサーバーに複数のMoodleサイトからのセッションを保存する場合は、異なるプレフィックスを使用してください。
- インストールされているPECL memcached拡張バージョンが2.2.0未満の場合、ロックは他のドライバーとは異なる働きをします-ロックはタイムアウトの終わりに期限切れ/解放されます-MDL-42485を参照してください。
- 'セッションとMUCの両方に同じmemcachedサーバーを使用しないでください。 MUCキャッシュの削除をトリガーするイベントは、MUCがmemcachedサーバーを削除することにつながり、すべてのセッションが終了します。」
$ CFG-> session_memcached_number_of_replicas </ code>オプションはサポートされなくなりました。
Windowsユーザーの場合、PHP.netはmemcacheのバイナリのみを提供し、memcachedは提供しません。 (http://windows.php.net/downloads/pecl/releases/)
(2.7以降、memcacheセッションの処理には2つの異なる要素が存在します-MDL-42011を参照してください-何らかの理由でOUがprefix / lock_expireを使用していないようです...上記のconfig.phpはmemcache(d)のスペルです。)
ファイルセッションドライバー
このドライバは、新規インストールではデフォルトで使用されます。
config.phpの設定オプション:
<コードphp>
$ CFG-> session_handler_class = '\ core \ session \ file';
$ CFG-> session_file_save_path = $ CFG-> dataroot。 '/ sessions';
</ code>
ノート:
- ファイルベースのセッションには、ファイルロックをサポートするファイルシステムが必要です。
データベースセッションドライバ
このタイプのドライバーは、Moodle 2.0-2.5ではデフォルトで使用されていました。
<コードphp>
$ CFG-> session_handler_class = '\ core \ session \ database';
$ CFG-> session_database_acquire_lock_timeout = 120;
</ code>
ノート:
- DBセッションはMyISAMデータベースエンジンと互換性がありません。
- MySQL / MariaDBを使用している場合、my.cnf(またはmy.ini)の\ 'max_allowed_packet \'が少なくとも4Mであることを確認してください。
- パフォーマンスは比較的低く、大規模なサイトには推奨されません。
Redisセッションドライバ
RedisセッションドライバはMoodle 3.1.3以降で利用可能です(MDL-54606を参照)。 Redis serverと Redis extensionが必要です。
config.phpの設定オプション:
<コードphp>
$ CFG-> session_handler_class = '\ core \ session \ redis';
$ CFG-> session_redis_host = '127.0.0.1';
$ CFG-> session_redis_port = 6379; //オプション。
$ CFG-> session_redis_database = 0; //オプション、デフォルトはdb 0。
$ CFG-> session_redis_auth = ; //オプションで、デフォルトでは設定されていません。
$ CFG-> session_redis_prefix = ; //オプションで、デフォルトでは設定されていません。
$ CFG-> session_redis_acquire_lock_timeout = 120;
$ CFG-> session_redis_lock_expire = 7200;
$ CFG-> session_redis_serializer_use_igbinary = false; //オプションで、デフォルトはPHP組み込みシリアライザです。
</ code>
ノート:
- デフォルトのシリアライザを変更するときは注意してください: phpredis 拡張機能のコンパイル時に 'code php>-enable-redis-igbinary </ code>が必要です' および 'を削除する必要があります' Moodleを再び使用する前に、以前のセッションのデータ '。
読み取り専用セッション
Moodle 3.9には実験的な機能があり、特定のページが読み取り専用セッションを開始できるようにします。これにより、大規模なパフォーマンスを目的とした書き込みロックは必要ありません。
https://tracker.moodle.org/browse/MDL-58018
詳細TBA
こちらもご覧ください