セッション処理

管理者は、サイト管理の[セッション処理]で以下の設定を変更できます。

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

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

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

config.phpファイルに$ CFG-> session_handler_classを設定すると、このオプションは消えます。

タイムアウト

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

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

クッキーの接頭辞

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

注:「Cookieプレフィックス」または「Cookieパス」を変更した場合は、変更がすぐに有効になるため、もう一度ログインする必要があります。

クッキーパス

このMoodleインストールへの相対パス。これはMoodleセッションクッキーを親ディレクトリに送信するために使用されるかもしれません。無効な値は自動的に無視されます。

クッキードメイン

これは、サーバードメインだけでなく、上位ドメインにセッションCookieを送信するためにも使用できます。これは、いくつかのSSOソリューションに役立ちます。無効な値は自動的に無視されます。

セッションドライバ

ユーザセッションは異なるバックエンドに保存されるかもしれません。セッションドライバはconfig.phpファイルでのみ設定できます - config-dist.phpファイルの例を参照してください。

Memcachedセッションドライバ

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

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 ;       // Ignored if memcached extension <= 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は提供しません)。 ( https://windows.php.net/downloads/pecl/releases/

(2.7では、memcacheセッション処理に2つの異なるcontribが存在します - MDL-42011を参照してください - OU 1が何らかの理由で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_packet \'が少なくとも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 ;  // Optional.
$CFG -> session_redis_database = 0 ;  // Optional, default is db 0.
$CFG -> session_redis_prefix = '' ; // Optional, default is don't set one.
$CFG -> session_redis_acquire_lock_timeout = 120 ;
$CFG -> session_redis_lock_expire = 7200 ; 

関連情報