设为首页 收藏本站
查看: 797|回复: 0

[经验分享] mediawiki中localsettings.php的配置方法

[复制链接]

尚未签到

发表于 2015-8-29 09:14:16 | 显示全部楼层 |阅读模式
mediawiki的localsettings.php是重要的配置文件,很多选项信息及功能扩展要修改它。

代码的添加位置

如需在localsettings.php中添加代码,则应该尽量添加在文件后部,这有两个原因:

1.     个人定制的信息聚集在一起,方便以后查找

2.     修改代码可能依赖本文件开始的代码,例如

require_once("includes/DefaultSettings.php" );

中就有很多原始设定。添加的代码必须位于这些代码之后。

举例如下:(……代表localsettings.php中以前的代码)

……

require_once("extensions/inputbox.php");/*2006-5-29修改*/

$wgGroupPermissions['*']['read']= false; /*禁止匿名用户阅读*/

$wgGroupPermissions['user']['read'] = true;


?>

如果不是添加而只是修改,找到相应代码进行改动即可。

UTF-8文件的保存

localsettings.php修改必须以UTF-8格式保存,并且不能包含Unicode标记(BOM)。否则保存之后,mediawiki可能无法正常运行

例如:用EmEditor保存时,选择“另存为”菜单,然后按下图进行选项调整:

Image:Emeditor save utf8.png

如何设定时区?

在LocalSettings.php的某行添加以下代码:(中国大陆处于+8时区)

$wgLocalTZoffset="+8";

权限的设定

在哪里设定?

权限的设定应该在localsettings.php中添加、修改代码。参见localsettings.php的修改方法

(mediawiki的初始权限设定保存在includes/defaultsettings.php中,可以参考这里的写法,但不要直接改动这里

如何设定权限?

权限设定代码如下:

$wgGroupPermissions['用户组']['权限名称'] = 取值;

·        用户组:设定权限的目标范围,*代表所有用户组,user代表登录用户,sysop代表管理员。更详细的介绍参见mediawiki的用户组。


注意:没有单独的匿名用户组。

·        权限名称:用户注册、页面访问、页面修改等都有单独的权限名称,参见下文说明。

·        取值:true代表允许,false代表禁止。二者取一。

一旦你更新了localsettings.php,修改内容会即时生效。

设定实例:

例如禁止匿名用户修改页面:


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

$wgGroupPermissions['user']['edit']= true;


   

说明:由于无法单独控制匿名用户组,所以采用*首先对所有用户进行修改限制;然后单独对登录用户打开修改权限。


由于管理员也是登录用户,所以不必单独继续设置?(欢迎补充资料)


可用的权限


   

mediawiki已经内置了很多权限,到mediawiki 1.6基本完善,后续版本仍有少量补充。例如,用户注册、页面访问、页面修改、文件上传等都有单独的权限可供配置,从而使站点有良好的权限控制。常用权限如下:


   


·        read:页面浏览

·        edit:编辑页面

·        createpage:创建新文章

·        createaccount:创建帐户

·        move:页面移动/文章改名

·        upload:图片及文件上传


   

此外,mediawiki的权限具有良好的扩展性,可以增加细分的权限并进行扩展(extension)进行控制。


   

在数据库中手工改变用户组


   

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


   

_insertINTOuser_groups (ug_user, ug_group) VALUES ('1', 'bureaucrat');

_insertINTOuser_groups (ug_user, ug_group) VALUES ('1', 'sysop');


   

管理组权限


   

要改变已有组的访问等级或添加新组,您需要能通过shell/ftp访问MediaWiki所运行的机器。您可以如下例所示在LocalSettings.php中将许可移除或添加到一个组.


   

禁止匿名访问者创建帐号(它取代了1.4中的 $wgWhitelistAccount)


   

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


   

要求用户登录后才能编辑(它取代了1.4中的$wgWhitelistEdit)


   

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


   

以下设置尽管不值得做,但可能您还是要做


   

$wgShowIPinHeader= false; # 对于没有登录的用户


   

它将对没有登录的用户移除页面顶部的讨论页链接,这从1.4以来没有改变.


   

如果设置了$wgWhitelistRead,您必须同时禁用'read'许可。这将作用在匿名帐户上。首页和登录页所用的任何CSS和JS页面也是可访问的,这将防止IE的脚本错误对话框出现.


   

$wgWhitelistRead = array( "首页", "Special:Userlogin","-", "MediaWiki:Monobook.css" );

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


   

在此列表中,首页并不是强制性的。要避免"请先登录"的重定向页,您可以改变includes/OutputPage.php中的loginToUse():


   

functionloginToUse() {

            $titleObj = Title::makeTitle( NS_SPECIAL, "Userlogin" );

            $this->redirect( $titleObj->getFullURL() );

}


   

您也可以定义新组,随后可以通过Special:Userrights(用户权限管理)为它添加用户:


   

$wgGroupPermissions['ninja']['delete'] = true;

$wgGroupPermissions['ninja']['block'] = true;

$wgGroupPermissions['ninja']['bot'] = true;


   

默认


   

作为参考,这里是在1.6中默认的组/许可(在includes/DefaultSettings.php中):


   

// 所有访问者隐含所在的组

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

$wgGroupPermissions['*'            ]['read']                    = true;

$wgGroupPermissions['*'            ]['edit']                    = true;

$wgGroupPermissions['*'            ]['createpage']              = true;

$wgGroupPermissions['*'            ]['createtalk']              = true;


// 所有登录用户隐含所在的组

$wgGroupPermissions['user']['move']                    = true;

$wgGroupPermissions['user']['read']                    = true;

$wgGroupPermissions['user']['edit']                    = true;

$wgGroupPermissions['user']['createpage']              = true;

$wgGroupPermissions['user']['createtalk']              = true;

$wgGroupPermissions['user']['upload']                  = true;

$wgGroupPermissions['user']['reupload']                = true;

$wgGroupPermissions['user']['reupload-shared'] = true;

$wgGroupPermissions['user']['minoredit']               = true;


// 所有通过 $wgAutoConfirmAge 的用户隐含所在的组

$wgGroupPermissions['autoconfirmed']['autoconfirmed']= true;


// 具有机器人特权的用户可使他们的编辑默认在各种日志页面隐藏起来

$wgGroupPermissions['bot'          ]['bot']                     = true;

$wgGroupPermissions['bot'          ]['autoconfirmed']           = true;


// 大多数额外的许可功能都在这里

$wgGroupPermissions['sysop']['block']                   = true;

$wgGroupPermissions['sysop']['createaccount']           = true;

$wgGroupPermissions['sysop']['delete']                  = true;

// 可以查看被删除的条目,单不能查看或重新载入被删除的文本

$wgGroupPermissions['sysop']['deletedhistory']          = true;

$wgGroupPermissions['sysop']['editinterface']           = true;

$wgGroupPermissions['sysop']['import']                  = true;

$wgGroupPermissions['sysop']['importupload']            = true;

$wgGroupPermissions['sysop']['move']                    = true;

$wgGroupPermissions['sysop']['patrol']                  = true;

$wgGroupPermissions['sysop']['protect']                 = true;

$wgGroupPermissions['sysop']['rollback']                = true;

$wgGroupPermissions['sysop']['upload']                  = true;

$wgGroupPermissions['sysop']['reupload']                = true;

$wgGroupPermissions['sysop']['reupload-shared']= true;

$wgGroupPermissions['sysop']['unwatchedpages']= true;

$wgGroupPermissions['sysop']['autoconfirmed']           = true;


   

管理员权限说明


   

mediawiki中,默认具有两类管理员:

普通管理员(Sysop)

默认具有删除文章、保护页面、查封用户等权限。

行政管理员(Bureaucrat)

或称行政员,相当于一般系统中的站长,拥有任免普通管理员(Sysop)的权限。


权限列表

sysop

行政员


特殊页面拥有权利:



导入页面

导入页面


未监视页面

未监视页面


查封IP地址

查封IP地址



用户权限管理



普通页面拥有权利:



保护

移动


删除



移动



编辑



普通页面拥有权利:





使用方法分析

特别提示

sysop拥有删除权限,而行政员拥有分配用户权限.

系统安装完成之后,作为管理员,身份是 sysop+行政员 ,也就是说,我们集两者功能于一身,可是在实际使用中,

当我们需要很多人帮助我们进行管理的时候, 通常会将 sysop 权限加给我们的管理人员,但是 sysop 的删除权限显的有点

让人不放心,因此,我们可以将sysop的删除权限转移到 行政员的身上.

方法如下:

打开安装根目录 LocalSettings.php增加下列

$wgGroupPermissions['sysop']['delete']= false;

$wgGroupPermissions['bureaucrat']['delete']= true;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-105757-1-1.html 上篇帖子: php curl模拟登陆163邮箱 下篇帖子: 利用php代码实现关键字百度排名批量查询
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表