Gestion des sessions


Un administrateur peut modifier les paramètres suivants dans "Gestion des sessions" de l'administration du site.

Une fois que quelqu'un se connecte à votre serveur Moodle, le serveur démarre une session. Les données de session permettent au serveur de suivre les utilisateurs lorsqu'ils accèdent à différentes pages.

Utiliser la base de données pour les informations de session

Moodle a besoin de stocker les données de session dans un certain espace de stockage. Par défaut, le stockage de session de fichier ou de base de données est sélectionné, cette option permet à l'administrateur de le modifier. Les grandes installations doivent utiliser le pilote memcached décrit ci-dessous.

Notez que cette option disparaît après avoir défini la classe $CFG->session_handler_class dans le fichier config.php. Moodle a besoin de stocker les données de session dans un certain espace de stockage. Par défaut, le stockage de session de fichier ou de base de données est sélectionné, cette option permet à l'administrateur de le modifier. Les grandes installations doivent utiliser le pilote memcached décrit ci-dessous.

Délai d'attente

Si les utilisateurs ne chargent pas une nouvelle page pendant la durée définie ici, Moodle mettra fin à leur session et les déconnectera.

Assurez-vous que ce délai est suffisamment long pour couvrir le test le plus long que vos professeurs peuvent vous offrir. Si un étudiant est déconnecté pendant qu'il passe un test, ses réponses aux questions du test peuvent être perdues.

Préfixe de cookie

La plupart du temps, vous pouvez laisser ce champ vide, sauf si vous exécutez plus d'un site Moodle sur le même serveur. Dans ce cas, vous voudrez personnaliser le nom du cookie que chaque site Moodle utilise pour suivre la session. Cela vous permet d'être connecté à plusieurs sites Moodle en même temps.

Remarque : Si vous changez le "Préfixe du cookie" ou le "Chemin du cookie", vous devrez vous reconnecter dès que les changements prendront effet immédiatement.

Chemin des cookies

Le chemin d'accès relatif à cette installation Moodle peut être utilisé pour forcer l'envoi de cookie de session Moodle aux répertoires parents. Les valeurs non valides sont automatiquement ignorées.

Domaine des cookies

Ceci peut être utilisé pour envoyer des cookies de session à des domaines supérieurs au lieu du seul domaine du serveur. Cela peut être utile pour certaines solutions de SSO. Les valeurs non valides sont automatiquement ignorées.

Pilotes de session

Les sessions utilisateur peuvent être stockées dans différents systèmes. Les pilotes de session ne peuvent être configurés que dans le fichier config.php, voir exemples dans le fichier config-dist.php.

Pilote de session Memcached

Le pilote de session Memcached est le pilote le plus rapide. Il nécessite un serveur memcached externe et une extension PHP memcached. Les nœuds de cluster de serveurs doivent utiliser un stockage de session partagé.

Options de configuration dans 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

Notes :

  • Assurez-vous que le serveur memcached a assez de mémoire.
  • Utilisez un préfixe différent lorsque vous stockez des sessions de plusieurs sites Moodle sur un même serveur.
  • Si la version d'extension memcached de PECL installée est inférieure à 2.2.0, le verrouillage fonctionne différemment des autres pilotes, le verrou est expiré/libéré à la fin du timeout, voir MDL-42485.
  • N'utilisez pas le même serveur memcached pour les deux sessions et MUC. Les événements déclenchant les caches MUC à purger entraînent la purge du serveur memcached par MUC - mettant ainsi fin à TOUTES les sessions.
  • L'option
    $CFG->session_memcached_number_of_replicas
    n'est plus supportée.

Pour les utilisateurs de Windows, PHP.net ne fournit que des binaires pour memcache, (et non memcached). (http://windows.php.net/downloads/pecl/releases/)

(A partir de 2.7, il existe deux contribs différents pour la gestion des sessions memcache, voir MDL-42011, il semble que celui de OU n'utilise pas le préfixe/lock_expire pour une raison quelconque... peut-être mieux d'utiliser le patch catalyseur, où la seule différence avec le config.php ci-dessus est l'orthographe memcache(d).)

Pilote de session de fichier

Ce pilote est utilisé par défaut dans la nouvelle installation.

Options de configuration dans config.php :

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

Notes :

  • Les sessions basées sur des fichiers nécessitent un système de fichiers qui prend en charge le verrouillage des fichiers.

Pilote de session de base de données

Ce type de pilote était utilisé par défaut dans Moodle 2.0-2.5.

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

Remarques :

  • Les sessions DB ne sont pas compatibles avec le moteur de base de données MyISAM.
  • Si vous utilisez MySQL/MariaDB, assurez-vous que \'max_allowed_packet\' dans my.cnf (ou my.ini) est au moins 4M.
  • La performance est relativement faible, elle n'est pas recommandée pour les grands sites.

Pilote de session Redis

Le pilote de session Redis est disponible à partir de Moodle 3.1.3 (voir MDL-54606). Il nécessite un Serveur Redis et le Extension Redis.

Options de configuration dans 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;

Voir aussi

cs:admin/setting/sessionhandling