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