CenOS 安装 MediaWiki 详细步骤
前些日子突然想建一个自己的知识库。开始用delicious,后来担心那些链接打不开了;然后想到博客程序,但想想似乎还应该有更好的;最后想到了wiki。网上有免费的wiki程序,而我也有一个php空间,所以我便选择了口碑最好的mediawiki。
MediaWiki 官网:https://www.mediawiki.org
MediaWiki 下载:https://releases.wikimedia.org/mediawiki/
直接下载: mediawiki-1.23.0.tar.gz
安装步骤:
1、解压 mediawiki-1.23.0.tar.gz
tar zxvf mediawiki-1.23.0.tar.gz // 解压 tar.gz 文件
mv mediawiki-1.23.0 /var/www/html/mediawiki // 把 mediawiki 移到 apache 根目录
2、在浏览器输入:http://wiki.ithomer.net/index.php,安装wiki程序。
3、点击上图中的“set up the wiki”,按照提示逐步安装,如下:
点击“继续”,安装ImageMagick,请见我的博客:ImageMagick 安装方法
安装 intl PECL扩展,步骤如下:
sudo yum -y install libicu
sudo yum -y install libicu-devel.x86_64
sudo /usr/bin/pecl install php-devel // 可选
sudo /usr/bin/pecl install intl
sudo echo 'extension=intl.so' >> /etc/php.ini
/etc/init.d/httpd restart // 重启apache服务器,使 php.ini 生效
或参考我的博客: Ubuntu下安装php PECL扩展(CentOS安装)
安装完 ImageMagick 和 intl PECL 扩展后,界面如下:
这时候会看到一些表单,我捡一些我明白的写,剩下的就是我不懂,所以选择了默认,或者根本就没填的。
- Site name:wiki站点名称,我填的是“wiki-mimvp”。
- Contact e-mail:我填的是“wiki@mimvp.com”
- Language:我选的是zh-cn简体中文
- Copyright/license medadata:版权类型,我选的是GNU,公开的自由版权,允许他人复制、修改。
- Sysop account name:这是管理员的账户,自己用户名,一定要填好!
- password:管理员的密码
- MySQL server:“localhost” 或 "127.0.0.1:3378",若修改了端口号最好使用127.0.0.1:3378,心里默默祈祷能够通过。
- Database name、DB username、DB password:数据库名称、数据库用户名、数据库密码,这是我最愁的。我的空间买来的时候我是为了做独立博客用的,所以当时设置wordpress的时候在空间的控制面板里设置了这些东西。但后来因为不用作博客了,所以那个SQL设好了就一直放在了哪里。但时过境迁,我已经忘了到底哪个是Database name,哪个是DB username,更不记得密码了。后来想起当时配置wordpress的时候改过wp-config.php,所以赶快找了出来。还真有那些信息。
四、然后就开始确定安装
谢天谢地,一次就安装成功了。
安装成功页面的最后会提醒你把config目录下的LocalSettings.php移到上级目录中,对于我来说就是mediawiki-1.6.10目录。
然后,再点击http://www.landeng.net/mediawiki-1.6.10/index.php,就是已经安装好的wiki了。
说明:mediawiki-1.23.0、1.31.0 版本已经没有了 config 目录,因此跳过此步骤
五、出于安全考虑(其实我也不懂),把config目录删除。
说明:mediawiki-1.23.0、1.31.0 版本已经没有了 config 目录,因此跳过此步骤
六、因为我的wiki装上只是想自己记录知识,并不希望公众参与,所以到网上找到了两段代码,一是禁止别人注册,二是禁止游客修改的。
- 代码添加页面:LocalSettins.php
-
添加位置:
require_once( "includes/DefaultSettings.php" )
语句之后 - 禁止新用户注册的代码:
#Prevent new user registrations
$wgWhitelistAccount = array ( "user" => 0, "sysop" => 1, "developer" => 1 );
- 禁止匿名用户编辑的代码:
#$wgGroupPermissions = array();
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['read'] = false;
$wgGroupPermissions['*']['edit'] = false;
七、后来发现我的wiki目录居然是mediawiki-1.6.10,烦恼不已
我知道不能直接该目录名,因为系统已经配置好目录了,牵一发而动全身。于是我想到了重装。于是我在ftp里删掉了mediawiki-1.6.10所有的东西,文件夹重新上传,并改名为lib,重新安装。虽然成功了,但我发现有的链接仍认准了mediawiki-1.6.10目录改不过来。我觉得很奇怪。思来想去,我到了空间的控制面板里把sql数据库里自动生成的那些数据表全都删了,即把叫“DB username”的那个数据库全部清空。然后再重新安装wiki,问题终于解决了!
替换wiki.logo
替换路径: /var/www/html/mediawiki/skins/common/images/wiki.png
HTML路径:http://wiki.ithomer.net/skins/common/images/wiki.png
默认Logo大小: 135 * 135 px
MediaWiki使用手册导航
安装MediaWiki之后,用户的权限设置是完全开放的,需要做一些设置,对匿名用户的设置可以从修改LocalSettings.php入手,下载该文件,然后按照希望设置的用户权限,在文件中插入对应的设置语句,存储后再上传回去就可以了。
通过下面介绍的设置方法,可以阻止匿名用户注册,又或者阻止他们编辑,要求注册后才能够编辑,还可以设定注册前匿名用户可以查看那些页面。而在设置新用户的注册之后,管理人员仍可通过特殊页面手动为其他人创建用户。而用户的权限,则可以通过特殊页面内的User rights management进行管理。
LocalSettings.php用户权选设置相关选项
基本语法
$wgGroupPermissions['group']['right'] = true /* 或者 false */;
group代表用户组,right 是权限。如果是true ,就说明该用户组拥有该项权限,如果是false,就说明该用户组没有该项权限。
如果一个用户属于多个用户组,那么该用户拥有这些用户组中最高的权限。所有用户(包括未注册用户)包含在*用户组中,所有注册的用户包含在user用户组中。如果需要设置匿名用户不能编辑但是注册用户可以编辑,可以采取这样的方法,首先禁止所有用户编辑:
$wgGroupPermissions['*']['edit'] = false; // 禁止所有用户编辑
然后允许注册用户编辑:
$wgGroupPermissions['user']['edit'] = true; // 允许注册用户编辑
包含了所有用户,不仅仅是匿名用户(未注册用户),所以如果设置*的某一项权限是false,那么又要允许注册用户拥有该项权限就必须设置user的权限是true。
MediaWiki的默认设置
$wgGroupPermissions = array(); // Implicit group for all visitors $wgGroupPermissions['*']['createaccount'] = true; $wgGroupPermissions['*']['read'] = true; $wgGroupPermissions['*']['edit'] = true; $wgGroupPermissions['*']['createpage'] = true; $wgGroupPermissions['*']['createtalk'] = true; $wgGroupPermissions['*']['writeapi'] = true; //$wgGroupPermissions['*']['patrolmarks'] = false; // let anons see what was patrolled // Implicit group for all logged-in accounts $wgGroupPermissions['user']['move'] = true; $wgGroupPermissions['user']['move-subpages'] = true; $wgGroupPermissions['user']['move-rootuserpages'] = true; // can move root userpages //$wgGroupPermissions['user']['movefile'] = true; // Disabled for now due to possible bugs and security concerns $wgGroupPermissions['user']['read'] = true; $wgGroupPermissions['user']['edit'] = true; $wgGroupPermissions['user']['createpage'] = true; $wgGroupPermissions['user']['createtalk'] = true; $wgGroupPermissions['user']['writeapi'] = true; $wgGroupPermissions['user']['upload'] = true; $wgGroupPermissions['user']['reupload'] = true; $wgGroupPermissions['user']['reupload-shared'] = true; $wgGroupPermissions['user']['minoredit'] = true; $wgGroupPermissions['user']['purge'] = true; // can use ?action=purge without clicking "ok" $wgGroupPermissions['user']['sendemail'] = true; // Implicit group for accounts that pass $wgAutoConfirmAge $wgGroupPermissions['autoconfirmed']['autoconfirmed'] = true; // Users with bot privilege can have their edits hidden // from various log pages by default $wgGroupPermissions['bot']['bot'] = true; $wgGroupPermissions['bot']['autoconfirmed'] = true; $wgGroupPermissions['bot']['nominornewtalk'] = true; $wgGroupPermissions['bot']['autopatrol'] = true; $wgGroupPermissions['bot']['suppressredirect'] = true; $wgGroupPermissions['bot']['apihighlimits'] = true; $wgGroupPermissions['bot']['writeapi'] = true; #$wgGroupPermissions['bot']['editprotected'] = true; // can edit all protected pages without cascade protection enabled // Most extra permission abilities go to this group $wgGroupPermissions['sysop']['block'] = true; $wgGroupPermissions['sysop']['createaccount'] = true; $wgGroupPermissions['sysop']['delete'] = true; $wgGroupPermissions['sysop']['bigdelete'] = true; // can be separately configured for pages with > $wgDeleteRevisionsLimit revs $wgGroupPermissions['sysop']['deletedhistory'] = true; // can view deleted history entries, but not see or restore the text $wgGroupPermissions['sysop']['deletedtext'] = true; // can view deleted revision text $wgGroupPermissions['sysop']['undelete'] = true; $wgGroupPermissions['sysop']['editinterface'] = true; $wgGroupPermissions['sysop']['editusercss'] = true; $wgGroupPermissions['sysop']['edituserjs'] = true; $wgGroupPermissions['sysop']['import'] = true; $wgGroupPermissions['sysop']['importupload'] = true; $wgGroupPermissions['sysop']['move'] = true; $wgGroupPermissions['sysop']['move-subpages'] = true; $wgGroupPermissions['sysop']['move-rootuserpages'] = true; $wgGroupPermissions['sysop']['patrol'] = true; $wgGroupPermissions['sysop']['autopatrol'] = true; $wgGroupPermissions['sysop']['protect'] = true; $wgGroupPermissions['sysop']['proxyunbannable'] = true; $wgGroupPermissions['sysop']['rollback'] = true; $wgGroupPermissions['sysop']['trackback'] = true; $wgGroupPermissions['sysop']['upload'] = true; $wgGroupPermissions['sysop']['reupload'] = true; $wgGroupPermissions['sysop']['reupload-shared'] = true; $wgGroupPermissions['sysop']['unwatchedpages'] = true; $wgGroupPermissions['sysop']['autoconfirmed'] = true; $wgGroupPermissions['sysop']['upload_by_url'] = true; $wgGroupPermissions['sysop']['ipblock-exempt'] = true; $wgGroupPermissions['sysop']['blockemail'] = true; $wgGroupPermissions['sysop']['markbotedits'] = true; $wgGroupPermissions['sysop']['apihighlimits'] = true; $wgGroupPermissions['sysop']['browsearchive'] = true; $wgGroupPermissions['sysop']['noratelimit'] = true; $wgGroupPermissions['sysop']['versiondetail'] = true; $wgGroupPermissions['sysop']['movefile'] = true; #$wgGroupPermissions['sysop']['mergehistory'] = true; // Permission to change users' group assignments $wgGroupPermissions['bureaucrat']['userrights'] = true; $wgGroupPermissions['bureaucrat']['noratelimit'] = true; // Permission to change users' groups assignments across wikis #$wgGroupPermissions['bureaucrat']['userrights-interwiki'] = true; // Permission to export pages including linked pages regardless of $wgExportMaxLinkDepth #$wgGroupPermissions['bureaucrat']['override-export-depth'] = true; #$wgGroupPermissions['sysop']['deleterevision'] = true; // To hide usernames from users and Sysops #$wgGroupPermissions['suppress']['hideuser'] = true; // To hide revisions/log items from users and Sysops #$wgGroupPermissions['suppress']['suppressrevision'] = true; // For private suppression log access #$wgGroupPermissions['suppress']['suppressionlog'] = true; /** * The developer group is deprecated, but can be activated if need be * to use the 'lockdb' and 'unlockdb' special pages. Those require * that a lock file be defined and creatable/removable by the web * server. */ # $wgGroupPermissions['developer']['siteadmin'] = true;
阻止新用户注册
$wgGroupPermissions['*' ]['createaccount'] = false;
注意:阻止新用户注册,此时管理员可以到特殊页面上的用户登录页面(Special:UserLogin)里,输入希望为其建立帐户的某人的用户名与电子邮件地址,然后点击通过eMail(by email)按钮递交,系统将创建帐号并将随机生成的密码发送到指定email里。
设定匿名用户可看的页面
$wgWhitelistRead = array (”Main Page”, “Special:Userlogin”, “Wikipedia:Help”);
匿名用户只能看到Main Page、登录页面以及帮助页面。
修改其他的例子:$wgWhitelistRead = array (”首页”, “Special:Userlogin”, “某某Wiki:Help”);
设置匿名用户权限
- $wgGroupPermissions['*' ]['createaccount'] = false;
- $wgGroupPermissions['*' ]['read'] = true;
- $wgGroupPermissions['*' ]['edit'] = false;
- $wgGroupPermissions['user' ]['createaccount'] = true;
- $wgGroupPermissions['user' ]['edit'] = true;
设置匿名用户可读内容
- $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") ;
禁止匿名用户编辑
- #$wgGroupPermissions = array();
- $wgGroupPermissions['*createaccount'] = false;
- $wgGroupPermissions['*']['read'] = true;
- $wgGroupPermissions['*']['edit'] = false;
“编辑”标签仍会显示,但匿名用户点击时会被提示要求进行登录。
等式右侧的值决定各组成员的权限。左侧第一方括号内的’*'代表包括匿名用户在内的所有成员。登录用户控制存放在’user’组,这些将综合决定user_groups数据表中的成员权限。
这些设置取代了以前的wgWhitelistAccount和wgWhitelistEdit。
如此设定后,用户连首页和登录页面也看不到了。
MediaWiki使用手册导航
|
---|
讨论群组话题 进入群组
mediawiki 自定义配置
请参见米扑博客:mediawiki 常用参数设置
参考推荐:
Could not execute: /usr/sbin/sendmail
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2018-07-28 09:33:43
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!