MediaWiki

MediaWiki是一套基于网络的Wiki引擎，维基媒体基金会的所有项目乃至众多wiki网站都使用了该软件。MediaWiki软件最初是为自由内容百科全书维基百科开发，今日已被一些公司机构用作内部知识管理和内容管理系统。Novell甚而还在多个高流量的网站中使用了该软件。

MediaWiki采用PHP编程语言写成，并可使用MySQL、MariaDB、PostgreSQL或SQLite之一作为其关系数据库管理系统。MediaWiki在GNU通用公共许可证第2版及其后续版本的条款下分发，其文档则按知识共享 署名-相同方式共享3.0版协议释出，部分文档还被释入了公有领域，这使其成为了自由软件。

出于服务维基百科的需求，软件的第一个版本于2002年被部署，后来，维基百科和其他维基项目继续定义了MediaWiki的大部分功能。为了有效地处理大型项目，MediaWiki得到了很好的优化，使其可以承载万亿字节的内容和每秒数十万次的访问请求。因为维基百科是全球最大的网站之一，需要MediaWiki能为开发者实现通过多层次的实现可伸缩性缓存和数据库响应，对开发者来说，这一直是一个让他们很头疼的大问题，而MediaWiki很好的解决了这一问题。

MediaWiki有700多个配置设置和超过1800个扩展，使用者可以添加或更改各种特性。在维基百科上，超过1000个自动化和半自动化的机器人和其他工具用于协助编辑。

它也被一些公司部署为一个内部知识管理系统，一些教育机构也让学生使用MediaWiki来进行小组项目的管理和维护。

## 许可

<image>

MediaWiki是遵循GNU通用公共许可证的最新版本（截至发布日期）发布的自由软件。它的文档则是部分基于知识共享许可证发布，部分隶属于公有领域。MediaWiki.org上的指南等内容具有知识共享许可证，而用于拷贝和/或包含在MediaWiki安装文件内的帮助页面则属于公有领域。这是为了避免由于拷贝帮助页面而引起的违背知识共享许可证条例的法律纠纷。MediaWiki总体使用开放源代码的多媒体格式。

## 历史

<image>

在科隆大学的学生及开发员马格努斯·曼斯克设计的用户界面基础上，李·丹尼尔·克罗克为维基百科编写了现在的这一软件。

维基百科最初曾经使用Perl语言编写的小型wiki引擎UseModWiki作为后台，其后则换用了Manske用PHP编写的软件来提供更多的功能。随着使用量的日益增长，页面加载的问题日益严重，这促使克罗克重写了该软件，采用了扩展性更强的MySQL后台数据库。

后来，维基媒体基金会的首席技术官布里昂·维伯（Brion Vibber）成为了该软件的发布经理及其最活跃的开发者。

### 语源

随着曼斯克程序第一版的释出，该软件曾被赋予了多项昵称，以表示当时的开发状态——“PHP脚本”（the PHP script）、“第二期”（phase II）、“第三期”（phase III）、“新代码库”（the new codebase）——但并无正式的产品名称。2003年6月20日，随着维基媒体基金会的宣布成立，作为对“Wikimedia”（维基媒体）的戏称，维基百科贡献者丹尼尔·迈耶（Daniel Mayer）创造了“MediaWiki”（媒体维基）一词来称呼这一软件，并在2003年8月开始逐步得到采用。由于这一名称有意地相似于“Wikimedia”（维基媒体）一名（而“Wikimedia”（维基媒体）还相似于“Wikipedia”（维基百科）），因而经常造成混淆。

该软件的标志由埃里克·默勒（Erik Möller）基于弗洛朗丝·尼巴尔-德伍阿尔拍摄的太阳花照片制作，最初用于参加维基百科在2003年年中举行的国际性标志竞赛。该标志被评为第三名，并被选作MediaWiki的标志；第二名的标志则被选为维基媒体基金会的标志。太阳花两侧的双重方括号象征着MediaWiki用来建立超链接到其他wiki页面的语法。

### 版本历史

MediaWiki的第一个版本 1.1发布于2003年12月。

## 使用网站

MediaWiki最著名的使用案例是维基百科，同时还部分用于维基媒体基金会的其他项目。一些其他的公共wiki网站也使用MediaWiki，包括Fandom（一个wiki农场）、wikiHow和维基解密。

使用MediaWiki的还有众多和维基百科模式相似的线上wiki百科，大众百科、萌娘百科、Metapedia、Scholarpedia和保守百科是其中几个例子。Mediawiki也在大量公司的内部使用，其中有Novell和英特尔。

Mediawiki也被应用在政府内部，例子包括由美国情报体系使用的情报百科和美国国务院使用的Diplopedia。联合国开发计划署和联合国提高妇女地位国际研究训练所等联合国机构也使用MediaWiki来运行他们的wiki网站，他们认为：“这个软件支撑了维基百科的运转，得到了全面而彻底的测试，相对于其他wiki软件，MediaWiki在未来将会是更多wiki网站技术人员的选择。”

## 主要功能

MediaWiki提供丰富的核心功能集和增加提供附加功能的扩展程序的机制。

### 国际化和本地化

由于维基媒体计划大力强调多语言，国际化和本地化受到开发商的显著关注。Translatewiki.net将用户界面完全或部分翻译成超过300种语言，网站管理员还可以进一步定制（整个界面可以透过wiki编辑）。几个扩展程序，最明显的是收集在MediaWiki语言中的，旨在进一步提升MediaWiki的多语种和国际化。

### 安装和配置

安装MediaWiki要求用户拥有管理权限能同时运行PHP和兼容类型SQL数据库的服务器。有些用户发现设置虚拟主机能在很大程度上使得不兼容MediaWiki的网站的大部分内容在框架下（如Zope和Ruby on Rails）运行。云主机可以让用户省去手动建立新服务器的工夫。

安装PHP脚本能透过网络浏览器访问来初始化wiki的设置。软件为用户提示了必备参数的最小化设置，留下启用上传功能、增加网站标志、安装扩展等进一步的变更可透过修改包含在文件`LocalSettings.php`中的配置设置实现。MediaWiki的某些方面可以透过特殊网页或编辑某些页面进行配置。例如，滥用过滤器需要透过专门的页面设置，某些小工具可以在MediaWiki名字空间中创建JavaScript页面以进行添加。MediaWiki社区发布了一篇全面的安装指南。

### 标记

早期MediaWiki（及其前身UseModWiki）与其他维基引擎之间的差别之处在于代替驼峰式大小写的“自由链接”。当MediaWiki被创造时，通常的wiki需要采用类似于“WorldWideWeb”一样的文本创建关于“World Wide Web”（万维网）页面的链接。而MediaWiki中的链接则采取了另一种方法，是由双括号括起来的字创建的，它们之间的空格保持不变，如`[[World Wide Web]]`。这种变化符合创建百科全书的逻辑，且十分讲求名字的精确度。

MediaWiki使用了一种可扩展、轻量级的维基标记语言来设计，它比HTML更容易学习和使用。工具存在将表格在MediaWiki标记和HTML之间切换的转换内容。尽管有过创造MediaWiki标记语言规范的尝试，但共识似乎已经达到了维基代码需要上下文有关文法的程度。下面的对比分析展现了维基标记语言与HTML之间的差别。

MediaWiki语法｜对应HTML代码｜渲染输出

A dialogue "Take some more tea," the March Hare said to Alice, very earnestly. "I've had nothing yet," Alice replied in an offended tone: "so I can't take more." "You mean you can't take less," said the Hatter: "it's very easy to take more than nothing."

```mediawiki
==== A dialogue ====

"Take some more [[tea]]," the March Hare said to Alice, very earnestly.

"I've had nothing yet," Alice replied in an offended tone: "so I can't take more."

"You mean you can't take ''less''," said the Hatter: "it's '''very''' easy to take ''more'' than nothing."
```

```html
<h4><span class="mw-headline" id="A_dialogue">A dialogue</span></h4>

<p>"Take some more <a href="/wiki/Tea" title="Tea">tea</a>," the March Hare said to Alice, very earnestly.</p>

<p>"I've had nothing yet," Alice replied in an offended tone: "so I can't take more."</p>

<p>"You mean you can't take <i>less</i>," said the Hatter: "it's <b>very</b> easy to take <i>more</i> than nothing."</p>
```

（语出路易斯·卡罗《爱丽丝梦游仙境》）

### 编辑界面

学习MediaWiki的页面编辑工具被认为有挑战性。一项关于学生使用基于MediaWiki的wiki的分配情况的调查发现，当被问及wiki的主要问题的开放性问题时，24%提到了技术问题和格式，如“无法弄清楚如何加入图像。无法弄清楚如何显示带链接的文字，就像输入数字。”

为了使编辑长页面更容易，MediaWiki允许分段编辑页面（从段落标题处找到）。用户还可以标记编辑是否为小修改。例如更正拼写、语法和标点符号属于小修改，而增加新文本段落就不属于小修改。

有时一个用户正在编辑，第二个用户保存页面同一段落的编辑，之后当第一个用户尝试保存网页时，就会出现编辑冲突。那个第二个用户将获得机会将它的内容合并到当前展现第一个用户保存的编辑的页面。一个可选的扩展程序向特定用户组在编辑冲突时提供优先机会。

MediaWiki的用户界面已被本地化成不同的语言。维基内容本身可以设置、发送到“内容式语言”的HTTP标题和“lang”HTML属性。

### 操作系统及应用环境

- Microsoft Windows，例如：

Windows 2000、Windows Server 2003、Windows Server 2008

- Linux（例如，Fedora……）
- BSD（例如，FreeBSD……）
- macOS（前称Mac OS X），例如：

OS X Lion、Mac OS X 10.6.....

- 数据库：MySQL、PostgreSQL,MariaDB或SQLite
- 动态网页技术：PHP
- 网页服务器：Apache、Nginx或IIS

## 基本资料

- 域：官方标志
- 域：

<image>

- 作者：马格努斯·曼斯克，李·丹尼尔·克罗克
- 开发者：维基媒体基金会以及志愿者
- 发行日期：2002年1月25日
- 编程语言：PHP
- 操作系统：跨平台
- 语言：459
- 类型：Wiki引擎
- 许可协议：GPLv2+
- bodystyle：width:323px