MediaWiki使用指南

MediaWiki是著名的开源wiki引擎,全球最大的wiki项目维基百科(百科词条协作系统)是使用MediaWiki的成功范例,MediaWiki的最大作用在于对知识的归档,可用于构建企业/个人知识库。

MediaWiki官网地址为http://www.mediawiki.org/wiki/MediaWiki

一.安装

安装MediaWiki前需要搭建运行环境,我的环境是apache+php+mysql;有了运行环境,然后下载MediaWiki,压缩包 是.tar.gz格式,在Windows上可以使用7-Zip解压;解压到文件夹如mediawiki下,拷贝到web服务器根目录,然后通过浏览器访问 MediaWiki所在目录(例如:http://localhost/mediawiki/index.php),跟随安装提示直到完成。配置完成后会 生成LocalSettings.php文件,根据提示下载并保存至mediawiki根目录(index.php的同级目录)即可。

安装成功后,点击进入首界面,如下图所示。

二.使用入门

1.修改默认logo

mediawiki站点默认logo图片路径名:$WIKI_HOME/skins/common/images/wiki.png,可以通过以下两种方式修改默认logo:

(1)用图片编辑工作打开wiki.png图片,进行修改后覆盖即可;或者自己新建一个135 x 135像素,图片格式为.png的同名图片覆盖即可,建议使用透明背景,否则将严重影响视觉效果。

(2)将logo文件放在目录$WIKI_HOME/skins/common/images下,再在根目录下打开 LocalSettings.php文件,找到$wgLogo= "$wgStylePath/common/images/wiki.png",修改为$wglogo="$wgStylePath/common /images/logo文件名"

注:可以使用默认logo图片同目录下的mediawiki.png替代。

2.去除底部powered by图标

在配置文件LocalSettings.php中加入如下行即可,

unset($wgFooterIcons['poweredby']);

3.修改皮肤

MediaWiki系统的默认皮肤是Vector,使用管理员账户登录后,可以通过"设置" -> "显示" –> "皮肤"预览所有皮肤效果,不过此处修改保存的话,只有在管理员账户登陆时才有效。

如要修改系统默认皮肤,要在根目录下打开配置文件LocalSettings.php,找到$wgDefaultSkin = 'vector';一行,如希望使用Modern皮肤,则改为$wgDefaultSkin='modern';

如想增加新皮肤,可下载皮肤插件保存到skins目录下,然后通过上述方法使用新皮肤。

4.新建页面

如果搜索一个不存在的页面,会得到一个链接去创建新页面;也可以用wiki的URL创建新页,如想新建一个名为HelloWorld的页面,则可在地址栏输入:http://localhost/mediawiki/index.php/HelloWorld,在出现的页面中点击"创建",输入内容后点击"保存页面"即可,如下图所示。

5.页面格式化

可以通过使用wiki标记来格式化文本,下文描述了部分wiki标记,更多详情可查阅http://www.mediawiki.org/wiki/Help:Formatting

字符格式化

如,文本内容用两对单引号括起来(''italic'')可实现斜体效果,用三对单引号括起来('''bold''')可实现粗体效果,用 strike标签括起来(<strike>strike</strike>)实现删除线效果;使用标签nowiki括起来则会忽 略上述标记。

章节格式化

(1)标题

MediaWiki页面中的标题使用等号标记,用几对等号括起来则表示是几级标题。

== Level 2 ==

=== Level 3 ===

==== Level 4 ====

===== Level 5 =====

====== Level 6 ======

注: #1. 不建议用一对等号,它表示页面自身。#2. 页面中有4级及更多标题时,会自动生成目录。

(2)水平线

如果想在页面内容之间插入分割线,可在要分割的地方使用"----",如下所示:

水平线之前

----

水平线之后

(3)无序列表

文本前加"*"号可以实现无序列表效果,"*"号的个数表示列表对应的级别,如

*1

**11

**12

*2

**21

**22

(4)有序列表

文本前加"#"号可以实现有序列表效果,"#"号的个数表示列表对应的级别,如

#1

##11

##12

#2

##21

##22

分段

MediaWiki不识别换行。要另起一段,需要使用一空行;在段落中可通过HTML标签<br/>强制换行。

HTML标签

在MediaWiki中允许使用部分HTML标签。如使用<u>标签实现下划线效果,<s>标签实现删除线效果等。

6.链接

下文仅简要描述内部链接和外部链接的用法,更多信息可查阅http://www.mediawiki.org/wiki/Help:Links

内部链接

内部链接,即链接到wiki中其他页面的链接。将目标页面名使用两对方括号括起来表示一个内部链接(如[[HelloWorld]])。保存后,如链接指向的页面已存在,链接会显示为蓝色,否则显示为红色。

如果想将链接显示为文字信息,需使用格式[[页面名|文字]],如[[HelloWorld|到HelloWorld页面]]。

外部链接

外部链接,即链接到其他网站的链接。输入网站地址并以空格结束,就可以生成一个外部链接。保存后,链接后会有一个箭头,表示指向外部。

如果想将链接显示为文字信息,需使用格式[外部网址文字],如[http://www.baidu.com 百度]。

7.分类

在页面中加入[[Category:分类名]],会在页面底部生成分类链接,点击链接后可看到该分类下的所有页面。

8.上传文件设定

配置文件LocalSettings中,$wgEnableUploads就是控制上传的参数,true允许,false不允许。

MediaWiki中允许上传的文件类型是有限制的,默认支持'png','gif', 'jpg', 'jpeg'这几种文件类型,对应的配置可参阅DefaultSettings.php中$wgFileExtensions的值;而不允许的文件类型在 参数$wgFileBlacklist中设定。

登录后,可以通过导航栏或特殊页面中的上传文件链接上传文件。可使用[[File:文件名]]在页面中引用文件,如果引入的是图片文件,还可以指定 图片宽度([[File:Example.jpg|200px]]),加入图片说明([[File:Example.jpg|图片1]])

9.编辑器

MediaWiki自带的编辑器比较简单,用于页面编辑不太方便。从1.18版开始,MediaWiki中集成了一款增强型编辑器WikiEditor,在LocalSettings.php中加入如下行可启用WikiEditor,

$wgDefaultUserOptions['usebetatoolbar'] =1;

从1.21版本开始,MediaWiki默认集成了GeSHi(Generic Syntax Highlighter)插件,这是一款支持语法高亮显示的插件,借助<syntaxhighlight>标签可在页面中显示格式化的源码, 还可以在此标签中使用参数"line"以显示代码行号,如下面的例子所示:

<syntaxhighlight lang="php"line>

<?php

echo "Hello, World!";

?>

</syntaxhighlight>

10.修改导航栏

通过wiki地址index.php/MediaWiki:Sidebar

如,http://localhost/mediawiki/index.php/MediaWiki:Sidebar,或者在搜索栏中输入"mediawiki:sidebar",进入页面后点击编辑即可。

导航栏格式如下:

*导航栏名称一

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

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

*导航栏名称二

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

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

11.查看MediaWiki版本

可通过选择"特殊页面" -> "数据与工具" -> "版本",或者搜索"Special:Version"打开版本页面,在这个页面可以看到MediaWiki版本、PHP版本、Apache版本和所安装的扩展的版本等信息。

12.用户组

MediaWiki中有3个用户组:机器人/管理员/行政员,每个用户组的具体权限可通过"特殊页面" -> "用户组权限"查看,通过首页中"创建用户"注册的用户默认不属于任何用户组;从属于行政员用户组的用户,可通过"特殊页面" -> "用户权限管理"给其他用户分配用户组。

13.页面缓存

在配置文件DefaultSettings.php中,找到参数$wgCacheEpoch,将参数值置为当前时间,可以取消全部已经缓存的页面(包括客户端和服务器端)。

日常开发中总会有许多东西需要记录,很多软件都可以做到这一点,例如有道云笔记,或者写博客。但个人偏爱于Mediawiki,因为wiki可定 制性强,总给人一种高端大气的感觉。起初对wiki这种东西一无所知,受老总的影响,开始在公司推广wiki,可惜到现在没有推广成功,不过自己倒是喜欢 上这东西了。废话少扯,进入正题吧。

首先大致说说wiki是什么吧。在我看来,wiki就是一种学术性的博客,但是更加严谨,相当于字典,也不完全像字典一样拘束与单词,总 之,我也说不清楚,形象的说,就是一个文档系统吧。当前有很多wiki软件,例如Wikipedia使用的Mediawiki,以及MoinMoin,还 有其他的很多版本;而Mediawiki应该是最广为人知的吧。

mediaWiki2

Wiki安装

Mediawiki基于php,可以选择MySQL、Sqlite等诸多数据库,在windows上首选wamp server来配置神一般的Php+MySQL环境。本文使用的是Mediawiki1.21.2,Wamp2.4 ,windows8 pro x64的环境。可以建一个专门放网站的目录,例如d:/work/www,将wiki解压到该目录下即可。在wamp安装目录下的alias目录下,新建一个配置文件,例如wiki.conf,内容如下:

1

2

3

4

5

NameVirtualHost *:80

<VirtualHost *:80>

DocumentRoot "D:/Work/www/mediawiki-1.21.2/"

ServerName solee.org

</virtualHost>

因为是本机的缘故,我在host中将solee.org解析到127.0.0.1,穷人买不起虚拟主机。这样访问localhost,将会 进入Mediawiki的初始化安装界面。该安装程序实际上是引导你生成LocalSettings.php,当然也可以手工设置。建议先自己选择,这样 会生成一个LocalSettings.php文件,并执行相应的数据库初始化,将此php下载后放到wiki的根目录下面,直接再访问 localhost即可进入wiki。好了,wiki安装就这样简单。

基本配置

wiki配置很丰富,下面介绍几种可能感兴趣的配置:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

#个人wiki,禁止创建帐号功能,除非登陆才能访问

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

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

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

#启用详细异常显示.

$wgShowExceptionDetails = true;

#去除底部powered by图标

unset($wgFooterIcons['poweredby']);

#对于没有登录的用户,没有登录的用户移除页面顶部的讨论页链接

$wgShowIPinHeader = false;

#默认在新标签页中打开链接

$wgExternalLinkTarget = '_blank';

其他诸如图标、主题、短链接等配置可以自行探索。

常用插件

常用的插件,主要是富文本编辑器了,当个人倾向于使用纯文本编辑器,也就是Mediawiki自己提供的编辑器。默认的工具条很丑,可以在页面右上角的设置->编辑中开启增强功能。

富文本编辑器可选用WYSIWYG,搜索合适的版本下载之后,解压到extensions目录,并在LocalSettings.php中添加一行,加载此拓展:

富文本编辑器

1

require_once( "$IP/extensions/WYSIWYG/WYSIWYG.php" );

    这样安装好之后,可以在设置中选择喜欢的编辑器,或者选择在文本和富文本编辑器中自由切换。

代码高亮

    1.21.2的代码高亮插件已经默认集成了,如果没有集成,可以搜索Mediawiki Geshi安装此插件。

pdf导出

Mediawiki的 pdf导出应该说算是比较头疼的问题了,其实支持pdf导出的插件不少,但是对中文的支持非常不好,目前可以用PdfExport插件比较完美的实现。官方的PdfExport插件已经过时(目前不知道是否更新了),需要进行部分修改:

Mediawiki1.21.2导出,可以使用PdfExport插件+Mpdf进行。当前HtmlDoc等其他后端均不能支持中文。 Mpdf需要配置支持CJK字符

配置LocalSettings.php

1

2

3

4

#pdf导出插件

require_once("$IP/extensions/PdfExport/PdfExport.php");

#使用Mpdf作为PdfExport的后端,但必须配置支持ckj字体

$wgPdfExportMPdf =  $IP . '/extensions/Mpdf/mpdf.php'; // Path to the main mPDF.php file

配置字体config_font.php(需要将字体添加到字体文件夹中)

"sun-exta" => array(

'R' => "Sun-ExtA.ttf",

'sip-ext' => 'sun-extb',

),

"sun-extb" => array(

'R' => "Sun-ExtB.ttf",

),

修改config_cp.php

CASE "zh":

$unifonts = "sun-exta,sun-extb";

break;

修改MPdfConverter.php

$mpdf = new mPDF('zh');

$mpdf->SetAutoFont(AUTOFONT_ALL);

$mpdf->WriteHTML($html);

修改config.php

$this->useAdobeCJK = true;

另外,需要注释掉下面的函数调用:

//wfLoadExtensionMessages('PdfPrint');

其他插件:

1

2

3

4

5

6

#Flash插件

require_once("$IP/extensions/oflash/orificeflash.php");

#视频插件

require_once("$IP/extensions/MediawikiPlayer/MediawikiPlayer.php");

#批量导入插件

require_once("$IP/extensions/MultiUpload/MultiUpload.php");

当然具体的插件需要自己去下载。通常谷歌Mdiawiki  <插件名称>即可找到官方的下载地址。

备注:

1

2

#禁用掉此扩展,否则可能不能正常进入wiki

#require_once( "$IP/extensions/LocalisationUpdate/LocalisationUpdate.php" );

备份及优化

备份主要涉及到数据库的备份及Wiki的备份。对于这种非分布式、非云计算(哈哈——)的东西来说,备份就显得尤为重要了。

1

D:\Prog\wamp\bin\mysql\mysql5.6.12\bin\mysqldump -u root -ppassword solee_wiki_db >F:\wiki.sql

wiki备份直接把wiki的文件夹打个包即可。如果是采取sqlite数据库的话,数据库备份更加简单了。

在windows上一个比较烦人的问题就是,wamp的mysql内存占用甚是大,在我4G内存的机器上吃了500M,这不能忍啊,因此需要优化一下mysql:

[mysqld]

port=3306

max_connections = 100

#加入以下内容

performance_schema_max_table_instances=600

table_definition_cache=400

table_open_cache=256

注:内容来源于网络:http://blog.csdn.net/wangnan537/article/details/37743497

MediaWiki使用指南的更多相关文章

  1. JavaScript权威指南 - 函数

    函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...

  2. UE4新手之编程指南

    虚幻引擎4为程序员提供了两套工具集,可共同使用来加速开发的工作流程. 新的游戏类.Slate和Canvas用户接口元素以及编辑器功能可以使用C++语言来编写,并且在使用Visual Studio 或 ...

  3. JavaScript权威指南 - 对象

    JavaScript对象可以看作是属性的无序集合,每个属性就是一个键值对,可增可删. JavaScript中的所有事物都是对象:字符串.数字.数组.日期,等等. JavaScript对象除了可以保持自 ...

  4. JavaScript权威指南 - 数组

    JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...

  5. const extern static 终极指南

    const extern static 终极指南 不管是从事哪种语言的开发工作,const extern static 这三个关键字的用法和原理都是我们必须明白的.本文将对此做出非常详细的讲解. co ...

  6. Atitit.研发管理软件公司的软资产列表指南

    Atitit.研发管理软件公司的软资产列表指南 1. Isv模型下的软资产1 2. 实现层面implet1 3. 规范spec层1 4. 法则定律等val层的总结2 1. Isv模型下的软资产 Sof ...

  7. HA 高可用软件系统保养指南

    又过了一年 618,六月是公司一年一度的大促月,一般提前一个月各系统就会减少需求和功能的开发,转而更多去关注系统可用性.稳定性和管控性等方面的非功能需求.大促前的准备工作一般叫作「备战」,可以把线上运 ...

  8. 第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南

    欢迎查看第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南,该处理器可为开发人员和最终用户提供领先的 CPU 和图形性能增强.各种新特性和功能以及显著提高的性能. 本指南旨在帮助软件开发人员 ...

  9. Visual Studio Code 配置指南

    Visual Studio Code (简称 VS Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器.在我看来它是「一款完美的编辑器」. 本文是有关 VS Code 的特性介绍与配置指 ...

随机推荐

  1. 基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用

    在上篇<基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理>介绍了Bootstrap开发框架的一些基础性概括,包括总体界面效果,以及布局.菜单等内容, ...

  2. ISTool5.3.1汉化版使用教程

    ISTool是帮助你创建由Jordan Russell制作的Inno Setup编译器脚本的工具.Inno是一个出色的编译器,即使对于某些专业的安装制作程序,它唯一的缺点就是它的脚本必须手动编写. 这 ...

  3. ios见习之-UISearchbar+tableview实现自动搜索自带提示

    当做搜索时常常希望能在输入的时候出现搜索关键字,如下效果

  4. Deep learning:四十四(Pylearn2中的Quick-start例子)

    前言: 听说Pylearn2是个蛮适合搞深度学习的库,它建立在Theano之上,支持GPU(估计得以后工作才玩这个,现在木有这个硬件条件)运算,由DL大牛Bengio小组弄出来的,再加上Pylearn ...

  5. Android Studio1.4.x JNI开发基础-基本环境配置

    从Eclipse时代到Android Studio普及,开发工具越来越好用.早些时候还需要安装Cygwin工具,从Android Studio1.3以后,在Android 环境开发JNI程序搭建开发环 ...

  6. JS兼容所有浏览器的一段加入收藏代码,设置为首页

    <script language="javascript" type="text/javascript"> function addfavorite ...

  7. [New Portal]Windows Azure Virtual Machine (16) 使用Azure PowerShell创建Azure Virtual Machine

    <Windows Azure Platform 系列文章目录> 注:本章内容和之前的[New Portal]Windows Azure Virtual Machine (12) 在本地制作 ...

  8. Windows Azure Traffic Manager (5) Traffic Manager Overview

    <Windows Azure Platform 系列文章目录> 笔者默默地看了一下之前写的Traffic Manager内容,已经差不多是3年前的文章了.现在Azure Traffic M ...

  9. ES6笔记(2)-- let的块级作用域

    系列文章 -- ES6笔记系列 一.函数级作用域 我们都知道,在ES6以前,JS只有函数级作用域,没有块级作用域这个概念 没有块级作用域,有利有弊,利于方便自由,弊于作用域内的变量容易被共享,例如这个 ...

  10. github.com/dotnet/orleans

    Orleans is a framework that provides a straight-forward approach to building distributed high-scale ...