An administrator can change the following settings in ‘Session Handling’ in the Site administration.
Once someone logs in to your LMS server, the server starts a session. The session data allows the server to track users as they access different pages.
Use database for session information
LMS needs to store the session data in some storage. By default either file or database session storage is selected, this option allows admin to change it. Large installation should use memcached driver described below.
Note that this option disappears after setting the $CFG->session_handler_class in config.php file.
Timeout
If users don’t load a new page during the amount of time set here, LMS will end their session and log them out.
Be sure this time frame is long enough to cover the longest test your instructors may offer. If a user is logged out while they are taking a test, their responses to the test questions may be lost.
Cookie prefix
Most of the time, you can leave this blank, unless you are running more than one LMS site on the same server. In this case, you will want to customize the name of the cookie each LMS site uses to track the session. This enables you to be logged into more than one LMS site at the same time.
Note: If you change “Cookie prefix” or “Cookie path” you will need to login again as the changes take effect immediately.
Cookie path
The relative path to this LMS installation, this may be used to force sending of LMS session cookie to parent directories. Invalid values are ignored automatically.
Cookie domain
This can be used to send session cookies to higher domains instead of just the server domain. This may be useful for some SSO solutions. Invalid values are ignored automatically.
Session drivers
User sessions may be stored in different backends. Session drivers can be configured only in config.php file – see examples in config-dist.php file.
Memcached session driver
The Memcached session driver is the fastest driver. It requires external memcached server and memcached PHP extension. Server cluster nodes must use shared session storage.
Notes:
- Make sure the memcached server has enough memory.
- Use different prefix when storing sessions from multiple LMS sites in one server.
- If PECL memcached extension version installed is less that 2.2.0, the locking works differently from other drivers – the lock is expired/released at the end of timeout.
- Don’t use the same memcached server for both sessions and MUC. Events triggering MUC caches to be purged leads to MUC purging the memcached server – thus terminating ALL sessions.
- The
$CFG->session_memcached_number_of_replicas
option is no longer supported.
For windows users, PHP.net only supplies binaries for memcache, (and not memcached). (http://windows.php.net/downloads/pecl/releases/)
(Two different contribs exist for memcache session handling it seems the OU one doesn’t use prefix/lock_expire for some reason… possibly better to use the catalyst patch, where the only difference to the above config.php is the spelling of memcache(d).)
File session driver
This driver is used by default in new installation.
Notes:
- File based sessions require file system that supports file locking.
Database session driver
This type of driver was used by default in previous LMS versions
Notes:
- DB sessions are not compatible with MyISAM database engine.
- If you are using MySQL/MariaDB make sure that \’max_allowed_packet\’ in my.cnf (or my.ini) is at least 4M.
- The performance is relatively low, it is not recommended for large sites.
Redis session driver
The Redis session driver is available in newer LMS versions. It requires a Redis server and the Redis extension.