【问题标题】:MediaWiki 1.22 - Session StorageMediaWiki 1.22 - 会话存储
【发布时间】:2014-11-05 09:55:50
【问题描述】:

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

我已添加:

$wgSessionHandler = 'session_mysql';

到“LocalSettings.php”,但我在关联的 MySQL DB 中找不到任何会话表。

【问题讨论】:

  • 你运行update script了吗?
  • 不是吗?我没有发现任何关于运行脚本的通知?

标签: mediawiki wiki


【解决方案1】:

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

相反,根据您的要求,我建议使用带有 MySQL 后端的 MediaWiki 会话缓存管理器。这将与之前的解决方案做同样的事情,但它已正确集成到 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 的键以及其他可能的缓存对象。

【讨论】:

    【解决方案2】:

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

    php maintenance/update.php
    

    如果由于某种原因您无法访问命令行,您应该可以通过导航到 /w/mw-config 来获得相同的结果(假设您的 wiki 位于名为w),并在不更改任何设置的情况下运行 Web 安装程序。

    【讨论】:

    • 嗨,数据库中仍然没有什么看起来像用于会话存储的表?脚本成功完成
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-19
    • 2016-07-06
    • 2011-06-03
    • 2011-10-03
    • 2017-06-08
    相关资源
    最近更新 更多