SA Blog --系统管理员的博客生涯

书写自己的系统管理博客生涯
posts(330) comments(254) trackbacks(0)
  • IT博客
  • 联系
  • RSS 2.0 Feed 聚合
  • 管理

常用链接

  • 我的随笔
  • 我的评论
  • 我参与的随笔

留言簿

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔分类(395)

  • *UNIX系统(148)
  • Cloud(3)
  • Moive
  • Music(1)
  • OpenStack(7)
  • openstack
  • Wiki(1)
  • Windows系统(32)
  • 其他(33)
  • 娱乐
  • 存储相关(22)
  • 存储网络(10)
  • 常用工具下载(25)
  • 数据库应用技术(53)
  • 网络技术(41)
  • 英语
  • 虚拟化(19)

随笔档案(330)

  • 2020年9月 (1)
  • 2020年8月 (1)
  • 2020年7月 (8)
  • 2020年4月 (1)
  • 2020年2月 (1)
  • 2020年1月 (1)
  • 2019年9月 (2)
  • 2019年4月 (1)
  • 2016年1月 (1)
  • 2015年12月 (1)
  • 2015年7月 (4)
  • 2015年5月 (2)
  • 2014年3月 (2)
  • 2014年1月 (1)
  • 2013年12月 (1)
  • 2013年3月 (5)
  • 2013年2月 (4)
  • 2012年12月 (1)
  • 2012年11月 (2)
  • 2012年9月 (2)
  • 2012年8月 (1)
  • 2012年6月 (1)
  • 2012年5月 (1)
  • 2012年1月 (1)
  • 2011年12月 (2)
  • 2011年10月 (1)
  • 2011年9月 (3)
  • 2011年8月 (1)
  • 2011年7月 (5)
  • 2011年6月 (3)
  • 2011年5月 (5)
  • 2011年4月 (2)
  • 2011年3月 (2)
  • 2011年2月 (1)
  • 2011年1月 (5)
  • 2010年12月 (1)
  • 2010年11月 (4)
  • 2010年9月 (13)
  • 2010年8月 (4)
  • 2010年7月 (5)
  • 2010年6月 (5)
  • 2010年5月 (13)
  • 2010年4月 (10)
  • 2010年3月 (5)
  • 2010年2月 (1)
  • 2010年1月 (9)
  • 2009年12月 (5)
  • 2009年11月 (5)
  • 2009年10月 (1)
  • 2009年9月 (3)
  • 2009年8月 (2)
  • 2009年7月 (6)
  • 2009年6月 (3)
  • 2009年5月 (2)
  • 2009年4月 (1)
  • 2009年3月 (2)
  • 2009年2月 (3)
  • 2008年12月 (3)
  • 2008年11月 (1)
  • 2008年10月 (9)
  • 2008年9月 (5)
  • 2008年8月 (3)
  • 2008年7月 (1)
  • 2008年6月 (1)
  • 2008年5月 (2)
  • 2008年4月 (1)
  • 2008年3月 (1)
  • 2008年2月 (3)
  • 2008年1月 (1)
  • 2007年12月 (5)
  • 2007年11月 (1)
  • 2007年10月 (6)
  • 2007年9月 (4)
  • 2007年8月 (4)
  • 2007年7月 (34)
  • 2007年6月 (1)
  • 2007年4月 (2)
  • 2007年3月 (1)
  • 2007年2月 (1)
  • 2006年11月 (1)
  • 2006年9月 (4)
  • 2006年8月 (4)
  • 2006年7月 (1)
  • 2006年6月 (10)
  • 2006年5月 (3)
  • 2006年4月 (14)
  • 2006年2月 (6)
  • 2006年1月 (6)
  • 2005年12月 (12)

收藏夹(5)

  • Other(5)

IT技术

  • MSDN 库(中文)
  • 欢迎使用 MSDN 库(中文),MSDN 库为使用 Microsoft® 工具、产品、技术和服务的开发人员提供必不可少的信息资源。MSDN 库包含操作方法和参考文档、示例代码、技术文章和其他内容。请浏览目录或使用搜索功能来查找所需内容。

健康

  • 体检咨询
  • 北京体检 体检咨询
  • 足医生
  • 足医生

友情链接

  • TestLink中文论坛
  • Testlink 中文论坛
  • 备案专题
  • 备案专题
  • 微软大中华区安全博客
  • 微软大中华区安全博客

存储技术

  • doit存储
  • doit 存储,存储热门论坛
  • ITPUB
  • Oracle DBA 热门中文社区
  • TechTarget IT专家网
  • 蓝德科技

网络技术

  • ChinaUnix 中文社区
  • ChinaUnix 热门中文社区

搜索

  •  

最新评论

  • 1. re: 吐槽一下阿里系软件,就是天天的升级???
  • 评论内容较长,点击标题查看
  • --David
  • 2. re: Symantec Backup exec system recovery 2010(BESR 2010)故障汇总
  • 评论内容较长,点击标题查看
  • --112
  • 3. re: OpenStack安装部署管理中常见问题解决方法(OpenStack-Lite-FAQ)
  • /home/stack/devstack/tools/worlddump.py -d /home/stack/logs
    求救这是什么问题啊。
  • --陈晓龙
  • 4. re: nokia 手机密码忘记后破解
  • nokia 2630,密码不见,恳请帮忙,谢谢
    串号:355219037959407
    lipolipo@gmail.com
  • --沈同学
  • 5. re: chroot 工具 jailkit 限制用户 活动范围 和 权限 _ 笔记
  • 是一个很好的工具嘛。感谢分享。
  • --少林功夫好

阅读排行榜

评论排行榜

View Post

搭建mediawiki初体验

把自己的学习经历简单的记录下来,以便以后参考。:)

一,安装
这个不用写什么了,配置apache,可以正常访问页面,启动mysql数据库。
然 后把下载的mediawiki-1.9.3cn.zip解压到/var/www/html/目录下,更名为wiki(方便)。
进入wiki目录执 行

#chmod a+w config  


在 浏览器里输入 http://ip/wiki/index.php,开始安装。
主要是填写信息,如果出错的话,会显示红色提示信息。如果正确安装 也会有提示成功。
安装成功后,把config下的LocalSettings.php移动到父母里。然后执行


#chmod a-w config


二,常用配置

1. 开放图片上传功能:

#chmod a+w wiki/images

#vi wiki/LocalSettings.php,

把$wgEnableUploads = false; 改为 $wgEnableUploads = true;


2. 更改网站左上角的logo
把自己的135x135象素的png图片放到wiki/skins/common/images 下,并命名为wiki.png

3.常用的提示信息更改
特殊页面->系统界面

4.左侧工具条的定制
到 系统界面
在搜寻栏中输入: sidebar, 然后编辑

* navigation
** mainpage|mainpage
** portal-url|portal
** currentevents-url|currentevents
** recentchanges-url|recentchanges
** randompage-url|randompage
** helppage|help
** sitesupport-url|sitesupport

第 一行(一个前导*)表示导航栏的名称,其提示文本在“mediawiki:navigation”页面中修改,也可以直接输入文字信息(文字不能与内部 mediawiki参数页面重名)。

後续行(两个前导*)表示实际导航栏的内容,其格式为“链接网址|显示文本”。其中,链接网址有三种 类型:
    * 直接输入http网址,例如直接输入“http://www.allwiki.com/bbs”
    * 文章页面标题,例如输入“天下维客”代表站内文章“{天下维客}”的网址
    * mediawiki名字空间的参数页,例如输入“mainpage”代表文字信息参数页面“[[mediawiki:mainpage]]”的网址。此类 字串还有helppage、portal-url等,请到special:allmessages里面查看更多的此类字串。

显示文本的 设定与导航栏名称设定类似,可以:

    * 直接输入文字信息
    * 使用mediawiki名字空间参数页的标题缩写,例如上文默认文本中的“randompage”、“sitesupoort”分别代表 “[[mediawiki:randompage]]”和“[[mediawiki:sitesupport]]”。

用户可根据需求删 除/增加mediawiki:sidebar页面中的项目,修改後左侧导航栏就会发生相应改变。(本方法适用于mediawiki默认的monobook 皮肤风格)
举例示范如下:

* 导航文字
** 文章标题|文章标题项
** http://www.allwiki.com/bbs|直接网址项

5.Mediawiki增加友情链接侧栏
想在 mediawiki工具栏下方添加友情链接,请打开skins/Monobook.php,找到如下两行:

<?php if( $this->data['language_urls'] ) { ?><div id="p-lang" class="portlet">
   <h5><?php $this->msg('otherlanguages') ?></h5>

在 前面添加:

<div class="portlet" id="p-tb">
   <h5>友情链接</h5>
   <div class="pBody">
     <ul>
     <li id="feedlinks""><a href="http://www.allwiki.com" target="_blank"><img src="http://www.allwiki.com/images/allwiki_logo.gif" border="0" alt="天下维客" /></a></li>
     <li id="feedlinks""><a href="http://zh.wikipedia.org" target="_blank"><img

src="http://upload.wikimedia.org/wikipedia/zh/c/ce/Wiki_button.png" border="0" alt="中文维基百科" /></a></li>
     </ul>
     </div>
 </div>

请 根据需要,修改上面内容中的链接、图片网址和alt字串(文字提示)。
    * 注意:①上述内容必须使用UTF-8格式进行存盘,否则汉字显示乱码;②本修改只针对默认的monobook风格。

6.关于网站提速
很 多人感到MediaWiki的运行速度非常之慢,其实这里面有很多原因是页面样式的问题。请到“参数设置→皮肤”中选择“科隆香水蓝44”,体会迅捷如飞 的感觉!

7.时间显示设置
在LocalSetting.php的倒数第三行加入:

$wgLocaltimezone = "Asia/Shanghai"; putenv("TZ=$wgLocaltimezone"); $wgLocalTZoffset = date("Z") / 60;



8. 阻止新用户注册
更改LocalSetting.php,添加

$wgGroupPermissions['*' ]['createaccount'] = false;

注 意:阻止新用户注册,此时管理员可以到特殊页面上的用户登录页面(Special:UserLogin)里,输入希望为其建立帐户的某人的用户名与电子邮 件地址,然后点击通过eMail(by email)按钮递交,系统将创建帐号并将随机生成的密码发送到指定email里。

9.禁止匿名 用户编辑
在LocalSetting.php里添加

$wgGroupPermissions['*' ]['createaccount'] = false;
$wgGroupPermissions['*' ]['read'] = true;
$wgGroupPermissions['*' ]['edit'] = false;


10. 设置匿名用户可读内容

$wgWhitelistRead = array( "Main Page", "Special:Userlogin" );
$wgGroupPermissions['*' ]['read'] = false;

注 意:具体需要对应自己的站点链接,而对于多字节语言的MediaWiki,例如中文首页链接index.php?title=%E9%A6%96%E9 %A1%B5,这首页中文字符PHP可能无法正确解码。需要利用urldecode()函数转换一下,写为:

$wgWhitelistRead = array( urldecode("%E9%A6%96%E9%A1%B5") ;


11.对没有登录的 用户移除页面顶部的讨论页链接
在LocalSetting.php里添加

$wgShowIPinHeader = false;


12. 在数据库中手工改变用户组
用户权限包含在user_groups表中,该表有两个字段,分别是ug_user和ug_group。对用户所属的每 一个组,都必须有一行插入。您必须从用户表(users)中获知用户的ID。以下的SQL查询语句将能完成此功能。在下例中将 1 替换为从users表中得到的ID号.

INSERT INTO user_groups (ug_user, ug_group) VALUES ('1', 'bureaucrat'); INSERT INTO user_groups (ug_user, ug_group) VALUES ('1', 'sysop');


13. 其它登陆用户不能编辑,只有DB2组的用户可以编辑
在LocalSetting.php里添加

$wgGroupPermission['DB2']['read'] = true;
$wgGroupPermissions['DB2']['edit']= true;
$wgGroupPermissions['user']['edit']=false;


三,LDAP 认证


我用的plug版 本是LdapAuthentication.php 1.1g。 把文件LdapAuthentication.php放在extension目录下。

由 于我想配置成域帐户登陆时,自动在wiki里创建用户的配置一直没有成功。所以就有一个麻烦的问题,需要手工在wiki创建好域账户。:(

我 们的AD(Active Dirctory 活动目录)环境如下:
域名:exchange.com(EXCHANG1)
域服务 器:rs.exchange.com
在LocalSetting.php里添加

# Setup ldap authentication

require_once("extensions/LdapAuthentication.php");
$wgAuth= new LdapAuthenticationPlugin();

$wgLDAPDomainNames = array( "EXCHANG1" );
$wgLDAPServerNames = array( "EXCHANG1"=>"rs.exchange.com" );
$wgLDAPSearchStrings = array( "EXCHANG1"=>"EXCHANG1\\USER-NAME" );

$wgLDAPUseLocal = false;
$wgLDAPUpdateLDAP = false;
$wgLDAPMailPassword = false;

$wgMinimalPasswordLength = 1;
$wgLDAPEncryptionType = array("EXCHANG1"=>"clear");

注:这里的“EXCHANG1"可以替换成 你喜欢的字,它将显示在登陆页面的域名条目里


由 于先前域账户已经在wiki里添加(就是用wiki页面创建用户),现在就可以域验证了,登陆的用户必须输入域名和域密码才能正确登陆。
注:之前 在wiki里创建域用户时设置的密码现在已经不能起作用。

四,LDAP SSL 补充
上面的LDAP验证是明文的,即当wiki服务器和AD服务器交换信息的时候没有加 密的,那么你一定希望使用加密的方法了。meidawiki提供了使用SSL与AD交互的方式,但是我始终没有配置成功,比较郁闷:(
把自己的一 些实验写下来,也许对会对其他的朋友有帮助

介绍一下环境:AD server的地址是192.168.0.117, 主机名是exchangetest,域名是exchangetest.umtest.local(EXCHANGETEST1)。
LocalSetting.php 里写入

#add LDAP Auth config

require_once("extensions/LdapAuthentication.php");
$wgAuth= new LdapAuthenticationPlugin();
$wgLDAPDomainNames = array( "exchangetest" );
$wgLDAPServerNames = array( "exchangetest"=>"192.168.0.117" );
$wgLDAPSearchStrings = array( "exchangetest"=>"EXCHANGETEST1\\USER-NAME" );
$wgLDAPUseSSL = false; (这 里的值换成true,我的环境也能工作,但是好像是应该在装php的时候加入php-ldap的功能)
$wgLDAPUseLocal = false;
$wgLDAPUpdateLDAP = false;
$wgLDAPMailPassword = false;
$wgLDAPRetrievePrefs = false;
$wgMinimalPasswordLength = 1;

通 过上面的配置后,用户登陆时,登陆的用户名必须满足三点(1.必须在AD中存在,2.必须输入正确域密码,3.必须在meidawiki里存在此用户 名),只有这样才能正确登陆wiki。

本以为$wgLDAPUseSSL 这个选项会控制是否使用SSL,$wgLDAPUseSSL=array 后来才 发现$wgLDAPUseSSL=true/false或者写成("exchangetest"=>"ssl")
这个选项其实是没有用处,它并没有使用的SSL,而是使用程序默认的TLS。为什么这么说呢?
在配置文件后面添加

$wgLDAPDebug = 3;

得 到的debug信息如下:

Entering authenticate
Entering Connect
Using TLS or not using encryption.
Using servers: ldap://192.168.0.117
Using TLS
Connected successfully
Entering getSearchString
Doing a straight bind

看到了吧,是 TLS。
那怎么才能是SSL生效呢? 添加:

$wgLDAPEncryptionType = array("exchangetest"=>"ssl");

这 个选项才是使用SSL的关键。


好了,继续,下面把配置文件里关于LDAP认证的部分改为:
                                                                                  

#ADD LDAP Auth Config

$require_once("extensions/LdapAuthentication.php");
$wgAuth= new LdapAuthenticationPlugin();

$wgLDAPDomainNames = array( "exchangetest" );
$wgLDAPServerNames = array( "exchangetest"=>"exchangetest.exchangetest.umtest.local"  );
$wgLDAPProxyAgent = array("exchangetest"=>"cn=administrator,cn=users,dc=exchangetest,dc=umtest,dc=local");
$wgLDAPProxyAgentPassword = array("exchangetest"=>"Password");
$wgLDAPSearchAttributes = array ("exchangestest"=>"sAMAccountName");
$wgLDAPBaseDNs = array("exchangetest"=>"dc=exchangetest,dc=umtest,dc=local");
$wgLDAPEncryptionType = array("exchangetest"=>"ssl");
$wgMinimalPasswordLength = 1;
$wgLDAPDebug = 3;


理论上该成功了,可是当我尝试在wiki页面登陆 时,得到了如下信息:
Entering validDomain
User is using a valid domain.
Setting domain as: exchangetest
Entering getCanonicalName
Username isn't empty.
Munged username: Jma
Entering authenticate
Entering Connect
Using SSL
Using servers: ldaps://exchangetest.exchangetest.umtest.local
Connected successfully
Entering getSearchString
Doing a proxy bind
Failed to bind as cn=administrator,cn=users,dc=exchangetest,dc=umtest,dc=local
Failed to bind
User DN is blank
Entering strict.
Returning true in strict().
Entering modifyUITemplate

绑定用户错误。为什么会这样呢?我在 AD的服务器上,使用ldp.exe的绑定功能,分别填写下面的信息:

user:cn=Administrator,cn=Users,dc=exchangetest,dc=umtest,dc=local Password:R0ck1t Domian: exchangetest.umtest.local

然后绑定,得到了如 下的信息:

-----------
res = ldap_bind_s(ld, NULL, &NtAuthIdentity, 1158); // v.3
    {NtAuthIdentity: User='cn=Administrator,cn=Users,dc=exchangetest,dc=umtest,dc=local'; Pwd= <unavailable>; domain = 'exchangetest.umtest.local'.}
Error <49>: ldap_bind_s() failed: Invalid Credentials.
Server error: 8009030C: LdapErr: DSID-0C09043E, comment: AcceptSecurityContext error, data 0, vece
0x31 = ldap_unbind(ld)


从倒数第三行可以看 到,有个无效的证书,我想绑定错误,就是应为这个原因吧!

当用ldap.exe绑定的时候去掉域信息,只添绑定用户和密码,就可以正常绑 定。 原因????

总结:我想我失败的原因是因为 缺乏正确的数字证书,所以导致我的AD服务器SSL没有正确开启。


一定要确定自己的AD服务器是否启用SSL(默 认是启用的),如何验证呢?
为了验证自己的AD是否可以通过SSL连接,我用ldp.exe来测试。(ldp.exe一般如果装上了AD服务,它 会被装上)
(1)填入域名:exchangetest.exchangetest.umtest.local, 端口389,不选择其它的选项,然后连接,可以显示一些AD的配置信息:
ld = ldap_open("exchangetest.exchangetest.umtest.local", 389);
Established connection to exchangetest.exchangetest.umtest.local.
Retrieving base DSA information...
Result <0>: (null)
Matched DNs:
Getting 1 entries:
>> Dn:
    1> currentTime: 10/22/2007 10:5:44 China Standard Time China Standard Time;

(2)把端口改为636(这事 AD启用ssl后使用的端口),选项里选上SSL,然后再连接,如果成功那说明SSL功能正常,否则会提示错误。

注:在为 LDAP 请求启用 SSL 之前,DC(Dmain Control) 必须安装数字证书,且数字证书的格式必须正确,以确保 LDAP 应用程序正常运行。

如果哪位大侠配置成功了,也一定要 写篇心得啊,好让小弟们学习一下。

五.参考

Extension:LDAP Authentication   
http://www.mediawiki.org/wiki/LDAP
Extension:LDAP Authentication/Configuration Examples
http://www.mediawiki.org/wiki/Extension:LDAP_Authentication/Configuration_Examples
Extension:LDAP Authentication/Smartcard Configuration Examples
http://www.mediawiki.org/wiki/Extension:LDAP_Authentication/Smartcard_Configuration_Examples

发表于: 2007-11-05 ,修改于: 2008-01-18 10:16,已浏览3052次,有评论4条 推 荐 投诉



网友评论

内容:
最担心wiki 不支持域帐号登录,文章帮我解惑了。多谢。
本站网友评论于:2008-01-16 00:38:02 (221.221.155.★)

内容:
补充:

在LDAP认证这部分里,如果服务器不是windows的AD,而是Linux的OpenLdap,那么配置文件里:

$wgLDAPSearchStrings = array( "exchangetest"=>"EXCHANGETEST1\\USER-NAME" );

应改为:

$wgLDAPSearchStrings = array( "ROCKET1"=>"uid=USER-NAME,ou=People,dc=rocketsoftware,dc=cn" );

posted on 2010-06-03 22:58 David 阅读(6169) 评论(0)  编辑 收藏 引用 所属分类: *UNIX系统 、Wiki

只有注册用户登录后才能发表评论。
 
Powered by:
IT博客
Copyright © David