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. Java多线程系列--“JUC集合”03之 CopyOnWriteArraySet

    概要 本章是JUC系列中的CopyOnWriteArraySet篇.接下来,会先对CopyOnWriteArraySet进行基本介绍,然后再说明它的原理,接着通过代码去分析,最后通过示例更进一步的了解 ...

  2. 动态单链表的传统存储方式和10种常见操作-C语言实现

    顺序线性表的优点:方便存取(随机的),特点是物理位置和逻辑为主都是连续的(相邻).但是也有不足,比如:前面的插入和删除算法,需要移动大量元素,浪费时间,那么链式线性表 (简称链表) 就能解决这个问题. ...

  3. CentOS 7 关闭防火墙和SELinux

    [修改机器名] # vi /etc/hostname [关SELinux] # vi /etc/selinux/config设置SELINUX=disabled [关防火墙] # systemctl ...

  4. 3D Grid Effect – 使用 CSS3 制作网格动画效果

    今天我们想与大家分享一个小的动画概念.这个梦幻般的效果是在马库斯·埃克特的原型应用程序里发现的​​.实现的基本思路是对网格项目进行 3D 旋转,扩展成全屏,并呈现内容.我们试图模仿应用程序的行为,因此 ...

  5. CentOS 7添加yum源

    RedHat下主要有两个distribution,一曰 RHEL(Red Hat Enterprise Linux) 一曰 Fedora.前者主要是供服务器使用,优点是稳定,缺点是老的掉牙,后者是供桌 ...

  6. 谷歌插件Image downloader开发之popup

    Image downloader的交互逻辑是这样的:用户点击Image downloader的图标,会向页面(content script,见上一篇文章:谷歌插件Image downloader开发之 ...

  7. Autofac - 组件

    快到年终了, 最近项目比较悠闲, 就想总结下, 项目中所使用到的一些技术, 以及使用方法. 之前有写过Dapper以及Dapper的一个扩展, 这些也是项目中使用过的. 算是一个温故而知新吧. 代码: ...

  8. [Asp.net 5] DependencyInjection项目代码分析4-微软的实现(1)

    前面俩种实现中,很多内部细节都无法知道,微软的框架也是为了屏蔽具体实现,只让我们关注接口.但是人都是充满好奇的,依赖注入到底是怎么实现的呢? 微软又有怎样的实现呢?下面就为大家一一呈现(说实话,代码真 ...

  9. Winform防止程序重复运行

    需求:1.点击“关闭”按钮时,程序最小化到托盘,并没有退出,这时再次运行程序,不会重复运行,而是显示已运行的程序:2.支持不同目录:3.支持修改名称. 代码(不支持修改名称,不支持不同目录): usi ...

  10. 关于 Servlet 和 Web

       文中也只是对Servlet和Web作简单的了解,有个初步的认识,深入的内容有待于进一步去研究. T. T _ . _ Servlet     Servlet(Server Applet),全称J ...