MediaWiki 1.22 - 会话存储

时间:2014-11-05 09:55:51

标签: mediawiki wiki

我正在尝试将MySQL用作MediaWiki的会话存储。

我已添加:

$wgSessionHandler = 'session_mysql';

到" LocalSettings.php",但我无法在关联的MySQL数据库中找到任何会话表。

2 个答案:

答案 0 :(得分:4)

如果设置$wgSessionHandler = 'session_mysql';,则要求PHP使用MySQL后端而不是默认文件后端在内部管理会话。在这种情况下,你必须自己安装和配置这个MySQL后端(快速搜索我发现https://github.com/repoforge/rpms/blob/master/specs/php-pecl-session_mysql/php-pecl-session_mysql.spec,但这个包似乎很旧)。特别是,您必须选择主机,用户,数据库和表来存储会话。

相反,对于您的请求,我建议将MediaWiki会话缓存管理器与MySQL后端一起使用。这将与之前的解决方案完全相同,但这已在MediaWiki中正确集成。要实现此行为,请在LocalSettings.php中写入:

$wgSessionsInObjectCache = true; # MW internal session cache management
                                 # takes precedence over PHP management
$wgSessionCacheType = CACHE_DB; # See documentation for other backends
$wgObjectCacheSessionExpiry = 3600; # Default lifetime of the sessions

似乎它不适用于SQLite,但它适用于MySQL。在此缓存中,您可以检查表objectcache,其中包含名为wikiID:session:sessionsID的键以及其他可能的缓存对象。

答案 1 :(得分:1)

对于影响数据库布局的配置更改,通常需要运行update.php脚本:

php maintenance/update.php

如果由于某种原因,您无法访问命令行,那么应该能够通过导航到/w/mw-config来实现相同的结果(假设您的wiki位于目录名为w),并且在不改变任何设置的情况下运行Web安装程序。