手册:共享数据库

来自MyaWiki.Org
跳转到导航 跳到搜索
其他语言: 英语

本页提供了在MyaWiKi中使用共享数据库的简要概述。这里的大部分信息应该使用MyaWiKi(没有扩展名)的简单安装。注意任何扩展要求。请注意,这是围绕MySQL数据库设计的。在MyaWiKi 1.17中添加了SQLite的支持。支持PostgreSQL在MealaWiKi 1.19中添加。其他数据库引擎可能不会以这种方式支持共享数据库。

注意安全 警告: 本指南假定您要么从头开始启动wiki,要么从一个wiki转换到多个wiki。不覆盖“合并”用户表,也不使用Wikimidia风格(使用全局用户表和本地用户表)中枢神经.

基础[编辑]

共享数据库配置有3个主要的全局配置变量 在你本地设置

根据您的需求和环境,您可能不需要使用所有这些。

最简单的设置:共享用户表[编辑]

共享用户表可用于具有共享用户注册的多个wiki,因此用户只需注册一个wiki即可。

$WGSyDRB = “MiWiki” 是持有主用户表的wiki数据库的$WGDBNEX
$WGSTRADDPROFIX = “M'” 是数据库的$WGDB前缀。默认为当前wiki的前缀,如果未指定

设置$WGSReStudio不是必需的,因为这默认为用户和UsRiStices属性表。

数据库权限[编辑]

共享wiki的MySQL用户必须至少选择和更新主wiki用户表的权限。如果您为每个维基使用不同的MySQL用户,您将需要授予Wiki中指定的共享wiki用户的附加权限。十亿美元 设置这可以使用类似于以下的MySQL命令执行:

赠款 选择 更新 打开(放) 主维基.用户  “SyrdWiKiAuthor”@“本地主机”
赠款 选择 更新 打开(放) 主维基.用户属性  “SyrdWiKiAuthor”@“本地主机”

这将允许您的wiki从主表读取用户,也可以更新表,每当用户登录时都会发生这些表。

共享会话[编辑]

有关MeaWiKi 1.27和以后的会话的最新信息,请参见手册:经理经理和AuthMeor.

若要在wiki之间共享登录会话,请设置一美元 将所有子域包含在根域中。例如,如果您有站点E.ExpRe.com、F.ExpLo.com和POOL.ExpLe.com,SET:

一美元 = 例如.com

升级改造[编辑]

至于MyaWiKi 1.21,什么时候升级MiaWiKi从Web安装程序中,升级过程中必须暂时清除$WGSRADDABLE。否则,共享表根本不会被触摸(既没有表$ $ggSyrdPyFIX,也没有$WGDPBPREFIX),这可能导致升级失败。

从命令行升级时,运行UpDATE.PHP 脚本,您需要使用--多斯哈德用于升级共享表的脚本参数。

在MealaWiKi 1.24中,MealAWiWi的默认密码类型已经从MD5更改为PBKDF2,并且当用户登录时,密码散列将自动更新。在所有wiki升级之前,防止发生这种情况,设置$ggScript默认值 “B”在所有wiki上,在升级后确保在所有wiki上移除它,以确保使用更强的加密。

共享更多表[编辑]

您可以共享用户表以外的表,但这样做时要小心。如果表包含特定于一个wiki的任何数据,共享可能会导致问题。请注意,这里的每个小节假设您也在共享用户表。每当添加其他表时,请务必向数组追加($var []=“值”)或在新数组定义中包含用户表。

IPBACK表[编辑]

$WGSysDeStudio[] = “IP街区”

通过分享IPBACK表 可以使用“全局块”,这样,一个wiki上的块将使用共享数据库阻止所有其他wiki上的用户或IP。

告诫[编辑]

当共享IPBoots表时可能会遇到一些小问题:

  • 这个IPBL原因字段被设置为“原因”特殊:块阻塞用户时。当被阻塞的用户看到“你被阻止”的消息时,这将被解析为WiKiTeXT,并且链接被解析。特殊:封锁清单您将需要确保何时阻止用户对所有wiki都有意义的消息。
  • 无法共享块日志(共享日志)测井工作台不推荐)。

用户群表[编辑]

$WGSysDeStudio[] = “用户群”

分享用户群表 将允许您拥有全局用户组。

告诫[编辑]

  • 与块日志一样,用户权限日志不被共享。
  • 全部用户组将是全球性的。您可以通过自定义用户组来解决这一问题。例如,让一个wiki上的管理员与另一个管理员分开,你可以做如下的事情:
在wiki 1的配置中
$WGCORPIPREST[“维基1Admin”] = $WGCORPIPREST[“赛索普” //将默认的SysOP权限复制到新组
未定式$WGCORPIPREST[“赛索普” //然后删除默认的SysOP组
$WGCORPIPREST[“维基2Admin”] = 数组(); /不要给其他wiki的管理员任何额外的权利
在wiki 2的配置中
$WGCORPIPREST[“维基2Admin”] = $WGCORPIPREST[“赛索普”
未定式$WGCORPIPREST[“赛索普”
$WGCORPIPREST[“维基1Admin”] = 数组();
  • 为了防止一个wiki上的官僚把他们自己的权利分配给他们不应该拥有的其他维基,你可以对上面做一个类似的配置,但是移除允许他们设置任何组的“UrrSeess”权限,然后使用。$WGADGROUP /美元集团 相反。

其他表格[编辑]

本节涵盖其他表,共享的原因较少,以及哪些表分享。

  • ItWiKi表主要包含静态数据;如果您有许多自定义的ItWikIs,共享它可能是有用的。
  • 可以共享SITEYSTATS表,以便在所有wiki上聚合数据。
  • 默认情况下,用户属性表 包含在共享表的列表中。如果您的wiki是使用MeIaWiki 1.15或更大版本启动的,那么您应该保持这种兼容性,因为用户偏好将自动从用户表自动迁移到UsRiStices属性表。否则,您可以从数组中删除该项,以允许用户在每个wiki上有不同的偏好(如果需要)

大多数其他的表不应该共享,因为它们包含Wiki特定的数据,通常通过页面标识或命名空间/标题组合连接到页面。这包括(但不限于):

  • 任何链接表(Palelink、Tabelelink等)
  • 页表
  • 修订表
  • 图像表(具有共享媒体存储库,参见$FigFielePrimes

有关详细信息,请参见手册:共享表的适用性.

也见[编辑]

  • 扩展:中心地址-拥有共享用户表的另一种方法。Wikimidia使用,并且可能是合并已经建立的wiki的最简单的选择,如果从一开始就启动新wiki的农场,它的使用应该避免,因为这种扩展的相对复杂性和难度很难工作。
  • 扩展:全局阻塞-允许IP地址在全球范围内被阻止,而不共享其他数据库的扩展。全局阻止用户的权限与正常的“块”权限分离。
  • 扩展:全球定位系统-扩展,使全球用户组,并允许通过特殊的Global Services轻松管理它们。