手册:$wgSessionCacheType

From mediawiki.org
This page is a translated version of the page Manual:$wgSessionCacheType and the translation is 100% complete.
高速缓存设置: $wgSessionCacheType
用于存储会话数据的缓存类型。
引进版本:1.20.0 (Gerrit change 17929; git #6eb6313b)
移除版本:仍在使用
允许的值:缓存常量之一(参见$wgMainCacheType
默认值:CACHE_ANYTHING

详情

会话数据的存储机制。 请注意,尽管名称中包含“缓存”一词,但这是会话的主要存储机制;如果它不起作用,将无法登录到wiki。

要了解可用的类型,请参阅$wgMainCacheType

为了正确地运作,此项必须设置为持久缓存,并且如果存在多个服务器为单个客户端的请求提供服务的情况,则此缓存必须在这些服务器之间共享。

如果$wgMainCacheType 设置为 CACHE_ACCEL,而这个设置保持默认的CACHE_ANYTHING,那么使用的缓存方式可能不符合这些要求。

解决方案是将其设置为合适的缓存方式,例如CACHE_DB

请注意,如果使用了CACHE_DB,那么当相应维基的数据库被锁定时,例如使用了$wgReadOnly ,用户将无法登录。

会话共享入侵

在MediaWiki 1.27之前,一些维基农场使用单个域域名、共享用户表和共享会话缓存目录作为一种简易的单一登录解决方案。自1.27版本以后,无法使用基于文件的会话缓存;为了实现相同的功能,可以采用类似以下的方法:

$wgSessionCacheType = 'session-cache';
$wgObjectCaches['session-cache'] = [
    'factory' => 'ObjectCache::newAnything',
    'keyspace' => 'shared-session'
];

这将使所有维基的会话缓存使用相同的keyspace。

请注意,这种方法并不受正式支持,如果您使用的扩展尝试在不同的维基上将不同的内容放入会话中,可能会导致一些问题出现;请自行承担风险。另外,此方法仅适用于1.30版本或更高版本。

参见