来自newby:一个mediawiki installaiton可以有两个wiki吗?

时间:2016-07-29 03:35:05

标签: mediawiki

我们计划使用mediawiki作为产品文档的基础。访问控制将用于授予客户访问内容的权限。

我们还想将mediawiki用于我们的一些内部文档,即客户不应访问的内容。

是否可以配置一个mediawiki安装,以便一组用户看到某些维基内容,另一组用户看到其他维基内容?如果是这样,请指出相应的文件,因为我甚至不确定这会被称为什么(因此我不确定在哪里看)。

谢谢。

2 个答案:

答案 0 :(得分:3)

如果一个安装意味着一个数据库,那么它有点可能但非常不明智。如果您决定尝试,请参阅手册的this section以获取解释和Category:Page specific user rights extensions(尤其是Lockdown扩展名)。

使用相同的安装目录(即PHP文件),但单独的数据库是可以的。有关wiki farms的手册页介绍了几种方法。

答案 1 :(得分:1)

如果您的意思是,您想要限制"视图"特定组的某些页面的权限,然后答案可能是一种。使用默认的MediaWiki安装,这是不可能的,因为MediaWiki旨在打开"打开"对所有用户(至少视图持久性)。你可以"只是"限制,某个群体可以阅读或无法阅读,但这将始终意味着所有页面。

也许你的问题可以通过真的两个wiki来解决,而不是拿着两个"部分"在一个 wiki中。为此你需要:

  • 在您的文件系统上安装一个MediaWiki(解压缩mediawiki tarball版本),例如的/ var / www / html等/的mediawiki /
  • 两个mysql数据库(或使用两个数据库前缀)
  • 两个不同的网址(例如:example.com/wiki1和example.com/wiki2或wiki1.example.com和wiki2.example.com)
  • 稍微复杂的MediaWiki配置

现在,您首先需要在Web服务器中创建两个虚拟主机。两者都应指向mediawiki的安装目录(/ var / www / mediawiki /)。在下一步中,您需要创建一个根据用户请求的wiki而不同的配置(取决于使用的URL)。这在MediaWiki中有点棘手且几乎没有记录,但事实上它的工作方式如下:

  • create a wgConf object
  • 使用有效的wiki填充此wgConf对象(通常使用唯一名称,例如dbname)
  • 你让wgConf提取所有设置(使用wiki的名称,例如dbname)

这部分或多或少都记录在wgConf手册页中。更棘手的方法是正确解析URL并设置所需的所有信息。维基媒体基金会使用名为MultiVersion的脚本。这个工具只是解析url来识别wiki,但确实如此。使用MultiVersion,您可以设置配置变量wgDBname,然后使用该变量加载wgConf数据。有关更多信息,您应该询问具体问题并查看Wikimedia foundations configuration的git存储库。我use a similar approach with just 2 wikis,以及更小的MultiVersion(但它基于WMF的想法),所以这可能会帮助您了解配置wiki的方法。

您希望,例如,还要确保维基能够create inter-wiki links链接,例如,您的内部维基中的公共维基文档,反之亦然。您可能希望确保一些数据库表由一个wiki共享,因此您的用户只需注册一次即可访问这两个wiki(并将用户的内部读取权限设置为false,以便您必须提供访问权限用户(包括)。请参阅$ wgSharedDBshared databases手册。我的两个wiki的配置使用此功能来共享用户表。