﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-SA Blog --系统管理员的博客生涯-随笔分类-Wiki</title><link>http://www.cnitblog.com/201/category/8703.html</link><description>书写自己的系统管理博客生涯</description><language>zh-cn</language><lastBuildDate>Mon, 26 Sep 2011 08:55:15 GMT</lastBuildDate><pubDate>Mon, 26 Sep 2011 08:55:15 GMT</pubDate><ttl>60</ttl><item><title>搭建mediawiki初体验</title><link>http://www.cnitblog.com/201/archive/2010/06/03/66483.html</link><dc:creator>David</dc:creator><author>David</author><pubDate>Thu, 03 Jun 2010 14:58:00 GMT</pubDate><guid>http://www.cnitblog.com/201/archive/2010/06/03/66483.html</guid><wfw:comment>http://www.cnitblog.com/201/comments/66483.html</wfw:comment><comments>http://www.cnitblog.com/201/archive/2010/06/03/66483.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/201/comments/commentRss/66483.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/201/services/trackbacks/66483.html</trackback:ping><description><![CDATA[<font style="font-size: 14pt;" color="#295200"><strong>
<table style="border-collapse: collapse;" width="90%" align="center" border="0" bordercolor="#111111" cellpadding="0" cellspacing="0">
    <tbody>
        <tr>
            <td align="center" bgcolor="#f5fdee">
            <table style="border-collapse: collapse;" width="100%" border="1" bordercolor="#a5bd6b" cellpadding="0" cellspacing="1">
                <tbody>
                    <tr>
                        <td align="center">
                        <table style="border-collapse: collapse; word-wrap: break-word;" width="100%" border="0" cellpadding="0" cellspacing="0">
                            <tbody>
                                <tr>
                                    <td align="center">
                                    <table style="border-collapse: collapse; word-wrap: break-word;" width="100%" border="0" cellpadding="0" cellspacing="0">
                                        <tbody>
                                            <tr>
                                                <td>
                                                <div id="art" style="margin: 15px;">
                                                把自己的学习经历简单的记录下来，以便以后参考。：）<br><br><font style="font-weight: 700;" size="2">一,安装<br></font>这个不用写什么了，配置apache，可以正常访问页面，启动mysql数据库。<br>然
                                                后把下载的mediawiki-1.9.3cn.zip解压到/var/www/html/目录下，更名为wiki（方便）。<br>进入wiki目录执
                                                行<br><br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>#chmod a+w config&nbsp;&nbsp; <br></code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                <br>在
                                                浏览器里输入 http://ip/wiki/index.php,开始安装。<br>主要是填写信息，如果出错的话，会显示红色提示信息。如果正确安装
                                                也会有提示成功。<br>安装成功后，把config下的LocalSettings.php移动到父母里。然后执行<br><br><br>
                                                <table style="border-collapse: collapse; width: 570px; height: 32px;" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>#chmod a-w config<br>
                                                            </code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                <br><font style="font-weight: 700;" size="2">二,常用配置<br><br></font><font size="2">1.
                                                开放图片上传功能：<br><br></font>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>#chmod a+w wiki/images<br>
                                                            <br>
                                                            #vi wiki/LocalSettings.php, <br>
                                                            <br>
                                                            把$wgEnableUploads =
                                                            false; 改为 $wgEnableUploads = true;</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                <br>2.
                                                更改网站左上角的logo<br>把自己的135x135象素的png图片放到wiki/skins/common/images
                                                下，并命名为wiki.png<br><br>3.常用的提示信息更改<br>特殊页面－&gt;系统界面<br><br>4.左侧工具条的定制<br>到
                                                系统界面<br>在搜寻栏中输入： sidebar， 然后编辑
                                                <table style="border-collapse: collapse; width: 552px; height: 192px;" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>* navigation<br>
                                                            ** mainpage|mainpage<br>
                                                            ** portal-url|portal<br>
                                                            ** currentevents-url|currentevents<br>
                                                            ** recentchanges-url|recentchanges<br>
                                                            ** randompage-url|randompage<br>
                                                            ** helppage|help<br>
                                                            ** sitesupport-url|sitesupport</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                第
                                                一行（一个前导*）表示导航栏的名称，其提示文本在&#8220;mediawiki:navigation&#8221;页面中修改，也可以直接输入文字信息（文字不能与内部
                                                mediawiki参数页面重名）。<br><br>後续行（两个前导*）表示实际导航栏的内容，其格式为&#8220;链接网址|显示文本&#8221;。其中，链接网址有三种
                                                类型：<br>&nbsp;&nbsp;&nbsp; * 直接输入http网址，例如直接输入&#8220;http://www.allwiki.com/bbs&#8221;<br>&nbsp;&nbsp;&nbsp; *
                                                文章页面标题，例如输入&#8220;天下维客&#8221;代表站内文章&#8220;{天下维客}&#8221;的网址<br>&nbsp;&nbsp;&nbsp; *
                                                mediawiki名字空间的参数页，例如输入&#8220;mainpage&#8221;代表文字信息参数页面&#8220;[[mediawiki:mainpage]]&#8221;的网址。此类
                                                字串还有helppage、portal-url等，请到special:allmessages里面查看更多的此类字串。 <br><br>显示文本的
                                                设定与导航栏名称设定类似，可以：<br><br>&nbsp;&nbsp;&nbsp; * 直接输入文字信息<br>&nbsp;&nbsp;&nbsp; *
                                                使用mediawiki名字空间参数页的标题缩写，例如上文默认文本中的&#8220;randompage&#8221;、&#8220;sitesupoort&#8221;分别代表
                                                &#8220;[[mediawiki:randompage]]&#8221;和&#8220;[[mediawiki:sitesupport]]&#8221;。 <br><br>用户可根据需求删
                                                除/增加mediawiki:sidebar页面中的项目，修改後左侧导航栏就会发生相应改变。（本方法适用于mediawiki默认的monobook
                                                皮肤风格） <br>举例示范如下：<br><br>* 导航文字<br>** 文章标题|文章标题项<br>**
                                                http://www.allwiki.com/bbs|直接网址项<br><br>5.Mediawiki增加友情链接侧栏<br>想在
                                                mediawiki工具栏下方添加友情链接，请打开skins/Monobook.php，找到如下两行：<br><br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code> &lt;?php if( $this-&gt;data['language_urls'] ) { ?&gt;&lt;div id="p-lang" class="portlet"&gt;<br>
                                                            &nbsp;&nbsp;&nbsp;&lt;h5&gt;&lt;?php $this-&gt;msg('otherlanguages') ?&gt;&lt;/h5&gt;</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                在
                                                前面添加：<br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>&lt;div class="portlet"
                                                            id="p-tb"&gt;<br>
                                                            &nbsp;&nbsp;&nbsp;&lt;h5&gt;友情链接&lt;/h5&gt;<br>
                                                            &nbsp;&nbsp;&nbsp;&lt;div class="pBody"&gt;<br>
                                                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;ul&gt;<br>
                                                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li id="feedlinks""&gt;&lt;a
                                                            href="http://www.allwiki.com" target="_blank"&gt;&lt;img
                                                            src="http://www.allwiki.com/images/allwiki_logo.gif" border="0"
                                                            alt="天下维客"
                                                            /&gt;&lt;/a&gt;&lt;/li&gt;<br>
                                                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li id="feedlinks""&gt;&lt;a href="http://zh.wikipedia.org"
                                                            target="_blank"&gt;&lt;img</code></p>
                                                            <p style="margin: 5px; line-height: 150%;"><code>src="http://upload.wikimedia.org/wikipedia/zh/c/ce/Wiki_button.png"
                                                            border="0" alt="中文维基百科" /&gt;&lt;/a&gt;&lt;/li&gt;<br>
                                                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/ul&gt;<br>
                                                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br>
                                                            &nbsp;&lt;/div&gt;</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                请
                                                根据需要，修改上面内容中的链接、图片网址和alt字串（文字提示）。<br>&nbsp;&nbsp;&nbsp; *
                                                注意：①上述内容必须使用UTF-8格式进行存盘，否则汉字显示乱码；②本修改只针对默认的monobook风格。<br><br>6.关于网站提速<br>很
                                                多人感到MediaWiki的运行速度非常之慢，其实这里面有很多原因是页面样式的问题。请到&#8220;参数设置&#8594;皮肤&#8221;中选择&#8220;科隆香水蓝44&#8221;，体会迅捷如飞
                                                的感觉！<br><br>7.时间显示设置<br>在LocalSetting.php的倒数第三行加入：<br><br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>$wgLocaltimezone = "Asia/Shanghai";
                                                            putenv("TZ=$wgLocaltimezone"); $wgLocalTZoffset =
                                                            date("Z")
                                                            / 60;</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                <br><br>8.
                                                阻止新用户注册<br>更改LocalSetting.php，添加<br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>$wgGroupPermissions['*' ]['createaccount']
                                                            = false;</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                注
                                                意：阻止新用户注册，此时管理员可以到特殊页面上的用户登录页面（Special:UserLogin）里，输入希望为其建立帐户的某人的用户名与电子邮
                                                件地址，然后点击通过eMail（by email）按钮递交，系统将创建帐号并将随机生成的密码发送到指定email里。<br><br>9.禁止匿名
                                                用户编辑<br>在LocalSetting.php里添加<br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>$wgGroupPermissions['*' ]['createaccount']
                                                            = false;<br>
                                                            $wgGroupPermissions['*' ]['read'] = true;<br>
                                                            $wgGroupPermissions['*' ]['edit'] = false;</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                <br>10.
                                                设置匿名用户可读内容<br><br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>$wgWhitelistRead
                                                            = array( "Main
                                                            Page", "Special:Userlogin" );<br>
                                                            $wgGroupPermissions['*' ]['read'] = false;</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                注
                                                意：具体需要对应自己的站点链接，而对于多字节语言的MediaWiki，例如中文首页链接index.php?title=%E9%A6%96%E9
                                                %A1%B5，这首页中文字符PHP可能无法正确解码。需要利用urldecode()函数转换一下，写为：<br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>$wgWhitelistRead = array( urldecode("%E9%A6%96%E9%A1%B5") ;</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                <br>11.对没有登录的
                                                用户移除页面顶部的讨论页链接<br>在LocalSetting.php里添加<br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>$wgShowIPinHeader = false;</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                <br>12.
                                                在数据库中手工改变用户组<br>用户权限包含在user_groups表中，该表有两个字段，分别是ug_user和ug_group。对用户所属的每
                                                一个组，都必须有一行插入。您必须从用户表(users)中获知用户的ID。以下的SQL查询语句将能完成此功能。在下例中将 1
                                                替换为从users表中得到的ID号.<br><br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>INSERT INTO user_groups (ug_user, ug_group) VALUES
                                                            ('1',
                                                            'bureaucrat'); INSERT INTO user_groups (ug_user, ug_group)
                                                            VALUES ('1', 'sysop');</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                <br>13.
                                                其它登陆用户不能编辑，只有DB2组的用户可以编辑<br>在LocalSetting.php里添加<br><br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>$wgGroupPermission['DB2']['read'] = true;<br>
                                                            $wgGroupPermissions['DB2']['edit']= true;<br>
                                                            $wgGroupPermissions['user']['edit']=false;</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                <font style="font-weight: 700;" size="2"><br>三,LDAP 认证</font><br><br>我用的plug版
                                                本是LdapAuthentication.php 1.1g。 把文件LdapAuthentication.php放在extension目录下。 <br><br>由
                                                于我想配置成域帐户登陆时，自动在wiki里创建用户的配置一直没有成功。所以就有一个麻烦的问题，需要手工在wiki创建好域账户。:(<br><br>我
                                                们的AD（Active Dirctory 活动目录）环境如下：<br>域名：exchange.com(EXCHANG1)<br>域服务
                                                器：rs.exchange.com<br>在LocalSetting.php里添加<br><br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>#  Setup ldap
                                                            authentication <br>
                                                            <br>
                                                            require_once("extensions/LdapAuthentication.php");<br>
                                                            $wgAuth=
                                                            new LdapAuthenticationPlugin();<br>
                                                            <br>
                                                            $wgLDAPDomainNames = array( "EXCHANG1" );<br>
                                                            $wgLDAPServerNames = array( "EXCHANG1"=&gt;"rs.exchange.com"  );<br>
                                                            $wgLDAPSearchStrings = array( "EXCHANG1"=&gt;"EXCHANG1\\USER-NAME" );<br>
                                                            <br>
                                                            $wgLDAPUseLocal =
                                                            false;<br>
                                                            $wgLDAPUpdateLDAP =
                                                            false;<br>
                                                            $wgLDAPMailPassword = false;<br>
                                                            <br>
                                                            $wgMinimalPasswordLength = 1;<br>
                                                            $wgLDAPEncryptionType = array("EXCHANG1"=&gt;"clear");</code></p>
                                                            <p style="margin: 5px; line-height: 150%;"><code>注：这里的&#8220;EXCHANG1"可以替换成
                                                            你喜欢的字，它将显示在登陆页面的域名条目里<br></code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                <br>由
                                                于先前域账户已经在wiki里添加（就是用wiki页面创建用户），现在就可以域验证了，登陆的用户必须输入域名和域密码才能正确登陆。<br>注：之前
                                                在wiki里创建域用户时设置的密码现在已经不能起作用。<br><br><font style="font-weight: 700;" size="2">四,LDAP SSL 补充</font><br>上面的LDAP验证是明文的，即当wiki服务器和AD服务器交换信息的时候没有加
                                                密的，那么你一定希望使用加密的方法了。meidawiki提供了使用SSL与AD交互的方式，但是我始终没有配置成功，比较郁闷：（<br>把自己的一
                                                些实验写下来，也许对会对其他的朋友有帮助<br><br>介绍一下环境：AD server的地址是192.168.0.117,
                                                主机名是exchangetest，域名是exchangetest.umtest.local（EXCHANGETEST1)。<br>LocalSetting.php
                                                里写入<br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>#add LDAP Auth config<br></code></p>
                                                            <p style="margin: 5px; line-height: 150%;"><code>require_once("extensions/LdapAuthentication.php");<br>
                                                            $wgAuth=
                                                            new LdapAuthenticationPlugin();<br>
                                                            $wgLDAPDomainNames = array( "exchangetest" );<br>
                                                            $wgLDAPServerNames = array( "exchangetest"=&gt;"192.168.0.117"
                                                            );<br>
                                                            $wgLDAPSearchStrings = array( "exchangetest"=&gt;"EXCHANGETEST1\\USER-NAME"
                                                            );<br>
                                                            $wgLDAPUseSSL =
                                                            false;  (这
                                                            里的值换成true，我的环境也能工作，但是好像是应该在装php的时候加入php-ldap的功能）<br>
                                                            $wgLDAPUseLocal =
                                                            false;<br>
                                                            $wgLDAPUpdateLDAP =
                                                            false;<br>
                                                            $wgLDAPMailPassword = false;<br>
                                                            $wgLDAPRetrievePrefs = false;<br>
                                                            $wgMinimalPasswordLength = 1;</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                通
                                                过上面的配置后，用户登陆时，登陆的用户名必须满足三点（1.必须在AD中存在，2.必须输入正确域密码，3.必须在meidawiki里存在此用户
                                                名），只有这样才能正确登陆wiki。<br><br>本以为<code>$wgLDAPUseSSL 这个选项会控制是否使用SSL，</code>$wgLDAPUseSSL=array
                                                <code>后来</code>才
                                                发现$wgLDAPUseSSL=true/false或者写成("exchangetest"=&gt;"ssl")<br>
                                                这个选项其实是没有用处，它并没有使用的SSL，而是使用程序默认的TLS。为什么这么说呢？<br><code>在配置文件后面添加<br></code>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>$wgLDAPDebug = 3;</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                得
                                                到的debug信息如下：<br><br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>Entering
                                                            authenticate<br>
                                                            Entering Connect<br>
                                                            Using TLS or not using encryption.<br>
                                                            Using servers: ldap://192.168.0.117<br>
                                                            Using TLS<br>
                                                            Connected successfully<br>
                                                            Entering getSearchString<br>
                                                            Doing a straight bind</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                看到了吧，是
                                                TLS。<br>那怎么才能是SSL生效呢？ 添加： <br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>$wgLDAPEncryptionType =
                                                            array("exchangetest"=&gt;"ssl");</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                这
                                                个选项才是使用SSL的关键。<br><br><br>好了，继续，下面把配置文件里关于LDAP认证的部分改为：<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;
                                                &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;
                                                &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;  &nbsp;&nbsp;&nbsp; <br>
                                                <table style="border-collapse: collapse; width: 552px; height: 41px;" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;">#ADD LDAP Auth Config<br></p>
                                                            <p style="margin: 5px; line-height: 150%;">$require_once("extensions/LdapAuthentication.php");<br>
                                                            $wgAuth= new LdapAuthenticationPlugin();<br>
                                                            <br>
                                                            $wgLDAPDomainNames = array( "exchangetest" );<br>
                                                            $wgLDAPServerNames = array(
                                                            "exchangetest"=&gt;"exchangetest.exchangetest.umtest.local"&nbsp; );<br>
                                                            $wgLDAPProxyAgent =
                                                            array("exchangetest"=&gt;"cn=administrator,cn=users,dc=exchangetest,dc=umtest,dc=local");
                                                            <br>
                                                            $wgLDAPProxyAgentPassword = array("exchangetest"=&gt;"Password");<br>
                                                            $wgLDAPSearchAttributes = array ("exchangestest"=&gt;"sAMAccountName");<br>
                                                            $wgLDAPBaseDNs =
                                                            array("exchangetest"=&gt;"dc=exchangetest,dc=umtest,dc=local"); <br>
                                                            $wgLDAPEncryptionType = array("exchangetest"=&gt;"ssl");<br>
                                                            $wgMinimalPasswordLength = 1; <br>
                                                            $wgLDAPDebug = 3;<br><code>
                                                            <br>
                                                            </code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                <br>理论上该成功了，可是当我尝试在wiki页面登陆
                                                时，得到了如下信息：<br>Entering validDomain<br>User is using a valid domain.<br>Setting
                                                domain as: exchangetest<br>Entering getCanonicalName<br>Username isn't
                                                empty.<br>Munged username: Jma<br>Entering authenticate <br>Entering
                                                Connect<br>Using SSL<br>Using
                                                servers: ldaps://exchangetest.exchangetest.umtest.local<br>Connected
                                                successfully<br>Entering getSearchString<br>Doing a proxy bind<br>Failed
                                                to bind as cn=administrator,cn=users,dc=exchangetest,dc=umtest,dc=local
                                                <br>Failed to bind<br>User DN is blank<br>Entering strict.<br>Returning
                                                true in strict().<br>Entering modifyUITemplate<br><br>绑定用户错误。为什么会这样呢？我在
                                                AD的服务器上，使用ldp.exe的绑定功能，分别填写下面的信息：<br><br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;">user：cn=Administrator,cn=Users,dc=exchangetest,dc=umtest,dc=local
                                                            Password：R0ck1t
                                                            Domian: exchangetest.umtest.local</p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                然后绑定，得到了如
                                                下的信息：<br><br>
                                                <table style="border-collapse: collapse;" width="95%" bgcolor="#f1f1f1" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0">
                                                    <tbody>
                                                        <tr>
                                                            <td>
                                                            <p style="margin: 5px; line-height: 150%;"><code>-----------<br>
                                                            res = ldap_bind_s(ld, NULL,
                                                            &amp;NtAuthIdentity, 1158); // v.3<br>
                                                            &nbsp;&nbsp;&nbsp;&nbsp;{NtAuthIdentity: User='cn=Administrator,cn=Users,dc=exchangetest,dc=umtest,dc=local'; Pwd= &lt;unavailable&gt;; domain = 'exchangetest.umtest.local'.}<br>
                                                            Error &lt;49&gt;: ldap_bind_s() failed: Invalid Credentials.<br>
                                                            Server error: 8009030C: LdapErr: DSID-0C09043E, comment: AcceptSecurityContext error, data 0,
                                                            vece<br>
                                                            0x31 = ldap_unbind(ld)</code></p>
                                                            </td>
                                                        </tr>
                                                    </tbody>
                                                </table>
                                                <br>从倒数第三行可以看
                                                到，有个无效的证书，我想绑定错误，就是应为这个原因吧！<br><br>当用ldap.exe绑定的时候去掉域信息，只添绑定用户和密码，就可以正常绑
                                                定。 原因？？？？<br><br>总结：我想我失败的原因是因为
                                                缺乏正确的数字证书，所以导致我的AD服务器SSL没有正确开启。<br><br><br>一定要确定自己的AD服务器是否启用SSL（默
                                                认是启用的），如何验证呢？<br>为了验证自己的AD是否可以通过SSL连接，我用ldp.exe来测试。（ldp.exe一般如果装上了AD服务，它
                                                会被装上）<br>（1）填入域名：exchangetest.exchangetest.umtest.local,
                                                端口389，不选择其它的选项，然后连接，可以显示一些AD的配置信息：<br>ld =
                                                ldap_open("exchangetest.exchangetest.umtest.local", 389);<br>Established
                                                connection to exchangetest.exchangetest.umtest.local.<br>Retrieving
                                                base DSA information...<br>Result &lt;0&gt;: (null)<br>Matched DNs: <br>Getting
                                                1 entries:<br>&gt;&gt; Dn: <br>&nbsp;&nbsp;&nbsp; 1&gt; currentTime: 10/22/2007
                                                10:5:44 China Standard Time China Standard Time; <br><br>（2）把端口改为636（这事
                                                AD启用ssl后使用的端口），选项里选上SSL，然后再连接，如果成功那说明SSL功能正常，否则会提示错误。<br><br>注：在为 LDAP 请求启用 SSL 之前，DC（Dmain Control）
                                                必须安装数字证书，且数字证书的格式必须正确，以确保 LDAP 应用程序正常运行。 <br><br>如果哪位大侠配置成功了，也一定要
                                                写篇心得啊，好让小弟们学习一下。<br><br><font size="3"><strong> 五.参考</strong> </font><br><br><strong> Extension:LDAP
                                                Authentication</strong>  &nbsp;&nbsp;<br>http://www.mediawiki.org/wiki/LDAP<br><strong> Extension:LDAP
                                                Authentication/Configuration Examples</strong> <br>http://www.mediawiki.org/wiki/Extension:LDAP_Authentication/Configuration_Examples<br><strong> Extension:LDAP
                                                Authentication/Smartcard Configuration Examples</strong> <br>http://www.mediawiki.org/wiki/Extension:LDAP_Authentication/Smartcard_Configuration_Examples<br><br>
                                                </div>
                                                </td>
                                            </tr>
                                        </tbody>
                                    </table>
                                    <p style="line-height: 150%; margin: 5px;">
                                    </p>
                                    </td>
                                </tr>
                                <tr>
                                    <td align="center" height="25">
                                    <font color="#295200">发表于： 2007-11-05 ，修改于： 2008-01-18
                                    10:16，已浏览3052次，有评论4条</font>
                                    <a href="http://www.cublog.cn/u2/star.php?blogid=22677&amp;artid=415113" id="star" onclick="NewWindows(this.href);return false;" title="推荐这篇文章">推
                                    荐</a>
                                    <a href="http://www.cublog.cn/u2/complaint.php?blogid=22677&amp;artid=415113" id="complaint" onclick="NewWindows(this.href);return false;" title="投诉这篇文章">投诉</a>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                        </td>
                    </tr>
                </tbody>
            </table>
            </td>
            <td width="18" background="../../templates/newgreen/images/bg_art_right.gif"><br></td>
        </tr>
        <tr>
            <td width="18" height="28"><img src="http://www.cublog.cn/templates/newgreen/images/bg_art_left_bottom.gif" alt="" border="0"></td>
            <td background="../../templates/newgreen/images/bg_art_bottom.gif"><br></td>
            <td width="18" height="28"><img src="http://www.cublog.cn/templates/newgreen/images/bg_art_right_bottom.gif" alt="" border="0"></td>
        </tr>
    </tbody>
</table>
<strong xmlns="http://www.w3.org/1999/xhtml"><br>
</strong>
<table style="border-collapse: collapse;" width="90%" align="center" border="1" bordercolor="#a5bd6b" cellpadding="0" cellspacing="1">
    <tbody>
        <tr>
            <td style="color: #295200;" bgcolor="#eff7de" height="25"> <strong>网友评论</strong></td>
        </tr>
        <tr>
            <td bgcolor="#ffffff" height="1"><br></td>
        </tr>
        <tr>
            <td align="center" bgcolor="#f9f5e7">
            <table style="border-collapse: collapse; color: #295200; word-wrap: break-word;" width="100%" align="center" border="0" cellpadding="0" cellspacing="0">
                <tbody>
                    <tr>
                        <td valign="top" width="60"><strong>内容：</strong></td>
                        <td valign="top" width="580">
                        <pre style="line-height: 150%; margin: 0px;" wrap="break-word">最担心wiki&nbsp;不支持域帐号登录，文章帮我解惑了。多谢。</pre>
                        </td>
                    </tr>
                    <tr height="25">
                        <td colspan="2" style="color: #737373; font-size: 8pt;">
                        本站网友评论于：2008-01-16 00:38:02     （221.221.155.★）
                        </td>
                    </tr>
                    <tr>
                        <td colspan="3" height="15"><br></td>
                    </tr>
                    <tr>
                        <td colspan="3"><img src="http://www.cublog.cn/templates/newgreen/images/middle_line.gif" alt="" border="0"></td>
                    </tr>
                    <tr>
                        <td valign="top" width="60"><strong>内容：</strong></td>
                        <td valign="top" width="580">
                        <pre style="line-height: 150%; margin: 0px;" wrap="break-word">补充：<br><br>在LDAP认证这部分里，如果服务器不是windows的AD，而是Linux的OpenLdap，那么配置文件里:<br><br>$wgLDAPSearchStrings&nbsp;=&nbsp;array(&nbsp;"exchangetest"=&gt;"EXCHANGETEST1\\USER-NAME"&nbsp;);<br><br>应改为：<br><br>$wgLDAPSearchStrings&nbsp;=&nbsp;array(&nbsp;"ROCKET1"=&gt;"uid=USER-NAME,ou=People,dc=rocketsoftware,dc=cn"&nbsp;);</pre>
                        </td>
                    </tr>
                </tbody>
            </table>
            </td>
        </tr>
    </tbody>
</table>
<strong xmlns="http://www.w3.org/1999/xhtml">	</strong><br></strong></font> <img src ="http://www.cnitblog.com/201/aggbug/66483.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/201/" target="_blank">David</a> 2010-06-03 22:58 <a href="http://www.cnitblog.com/201/archive/2010/06/03/66483.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>