2012-01-31 111 views
1

我有一台服务器,我在其上使用dokuwiki来承载主页以及wiki。服务器可在www.domain.com下获得,wiki可在wiki.domain.com下获得。内部这两个子域由不同的目录提供。多个dokuwiki安装的单点登录

然而,这意味着,每个人都谁想要注册必须报名参加两个域和管理重复的用户帐户组两个子域。

我想什么是有一个系统,在这里任何人都可以在两个页面上注册并只需要登录在任何领域,并获得访问权。由于我可能多次使用名称空间名称,所以ACL仍应分别管理这两个域。

我在列表中经常DokuWiki的身份验证插件看了看,但是我无法找到任何有用的用于这一目的。另一个想法是在两个安装中只是软连接或硬连接auth数据目录。但是,这仍然意味着用户将不得不多次登录。另外我不确定我的主机实际上是否允许这样的目录链接,或者如果这可能会搞乱这两个安装。

是否有任何其他方式来创建这样的设置?

回答

4

一个DokuWiki的farm setup可能有对两个站点相同的用户数据库帮助。对用户文件进行symlinking是另一种方式。

更复杂的是在两个域之间共享cookie。我不知道如何处理这个最好的。也许别人可以提供一些想法。

+0

这看起来非常有帮助。今晚我会仔细看看文档,然后我会看看这是否真的有效。 – LiKao 2012-01-31 16:08:57

+0

维基农场正常运行(我们目前管理80个维基),这是在2个网站之间建立SSO的最佳方式。如果您有2个子域名级别,Cookie不起作用:例如:www.domain.ntld和wiki.domain.ntld将正常工作,但www.domain.ntld和wiki1.wiki.domain.ntld将无法工作,因为HTTP限制(http://www.ietf.org/rfc/rfc2109.txt) 关于这个主题(WebSSO /维基农场)http://blog.olivier-duval.info/的文章(对不起,法语)? post/dokuWiki-et-integration-SSO-annuaire-modeles-co – 2012-02-23 10:12:37

+0

我没有想到符号链接 - 绝妙的主意,谢谢!它没有比这更简单。感谢您在DokuWiki,Andreas的伟大工作! =) – PrimaryFeather 2012-04-06 06:19:04

0

那么,因为这是在同一台服务器上跨越你的各个子域,我想你会想将用户信息包括登录信息存储在共享数据库中,这样无论你在哪个应用/子域中插入注册数据和查询他们的登录信息来自同一个数据库。然后就是使用PHP会话来跟踪他们是否跨子域登录。已经有关于如何实现,这里的长度堆栈:

PHP Sessions across sub domains

+0

beshared。数据库由托管目录中的一组文本文件组成,因此这可能非常具体。这就是为什么我有共享auth目录的想法,但因为dokuwiki正在处理它自己的数据库,我不确定这是否会破坏任何东西。 – LiKao 2012-01-31 09:13:20

0

尝试将Cookie域设置为.yourdomain.com 这意味着您的浏览器将向yourdomain.com的子域提供cookie。

所以饼干会中不幸的DokuWiki不使用传统意义上的“数据库” www.yourdomain.com和wiki.yourdomain.com