mediawiki的安装使用修改详细教程-非常完全的入门教程

2017-02-26 19:43:00
小蜜蜂
原创
13132
作者:xiajian2010

缘起

决定投身web和互联网。最近一段时间,借着给老师搭建一个介绍研究成果的网站,从wordpress,到Ruby on Rails,到wiki类的网站都试了一遍,这次是对mediawiki的尝试。

正文

Mediawiki目前支持多种语言,当然对中文支持也是非常不错的。以下是Mediawiki的一些特点

1、PHP+MySQL

2、安装简单,mediawiki考虑到了各类群体,所以安装非常简单。只要你认真填写mysql数据库配置信息,很容易就安装上了。

3、全世界最大的wiki项目维基百科全书是使用mediawiki的成功范例,数据量、访问量都超级庞大。4、程序功能丰富,可以满足简单到高级的wiki网站制作。

1. Mediawiki安装

Mediawiki上官方安装教程:www.mediawiki.org/wiki/Installation ,以下是个人的安装经验:

系统前提:Ubuntu 12.10 

前置条件:

Web服务器:apache2 server(sudo apt-get install apache2)

PHP语言:php (sudo apt-get install php php-mysql)

数据库:mysql(sudo apt-get install mysql-client mysql-server)

备注:当然上述的除了php没的选,web服务器(apahce,iis,nginx,lightttpd)和数据库(msysqk,PostgreSQL,Sqlite3,Oracle,ms sql server)都是具有多个选择的。

前置条件的安装可以详细参考关于wordpress

1.1. 在Ubuntu下的安装

下载mediawikitar(http://www.mediawiki.org/wiki/Download)

wget http://releases.wikimedia.org/mediawiki/1.22/mediawiki-1.22.6.tar.gz

解压,修改文件名(去掉版本号)

tar xvf mediawiki-1.22.6.tar.gz

mv mediawiki-1.22.6/ mediawiki/

并将其放到apache2的服务器主目录下(/var/www

sudo mv mediawiki/ /var/www/mediawiki

在浏览器中输入http://[domain]/mediawiki/,domain可以是域名或直接的ip地址,比如 http://222.42.14.9/mediawiki/

此时看到的如下的页面:

点击set up the wiki,进入安装页面,选择安装配置所有的语言,这里都选中文简体(zh-hans):

单击继续之后,看到环境配置的警告:

  • l 找不到APCXCacheWinCache,无法启用对象缓存。
  • l 因为尚未安装 intl PECL 扩展以处理 Unicode 正常化,故只能退而采用运行较慢的纯 PHP 实现的方法。

备注:这里暂时忽视这些警告,并且像对象缓存这样php插看只是对流量巨大的网站有用,我搭建的这个小网站不太可能需要这些插件。

下一步是,配置数据库,这里使用的是mysql,需要填写的字段如下:

然后是名称配置:

最后,是一些选项的设置,例如版权和许可证,电子邮件设置,扩展,文件上传之类的。由于是第一次安装,设置了简单的版权,勾选了一些关于扩展方面的选项(随后通过修改配置文件更改),启动了文件上传:

然后,就可以等待安装。最后,配置成功后界面如下:

此时,需要将下载的LocalSetings.php保存到mediawiki目录下(例如,/var/www/mediawiki).

备注:配置结束后,在浏览器中输入http://222.42.14.9/mediawiki/,看到[185f5321] 2014-04-30 03:06:57: Fatal exception of type MWException

解决方法:

mediawiki目录下的localSettings.php 文件末添加下行代码即可:

$wgLocalisationUpdateDirectory = “$IP/cache”;

注意:“$IP/cache”中的引号是英文引号,不是中文引号。

安装成功的截图:

此时,可以使用配置过程设置的用户登录。

在上述安装中,注意以下内容,以便升级时使用:

 Site name:你的wiki站点名称。注意:这与网站本身的名字空间有关,建议使用简短的英文(以后可修改)

 Contact e-mail:站长的联络邮件

 Language:语种选择。建议选择zh-cn简体中文或zh-tw繁体中文;没必要就不要选支持繁简体自动转换的zh中文,否则此后网站提示的本地化工作量将增加很多

 Copyright/license medadata:版权类型。其中GNU为公开的自由版权,允许他人复制、修改;不确定该用什么版权时选no license metadata

 Sysop account name:站长的名字。这是建立wiki后的第一个管理员用户,以后无法改名。可考虑使用英文名字

 password:站长的密码

 Shared memory caching:网站缓冲机制,可以不选

 MySQL server:填写空间服务商提供的MySQL服务器名称,一般为localhost

 Database name:数据库名称,根据与空间服务商的约定填写

 DB username:数据库用户名

 DB password:数据库密码

 Database table prefix:数据表前缀。在同一数据库中架设多个wiki时需要。

 DB root password:数据库root密码。(可忽略)

2. Mediawiki使用

Mediawiki的配置文件分两处:1.includes/DefaultSettings.php-系统默认的配置文件 2.LocalSettings.php 用户设置的配置。主要在LocalSettings.php中进行设置和覆盖相应配置,而不是DefaultSettings.php。

2.1. 修改网站LOGO

想要将左上角的mediawiki图标替换为自己的图标,可以在skins/common/images/目录下找

到名为“wiki.png”的图片文件,将它替换为自己的图片即可。

当然也可以采用编辑$wgLogo变量的方法,下面是个人使用的方法。

寻找logo图片,找到的图片(bug.jpg)如下:

将其放到/var/www/mediawiki/images/目录

编辑/var/www/mediawiki/LocalSettings.php,在文件末尾添加:

$wgLogo="/mediawiki/images/bug.jpg";

注意, images是上传文件的图片存放的目录,bug.jpg是通过浏览器远程传到服务器上的。在上传的过程中出现了问题:Could not create directory “mwstore://local-backend/local-public/1/11

在查看参考7后,找到解决方案,需要将mediawiki下的images的文件的权限修改:

sudo chown -R www-data:www-data images/

此时,就可以正确的上传文件了。关于文件上传的更仔细的介绍参考:http://www.mediawiki.org/wiki/Manual:Configuring_file_uploads#Prerequisites

2.2. 图片相关

启用Mediawiki的上传功能

  • l 设置images文件夹为网络可写:sudo chown -R www-data:www-data images/
  • l 在配置文件LocalSettings.php 中找到$wgEnableUploads将其设置为true

$wgEnableUploads       = true;

这样就启用了MediaWiki的上传功能,当然如果在上面的安装过程中设置了文件上传功能,可以看到配置文件中默认将其设置为true

MediaWiki上传图片

上传页面的地址是: Special:Upload ,也可以先进入特殊页面,然后进入上传文件页面。在该页面中上传图片,设置好文件名和描述,上传成功以后就可以在文章中使用了。

MediaWiki使用图片

在要插入图片的位置输入:[[Image:file.jpg]]

就可以显示对应的图片了。

限制上传文件大小

默认DefaultSettings.php中上传文件的大小为100MB,如需设置可以在LocalSettings.php增加下面一行

$wgMaxUploadSize = xxx; #单位为字节。

备注:上传文件的大小本身受到php环境的限制,即/etc/php5/apache2/php.ini中的post_max_sizeupload_max_filesize变量的值。Mediawiki中上传限制的大小的取值顺序为:post_max_size>=upload_max_filesize>=$wgMaxUploadSize。如果php环境中设置的值比较小,$wgMaxUploadSize设置的再大也没有用。修改php.ini后,需要重启apache服务器(sudo /etc/init.d/apache2 restart)。

引用外部图片 

localsettings.php增加下面一行即可(可能引起安全问题):

$wgAllowExternalImages = true;

通过图片URL进行上传(使用可被公开访问的图片链接进行远程图片上传,不过只有操作员才可以用,这是出于安全性考虑)

localsettings.php增加下面一行(可能引起安全问题,建议不要这么做):

   $wgAllowCopyUploads = true;

2.3. 其他文件上传

开启其他文件上传,比如doc,pdf,ppt,docx,pptx

打开mediawiki根目录中的includes/DefaultSettings.php,查看$wgFileExtensions ,此变量默认仅支持'png', 'gif', 'jpg', 'jpeg'四种,这意味着可以上传的文件只有这几种,但是可以在LocalSettings.php中设置,添加如下行(建议不要直接修改DefaultSettings.php:

$wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg','doc','ppt','pdf' );

上传过程出现错误提示 该文件包含或具有一个不正确的扩展名。请检查此文件并重新上传”,比如,已经在wgFileExtensions中设置了允许上传ppt类型,还是上传不了。在wiki根目录中LocalSettings.php中添加如下一行:

$wgVerifyMimeType=false

当然,也可以直接修改includes/DefaultSettings.php,将$wgVerifyMimeType修改为false;但是不建议这样做。备注:此时,Mediawiki但会把pptxzip处理,word,ppt都是正常的。

2.4. 左侧导航栏的设置

进入特殊页面,找到sidebar进入,编辑该页面设置导航栏。

备注:由于安装的是中文版,在特殊页面中找了半天都没有看到导航栏(sidebar)。后来试了直接链接MediaWiki:Sidebar(比如,像这样http://222.42.14.9/mediawiki/index.php/MediaWiki:Sidebar),才看到了sidebar的页面。

点击页面进行编辑,修改格式如下:

格式:

*导航栏名称一

**链接一地址|链接一名称

**链接二地址|链接二名称

*导航栏名称二

**链接一地址|链接一名称

**链接二地址|链接二名称

这里是样例导航栏:

* navigation

** mainpage|mainpage

** http://bbs.zzbaike.com|论坛

** currentevents-url|currentevents

** recentchanges-url|recentchanges

** randompage-url|randompage

** helppage|help

 

*推荐网站

** http://www.idcspy.com|美国主机侦探

** http://www.alexacn.org|Alexa中文资讯

** http://down.zzbaike.com|站长下载

** http://site.zzbaike.com|站长网址

** http://edu.zzbaike.com|站长学院

备注:一定要严格按照格式,如果仅仅填写链接地址不注明名称是显示的,我一开始就因为这种事情郁闷了老半天。

2.5. 界面信息修改

MediaWiki的大部分界面信息存放在Special:Allmessages里面,包括界面的文字、链接、气泡提示、热键等。进行定制时,请找到相应信息,点击左栏链接进行修改。

2.6. 皮肤的设置

Mediawiki的皮肤文件存放在mediawiki主目录下skins文件夹(/var/www/mediawiki/skins)下。一般来说,皮肤包中包含xxx.phpxxx.deps.phpxxx目录这三部分(mediawiki自带的皮肤没有xxx.deps.php文件,xxx表示特定的皮肤名)。

将上述文件(xxx.phpxxx.deps.phpxxx目录)拷贝到skins目录下.然后使用创建时的用户名登录,进入参数设置(Special:Preferences)页面,在皮肤中选择后保存即可。

注:非注册用户无法选择皮肤,且皮肤的选择仅仅和登录用户相关连。

如果希望皮肤能对所有用户都生效,那么可以在将其设为默认皮肤,之后匿名用户等都将默认使用这种风格。打开LocalSettings.php,在文件末添加如下行:

$wgDefaultSkin = “monobook”;

备注:这里使用的是系统自带的monobook皮肤,可以成用户上传的其他任何皮肤。

2.7. mediawiki的基本编辑

2.7.1. 创建新页面

利用搜索功能创建新页面,例如在左边栏中搜索超人,搜索结果如下:

在最下方的提示中点击超人的链接建立一个关于超人页面。

2.7.2. 创建页面存在链接

Wiki页面的正文中存在棕红色的链接,则表明该条目中还没有内容,可以点击它来编辑新的条目,保存后就自动创建新页面。比如,下图中棕色的连接就是还没有创建的页面。

如果需要自行建立新页面,请随意编辑某个页面并输入“[[新条目名称]]”,点击显示预览按钮后即可按前面所述进行操作。当然,这可以通过上面的通过搜索创建新的页面。

2.7.3. 缩进与列表

mediawiki中的缩进不能使用半角空格调整。有以下几种方式控制缩进格式缩进:(举例附后)

行首使用半角:号:允许多个半角冒号连用,以控制不同文本缩进深度

行首使用半角*号:行首星号是列表控制符,产生列表的同时伴有不同的文本缩进。允许多个星号连用。

行首使用半角#号:数字序号的列表控制符,与星号类似。注意,多个#号行中夹有非#号起始的文本行时,数字序号会中断。

使用;:号配合:分号与冒号称为定义列表控制符,冒号之后的部分换行缩进显示。

行首使用全角空格:一种非正规手段,不要滥用。

'''粗体文字'''

''斜体文字''

[[链接标题]] 内部链接

[http://www.example.com 链接标题外部链接

== dfd == 二级标题字导航

==== dfd === 三级标题字 以此类推

[[Image:Example.jpg]] 嵌入文件

使编辑的时候出现虚线框,使重要的内容显示比较醒目,只要在开头加上一个空格就可以了(这里的空格必须是半角下的才可以

2.7.4. 段落调整

wiki文本中,单独回车并不会出现换行。强制换行可以如下手法:

1、增加空行会分开不同的段落

2、在换行位置使用强制换行标签“br”

如果需要段与段之间的空行,只需在前段末尾加上"br”"br",将换为<>

关于首行空两格

如果遵循中文书写习惯,需要在首行前空两格,可以在首行前端输入全角的空格符(一直不知道全角有什么用处)。

2.7.5. 插入图片

1、当图片位于本机(没有网址可供调用)时,需要将图片上传后才能使用。(该页面的链接可在特殊页面中找到,标注为上传文件,在左侧的工具箱中也可以看到)。注意:图片文件不能使用中文名称,应在上载时指定为英文名称。 

3、将图片上传后,在需要插入图片的位置输入“[[Image:Filename.jpg]]”即可(Filename为上传图片的文件名),即可出现如,如果需要添加方框效果,可以输入“[[Image:Filename.jpg|thumb]]”添加图片方框。

3、对于上传到本站的图片,还可以随意指定显示大小、左右位置、添加说明文字等,请参看Mediawiki中图像的使用。

2.7.6. 目录控制

当文章中含有3个以上标题时,mediawiki将自动在第一个标题之前生成目录(这是默认的设置)。

如果需要隐去目录,可以在文章中加入“__NOTOC__”标记;

如果需要强制显示目录而不管标题数量,可以加入“__TOC__”标记;

这两个wiki标记不限制出现位置,但一般出现在文章头部或尾部且单独成行。

2.7.7. 表格的使用

示例如下:

{|

1行第1列 || 1行第2列 || 1行第3

|-

2行第1列 || 2行第2列 || 2行第3

|-

3行第1列 || 3行第2列 || 3行第3

|}

说明:“{|”“|}”是表格的头尾,“|-”代表表格换行,“|”引导表格行内容并以“||”分开不同单元格

注意:表格控制符必须在行首书写!非行首表格代码将不被认可

单元格内容可包含链接、图片等,以及嵌套内部表格。

mediawiki的默认表格没有边框,如果需要的话需添加参数。(见下文介绍)

border="1" cellspacing="0" 是边框样式,不写的话就不出边框

让一行、一列或一整个表格都是同样的颜色

{| style="background:yellow; color:blue" border=1

|-

这行是

蓝字

黄背景

|- style="background:navy; color:white"

这行是

白字

深海蓝

|-

这行

| style="background:white" | 比较

不一样

|}

2.7.8. 边框效果

漂亮的页面布局,离不开各种边框的使用。通过不同样式的边框,可以让不同的内容板块一目了然,有效改进页面的可读性。

边框样式的基础实现有两种:

div边框

表格边框

<div style="width:100px;background-color:#FF0000;border:5px solid #FFFFFF;">

测试

</div>

solid单线边框

border:1px solid #808080

常用边框之一,推荐

dashed虚线边框

border:1px dashed #808080

常用边框之一,推荐

double双线边框

border:3px double #808080

常用双线边框之一,推荐

2.7.9. 页面分类

分类是mediawiki中一种重要的内容关联手段。分类将同类文章在同一个页面上集中起来,为读者提供查看相关资料的方便

mediawiki的分类还有上、下级关系,使内容关联更有层次。在被编辑的文章中添加[[category:XXX]]保存之后这篇文章就会自动被分类为XXX

分类说明文本一般被放在文章末尾,但实际上它可以位于文章的任何部分。此外,分类页面中也可以进行编辑,以进行必要的说明。

一篇文章可以有多个分类,顺序书写即可。例如文章同时在XXXYY分类中出现:

[[category:XXX]]

[[category:YYY]]

引用分类页面

mediawiki文章中链接分类页面正确的写法是[[:category:XXX]],显示时不会显示前导冒号

上传图片也可以分类

通过对上传图片的分类,可以让更多人了解系统中有哪些图片,方便在文章中引用,并大量减少重复图片的上传。上传图片之后,编辑该页面并输入[[category:分类名称]]然后保存,则访问这个分类页面时就能看见该图片的索引了

2.7.10. 模板

引用模板 {{模板名称}}

创建或者编辑模板 [[Template:模板名称|页面显示文字]]

例如:设置针对条目的讨论内容显示的模板

在页面下方增加一个名为{{讨论}}的模板,模板内容你可以参考模板:讨论

{| style="width:100%; border:1px solid #cef2e0; background-color:#f5fffa;"

| style="background-color:#f5fffa;"|'''用户留言:'''

|-

| style="background-color:#ffffff;"|{{#ifexist:{{TALKPAGENAME}}|:

{{ {{TALKPAGENAME}} }}|目前暂无留言}}

|-

|[{{fullurl:{{TALKPAGENAME}}|action=edit§ion=new&preload=Template:Sign&editintro=Template:SignNotice}} 新增留言] [{{fullurl:{{TALKPAGENAME}}|action=edit}} 编辑留言]

|}

<noinclude>[[Category:模板]]</noinclude>

 

如果模板不支持ifexist,需要安装模板扩展语法扩展.Extension:ParserFunctions

http://www.mediawiki.org/wiki/Extension:ParserFunctions

加姓名与日期,增加~~~~

2.8. 页面权限设置

2.8.1. 禁止新用户注册

LocalSettings.php的位置加入:

#Prevent new user registrations

$wgWhitelistAccount = array ( "user" => 0, "sysop" => 1, "developer" => 1 );

此时用户无法自助注册。管理员可以到登录页面(Special:UserLogin)里,输入一个用户名和email,然后点击“by email”,系统创建帐号并将随机密码发送到指定email里。

2.8.2. 禁止匿名用户编辑

LocalSettings.php加入以下等式右侧的值决定各组成员的权限。左侧第一方括号内的'*'代表包括匿名用户在内的所有成员。登录用户控制存放在'user'组,这些将综合决定user_groups数据表中的成员权限。(适用1.5版本)

这些设置取代了以前的wgWhitelistAccountwgWhitelistEdit

#$wgGroupPermissions = array();

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

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

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

以上例子中禁止了匿名用户的自行创建账户和进行编辑。(编辑标签仍会显示,但匿名用户点击时会被提示要求进行登录。

设定匿名用户(未登录)可以看到的页面

上述设定之后,用户连首页和登录页面也看不到了。因此需要继续修改在LocalSettings.php中加入:

$wgWhitelistRead = array ("Main Page", "Special:Userlogin", "Wikipedia:Help");

这样,匿名用户只能看到Main Page、登录页面以及帮助页面。注意根据自己站点的情况修改上述设置,例如改为:

$wgWhitelistRead = array ("首页", "Special:Userlogin", "某某Wiki:Help");

对于多字节语言(例如中文),PHP parser可能不能正确解码。这时可能要用到PHPurldecode()函数来转换一下:

#中文的首页编码

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

2.8.3. 页面保护

以管理员(sysop)身份登录,点击页面上方的的保护(或protect)标签。如下图,选择第三行的(仅允许管理员)Sysop only,然后确认即可。

保护完成后,该页面只能被sysop(管理员)修改。

文章分类
联系我们
联系人: 王先生
电话: 0760-88315075
传真: 0760-88315075
Email: 18449932@qq.com
QQ: 18449932
微信: 13928102596
地址: 广东省中山市西苑广场富贵阁20楼A座