开源wiki套件-mediawiki简介

MediaWiki是一套最早为维基百科量身打造的自由免费的wiki套件,迄今为止,非盈利的维基媒体基金会下辖的所有wiki项目均运行着这套软件,而互联网上的许多wiki网站也在使用该软件。

详见http://www.mediawiki.org/wiki/MediaWiki/zh

一、环境准备   
yum -y install httpd mysql-server php php-mysql mysql-devel php-ldap    
yum install -y  php-gd php-imap  php-mbstring php-odbc php-pear php-xml php-xmlrpc  

二、安装Mediawiki  

wget http://download.wikimedia.org/mediawiki/1.20/mediawiki-1.20.0.tar.gz

tar zxf mediawiki-1.20.0.tar.gz

mv mediawiki-1.20.0 /var/www/html/wiki 

chown -R root:root wiki

chmod a+w wiki/config

mysqladmin -uroot -p password 123456

访问:http://ip/wiki/


三、结合域帐户登录

1.下载插件:http://www.mediawiki.org/wiki/Extension:LDAP_Authentication,并解压到wiki\extensions\ldap 下

2.修改wiki目录下的LocalSettings.php文件,将下面配置到wiki/LocalSettings.php底部

 require_once( "$IP/extensions/ldap/LdapAuthentication.php" );   
  
 $wgAuth = new LdapAuthenticationPlugin();    
 $wgLDAPDomainNames = array( "nimei.local" );    
 $wgLDAPServerNames = array( "nimei.local" => "dc1.nimei.local" );    
 $wgLDAPSearchStrings = array( "nimei.local" => "nimei\\USER-NAME" );    
 $wgLDAPEncryptionType = array( "nimei.local" => "clear" );    
 $wgLDAPUseLocal = true;    
 $wgMinimalPasswordLength = 1;    
 $wgLDAPBaseDNs = array( "nimei.local" => "dc=nimei,dc=com" );    
 $wgLDAPSearchAttributes = array( "nimei.local" => "sAMAccountName" );    
 $wgLDAPRetrievePrefs = array( "nimei.local" => "true" );    
 $wgShowExceptionDetails = true;    
3.重启apache生效 :service httpd restart

此时可以尝试用域帐户登录,但是域帐户不能包含特殊字符如:“.” “_” 否则无法正常登录,始终显示密码有误。

四、修改脚本支持特殊用户名

若windows登录名有“.”,修改wiki/extensions/ldap/LdapAuthentication.php

查找var $LDAPUsername;

在此句下添加 var $nimei;

查找$this->userdn = $this->getSearchString( $nimei );把括号内的值改成$winlname

$nimei = str_replace(' ','.',$username);在上面一行行上添加该行

若windows登录名有“_”,  修改wiki/extensions/ldap/LdapAuthentication.php

查找var $LDAPUsername; 

在此句下添加 var $nige;

查找function authentication ($username,$password = ' ')中的

$this->userdn = $this->getSearchString($username);

修改此句为$this->userdn = $this->getSearchString($nige);

同时在此句上添加 $nige = str_replace(' ','_',$username);

完成

使用admin登录,选择local本地登录

p_w_picpath