configuration de redis via config.php

configuration de redis via config.php

par Karim Ayari,
Nombre de réponses : 4

Bonjour

je me permets de vous contacter car j'ai une petite problèmatique :

Sur Moodle 3.11 je souhaite configurer un serveur de cache de session redis dans moodle, voici ma démarche :
- installation de moodle en générant un fichier config.php avec ma configuration (via Ansible)
- exécution de la commande install_database.php pour accepter la license (via Ansible)

le fichier config.php contient les lignes suivantes pour la configuration redis :

//Redis session handler (requires redis server and redis extension):
      $CFG->session_handler_class = '\core\session\redis';
      $CFG->session_redis_host = '192.168.1.1';
      $CFG->session_redis_port = 6379;  // Optional.
      $CFG->session_redis_database = 0;  // Optional, default is db 0.
      $CFG->session_redis_auth = 'xxxxxx'; // Optional, default is don't set one.
      $CFG->session_redis_prefix = 'mdl10'; // Optional, default is don't set one.
      $CFG->session_redis_acquire_lock_timeout = 120;
      $CFG->session_redis_lock_expire = 7200;
      $CFG->session_redis_lock_retry = 100; // Optional wait between lock attempts in ms, default is 100.
                                            // After 5 seconds it will throttle down to once per second.
      // Use the igbinary serializer instead of the php default one. Note that phpredis must be compiled with
      // igbinary support to make the setting to work. Also, if you change the serializer you have to flush the database!
      $CFG->session_redis_serializer_use_igbinary = false; // Optional, default is PHP builtin serializer.
      $CFG->session_redis_compressor = 'none'; // Optional, possible values are:
                                               // 'gzip' - PHP GZip compression
                                               // 'zstd' - PHP Zstandard compression


une fois l'installation effectuée je m'aperçois que l'interface d'administration ne fait pas apparaitre d'instance pour redis (vous pouvez le voir sur la capture)
cependant le monitoring du serveur redis montre bien que le serveur moodle utilise bien le serveur redis.

y a t-il quelque chose que j'ai manqué ou est-ce normal ? je vous remercie pour votre aide.

Annexe redis.png
Moyenne des évaluations  -
En réponse à Karim Ayari

Re: configuration de redis via config.php

par Sébastien Mehr,
Avatar Développeurs Avatar Testeurs
Bonjour,

Je pense qu'il manque l'ajout de l'instance dans la configuration générale de Moodle comme cela est expliqué ici :



Seb
En réponse à Sébastien Mehr

Re: configuration de redis via config.php

par Karim Ayari,
Bonjour,

Merci pour votre réponse, je reformule ma question qui n'était pas très précise sourire
étant donné que la configuration indiquée dans mon 1er message semble suffire pour que le serveur Moodle interroge le serveur Redis, est-ce utile de devoir définir cette instance via l'interface d'administration ? Si oui comment peut-on la créer via le fichier de configuration config.php. je ne trouve rien dans le fichier d'exemple config-dist.php
merci sourire
En réponse à Karim Ayari

Re: configuration de redis via config.php

par Sébastien Mehr,
Avatar Développeurs Avatar Testeurs
Il y a deux types de session ce qui peut prêter à confusion :

  • Les sessions utilisateurs issues de PHP définies dans le config.php (comme vous l'avez fait)
  • Les sessions Moodle définies dans l'interface de configuration générale de Moodle qui nécessitent l'ajout d'une instance d'un entrepôt de cache
Si vous souhaitez utiliser Redis uniquement pour les sessions utilisateurs issues de PHP, vous n'avez, à priori, plus rien à faire sinon il vous faudra paramétrer également une instance de cache redis pour les sessions Moodle.

Si les deux sont configurés, lorsque vous regarderez le contenu du cache en temps réel avec la commande redis-cli monitor, vous constaterez que certaines entrées ont un préfixe tel que vous l'avez défini dans le fichier config.php, il s'agira alors des données de sessions PHP.

Seb