
| 类型 | Wiki 引擎 |
| 语言 | PHP |
| 代表 | 维基百科 |
| 官网 | mediawiki.org |
MediaWiki 是世界上最著名、功能最强大的开源 Wiki(协作知识库)引擎,正是它在背后驱动着全球最大的百科全书维基百科(Wikipedia),以及维基媒体基金会旗下的所有项目(如维基词典、维基文库等)。MediaWiki 专为大规模、多人协作编辑、海量条目的知识库场景而生,在内容版本管理、参考引用、模板复用和社区协作治理等方面做到了业界顶级水准,是构建大型百科、专业领域知识库、游戏资料站和企业内部 Wiki 的事实标准之一。能支撑起维基百科这样级别的站点,本身就是对它工程能力最有力的证明。
MediaWiki 于 2002 年诞生,最初正是为了支撑维基百科日益爆炸式增长的内容而专门开发,用以取代早期所用的 UseModWiki 和后来的 Phase II 软件,由 Magnus Manske 等人发起,此后长期在维基媒体基金会的主导下持续发展演进。它采用 GPL 许可证开源。经过二十多年的持续打磨,它稳定支撑着维基百科这一访问量极高、条目数以千万计、注册编辑者数以百万计的超大规模站点,其在性能、可扩展性与可靠性上的设计,经受住了世界级流量与协作规模的长期考验,这是绝大多数 Wiki 软件从未面对过的挑战。
MediaWiki 使用 PHP 编写,数据库支持 MySQL/MariaDB(主流选择)、PostgreSQL、SQLite。为了应对超大流量,它在架构上设计了完善的多级缓存体系,可以对接 Memcached、Redis 等做对象与解析缓存,并在生产中配合 Varnish 反向代理、CDN 等共同工作。它拥有一套自成体系的 Wiki 标记语言(Wikitext),以及功能极其强大的模板(Template)与解析器函数(Parser Functions)机制;后期还引入了 Lua 脚本(通过 Scribunto 扩展)来编写复杂的模板逻辑,以及降低编辑门槛的可视化编辑器,技术体系深厚而完整。
MediaWiki 拥有数量庞大的官方与社区扩展(Extensions)。其中一些关键扩展几乎是大型 Wiki 的标配:VisualEditor(可视化编辑器,极大降低了 Wikitext 的使用门槛)、Scribunto(用 Lua 编写高性能模板)、Cite(规范的参考文献引用与脚注)、CirrusSearch(基于 Elasticsearch 的强大全文搜索)、Semantic MediaWiki(把 Wiki 内容语义化、可结构化查询)等。皮肤(Skin)方面有维基百科同款的 Vector、清爽的 Timeless、以及移动端专用的 MinervaNeue 等。整个生态极其成熟,几乎能满足任何规模和类型的知识库需求。
MediaWiki 的基础部署是典型的 LAMP/LNMP 流程:配置好 PHP 与数据库,运行 Web 安装向导生成核心配置文件 LocalSettings.php 即可。对于小型 Wiki,一台普通服务器就足够。但若要支撑中大型乃至大流量站点,则需要精心配置对象缓存(Redis/Memcached)、作业队列(Job Queue)、Elasticsearch 搜索、CDN 与图片缩略图服务,运维复杂度会显著上升。升级时也需谨慎处理数据库 schema 变更和各扩展之间的版本兼容。总体而言,维护一个像样的中大型 Wiki,对运维能力有相当高的要求。
MediaWiki 适合大型百科、专业领域知识库、企业内部 Wiki、游戏与产品资料站,以及任何需要严肃协作与版本治理的场景。优点是:协作与版本控制能力顶级、可扩展性极强、经过维基百科级别的实战验证、模板系统强大、生态成熟可靠。缺点是:Wikitext 标记语言学习曲线陡峭、默认界面偏朴素老派、配置与运维复杂、对个人或小站点而言显得过于厚重。若与同类对比,它远比 DokuWiki、Wiki.js 强大和重型,适合大规模协作。要做严肃的大型知识库,它几乎是一个无可替代的行业标杆。
除了人尽皆知的维基百科,MediaWiki 在现实中还有大量典型应用场景,了解这些有助于判断它是否适合你。最常见的是各类游戏 Wiki、影视与动漫资料站、粉丝百科——这类站点条目海量、需要多人协作、强调内容互链与模板复用,正是 MediaWiki 的主场,许多大型游戏的中文 Wiki 都构建于其上。其次是专业领域知识库与学术协作,如医学、法律、生物等领域的专家协作型百科,看重它严谨的版本追溯和引用规范。再者是大中型企业与组织的内部知识库,用以沉淀制度文档、技术资料和团队经验,看重其成熟的权限、协作与防破坏机制。至于它适合的人群,可以这样概括:如果你要做的是一个条目数量庞大、需要长期多人协作、对版本管理和内容治理有严肃要求的知识库,那么尽管 MediaWiki 上手门槛高、运维偏重,它依然是最值得投入的选择;反之,如果只是个人笔记或小团队几十页的简单文档,用它无异于杀鸡用牛刀,DokuWiki 或 Wiki.js 会轻松得多。换言之,MediaWiki 的厚重与复杂,本质上是为了驾驭真正大规模协作而付出的必要代价,在它擅长的领域里,这份代价物有所值,几乎没有对手能与之抗衡。
归根结底,MediaWiki 是一款为极致协作规模而生的软件。它的复杂、厚重与陡峭的学习曲线,都是为了驾驭维基百科那样千万级条目、百万级编辑者的庞大协作体系所必须付出的代价。在它真正擅长的大型协作知识库领域,它的版本治理、模板复用、引用规范和扩展能力至今几乎没有真正的对手。对任何立志构建一个需要长期、严肃、多人协作的大型知识库的人来说,迈过它的入门门槛,所换来的将是一套经过世界级实战检验、几乎能应对一切协作挑战的坚实底座。
对真正决定采用 MediaWiki 的团队,务实的建议是:做好运维投入的心理准备。小型 Wiki 用基础 LAMP 环境即可,但一旦内容和访问量增长,就需要逐步引入对象缓存(Redis)、作业队列、Elasticsearch 全文搜索乃至 CDN,这些都需要专人维护。新手可先用官方安装向导跑起一个基础实例,再按需启用 VisualEditor(降低编辑门槛)、Cite(引用)、Scribunto(Lua 模板)等关键扩展。编辑培训也不可忽视——Wikitext 对普通贡献者有门槛,部署可视化编辑器能显著提升参与度。把这些做扎实,MediaWiki 就能支撑起一个真正大规模、可长期演进的协作知识库,在它擅长的领域里,这份前期投入将换来几乎无可替代的协作能力回报。

| 类型 | Wiki 引擎 |
| 语言 | PHP |
| 代表 | 维基百科 |
| 官网 | mediawiki.org |
登录 后参与讨论
暂无讨论,来发表第一条评论吧