セッションハンドリング

移動先: 案内, 検索

管理者は、サイト管理の 'セッションハンドリング' で以下の設定を変更できます。

Moodleサーバに誰かがログインすると、サーバがセッションを開始します。セッションデータにより、サーバはユーザが別のページにアクセスするときにユーザを追跡できます。

セッション情報にデータベースを使用する

Moodleはセッションデータを何らかのストレージに保存する必要があります。デフォルトでは、ファイルまたはデータベースセッションストレージが選択されています。このオプションを使用すると、管理者はストレージを変更できます。大規模なインストールでは、以下で説明するmemcachedドライバを使用する必要があります。

このオプションは、config.phpファイルで$ CFG-> session_handler_classを設定すると表示されなくなることに注意してください。

タイムアウト

ここで設定した時間内にユーザが新しいページをロードしない場合、Moodleはセッションを終了してログアウトします。

この時間枠は、教師が提供できる最も長いテストをカバーするのに十分な長さであることを確認してください。テスト中に生徒がログアウトすると、テストの質問に対する生徒の応答が失われる可能性があります。

クッキー接頭辞

同じサーバ上で複数のMoodleサイトを実行しているのでない限り、ほとんどの場合、これを空白のままにすることができます。この場合、各Moodleサイトがセッションを追跡するために使用するクッキーの名前をカスタマイズする必要があります。これにより、同時に複数のMoodleサイトにログインできます。

注:「クッキー接頭辞」または「クッキーパス」を変更した場合、変更はすぐに有効になるため、再度ログインする必要があります。

クッキーパス

このMoodleインストールへの相対パス。これを使用して、Moodleセッションクッキーを親ディレクトリに強制的に送信できます。無効な値は自動的に無視されます。

クッキードメイン

これは、サーバドメインだけでなく、上位のドメインにセッションクッキーを送信するために使用できます。これは、一部のSSOソリューションに役立つ場合があります。無効な値は自動的に無視されます。

セッションドライバ

ユーザセッションは、異なるバックエンドに保存される場合があります。セッションドライバは、config.phpファイルでのみ構成できます。config-dist.phpファイルの例を参照してください。

Memcachedセッションドライバ

Memcachedセッションドライバは最速のドライバです。外部のmemcachedサーバとmemcached PHP拡張が必要です。サーバクラスタノードは、共有セッションストレージを使用する必要があります。

config.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の場合は無視されます

ノート:

  • memcachedサーバに十分なメモリがあることを確認してください。
  • 1つのサーバに複数のMoodleサイトからのセッションを保存する場合は、異なるプレフィックスを使用してください。
  • インストールされているPECL memcached拡張バージョンが2.2.0未満の場合、ロックは他のドライバとは異なる働きをします-ロックはタイムアウトの終わりに期限切れ/解放されます-MDL-42485を参照してください。
  • セッションとMUCの両方に同じmemcachedサーバを使用しないでください。 MUCキャッシュの削除をトリガーするイベントは、MUCがmemcachedサーバを削除することにつながり、すべてのセッションが終了します。
  • $CFG->session_memcached_number_of_replicas
    オプションはサポートされなくなりました。

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の設定オプション:

$CFG->session_handler_class = '\core\session\file';
$CFG->session_file_save_path = $CFG->dataroot.'/sessions';

ノート:

  • ファイルベースのセッションには、ファイルロックをサポートするファイルシステムが必要です。

データベースセッションドライバ

このタイプのドライバは、Moodle 2.0-2.5ではデフォルトで使用されていました。

$CFG->session_handler_class = '\core\session\database';
$CFG->session_database_acquire_lock_timeout = 120;

ノート:

  • DBセッションはMyISAMデータベースエンジンと互換性がありません。
  • MySQL / MariaDBを使用している場合、my.cnf(またはmy.ini)の\ 'max_allowed_pa​​cket \'が少なくとも4Mであることを確認してください。
  • パフォーマンスは比較的低く、大規模なサイトには推奨されません。

Redisセッションドライバ

RedisセッションドライバはMoodle 3.1.3以降で利用可能です(MDL-54606を参照)。 Redisサーバ Redis拡張が必要です。

config.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組み込みシリアライザです

ノート:

  • デフォルトのシリアライザを変更するときは注意してください: phpredis 拡張機能のコンパイル時に
    --enable-redis-igbinary
    が必要であり、そしてMoodleを再び使用する前に、以前のセッションのデータを削除する必要があります。

読み取り専用セッション

Moodle 3.9には実験的な機能があり、特定のページが読み取り専用セッションを開始できるようにします。これにより、大規模なパフォーマンスを目的とした書き込みロックは必要ありません。

https://tracker.moodle.org/browse/MDL-58018

詳細TBA

こちらもご覧ください