相比mediawiki,dokuwiki有很多优点,安装简单,dokuwiki的数据是以文件的形式存储的,文件放在data/pages/下,不需要用的数据库,数据移动简单。权限管理强大,acl权限列表控制控制页面级别的访问。
现在来配置Dokuwiki通过连接LDAP服务器进行认证登陆
一、配置所需环境:
1、 安装完成并且配置正确的LDAP服务器。
2、
确保服务器PHP已安装LDAP扩展(php-ldap)。
3、
下载并安装最新的dokuwiki,并进行安装。
wget http://download.dokuwiki.org/out/dokuwiki-382d0ca15f9eeceea6bc3c0c5a145a62.tgz
tar zxvf dokuwiki-382d0ca15f9eeceea6bc3c0c5a145a62.tgz
chmod 777 -R dokuwiki
二、配置Dokuwiki采用LDAP认证登陆。
1、
安装dokuwiki,配置管理员账户
、访问 http://203.195.187.200/dokuwiki/install.php
、配置管理员账号
2、启用LDAP 插件
、用管理员账户登录
、点击 管理——>插件管理器。
勾选authldap选项。
3、 配置
LDAP 插件
、点击 管理——>配置设置
——>认证设置
修改:
认证后台管理方式
密码加密方法
超级用户 - 不论 ACL 如何设置,都能访问所有页面与功能的用户组/用户
管理员 - 能访问相应管理功能的用户组/用户
、点击 管理——>配置设置
——>插件设置
修改:
您的 LDAP 服务器。填写主机名 (
localhost
) 或者完整的 URL (
ldap://server.tld:389
)
LDAP 服务器端口 (如果上面没有给出完整的 URL)
何处查找用户账户。例如
ou=People, dc=server, dc=tld
何处查找用户组。例如 ou=Group, dc=server, dc=tld
用于搜索用户账户的 LDAP 筛选器。例如 (&(uid=%{user})(objectClass=posixAccount))
用于搜索组的 LDAP 筛选器。例如 (&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))
使用的协议版本。您或许需要设置为 3
配置完成后 ./conf/local.php应该是这个样子
$conf['title'] = 'my_wiki';
$conf['lang'] = 'zh';
$conf['license'] = 'cc-by-sa';
$conf['useacl'] = 1; # 启动acl
$conf['autopasswd'] = 0;
$conf['authtype'] = 'authldap';
# 启动ldap
$conf['passcrypt'] = 'md5';
$conf['superuser'] = 'fangqiang';
# 指定超级管理员账号 也可以是@admin(admin组中所有成员都是超级管理员)
$conf['manager'] = 'user1'; #指定普通管理员账号
$conf['disableactions'] = 'register';
$conf['plugin']['authldap']['server'] = 'your-IP';
$conf['plugin']['authldap']['usertree'] = 'ou=People,dc=1v,dc=cn';
$conf['plugin']['authldap']['grouptree'] = 'ou=group,dc=1v,dc=cn';
$conf['plugin']['authldap']['userfilter'] = '(&(uid=%{user})(objectClass=posixAccount))';
4、更精细的权限控制,用管理员登陆。右上角的管理——访问控制列表(ACL)管理器。
然后添加相应的规则,这些规则会被映射到./conf/
local.php文件中
三 、配置邮件
-
下载Swiftmail插件
-
管理——配置设置——通知设置{1 启用订阅支持;2 填写mailfrom}
-
管理——配置设置——Swiftmail{1 smtp_host;2 auth_user;3 auth_pass}
-
auth_user 要和上面的 mailfrom 相同
更多权限见:https://www.dokuwiki.org/zh:acl