MediaWiki 软件最初是为自由内容百科全书维基百科
所开发的,目前有一些公司机构将其部署为内部的知识管理和内容管理系统。一些教育机构也让学生使用 MediaWiki 来进行小组项目的管理和维护。而大多数则是开放浏览和编辑的、有着特定主题的百科站点。
MediaWiki 是一个自由软件:也就是说,它可以在自有的服务器上创建一个属于自己的私有 Wikipedia,管理自己特定的知识体系
。把自己的服务器腾出一块地方加上一个域名,自己的私人 wiki 搞起来。🤓 比如说建一个 MediaWiki 的词条记录一下安装过程:
- 去我的维基参观参观:XD.SH.CN WIKI
此外,还有一个词叫做维基农场
,也就是提供多个维基系统寄存的服务器,用户可以通过申请或者是被邀请的方式创建独立的 wiki 站点。
比如在国内比较大的维基农场叫做灰机wiki
,上面有各种影视、游戏内容的 wiki。比方说记录了游戏里面的人物、物品、武器的属性等内容,亦或者是电影里面的各种细节人物和他们的故事等,方便玩家或者爱好者查询和共同编辑、壮大,形成一部专有的百科全书。
比如,下图中就是电影《驯龙高手》的专题中文维基:
需要注意的几个点:
- 为什么使用 MediaWiki 搭建 wiki 站点?毕竟作为一个自由软件,能够长期地维护下去不容易,但是它目前支撑起了全球最大的百科全书
Wikipedia
,或者说 Wikipedia 支撑起了它,所以在性能、维护、社区文档方面都是 OK👌 的,虽然肯定没有WordPress
这样的建站系统资源(包括教程、易用性、插件、主题等)丰富。 MediaWiki
的编辑语法和markdown
还是有所区别的,有两种方式可以实现:用它自带的可视化编辑器或者去官网的词条“格式化文本”,看看怎么编辑。MediaWiki
有个我不喜欢的地方就是页面查看权限的管理,词条要么对外全可见要么全不可见。虽然可以添加例外,但是好麻烦 🤣。不过,当它对外全不可见时,你可以邀请和管理特定的人员作为注册用户进行查看、编辑。- 需要一个自己的服务器或者虚拟主机。可以去
阿里云
或者是腾讯云
或者是什么什么云看看,国内的要备案、国外的要看 ip 是否被 ban。我反正始终推荐vultr
,实时计费、价格实惠(虽然我用的是白嫖的腾讯云 emmmm)。 - 服务器不像虚拟主机:付完钱就能用。所以装个
宝塔面板
吧——免费。(什么是宝塔面板?它可以在你新买的服务器上一键部署 LAMP/LNMP、网站、数据库、FTP、SSL,轻松管理多个站点。)
—全文完—如果想试试 MediaWiki 的话,那就继续—
在宝塔面板上安装 MediaWiki
- 安装
宝塔面板
。(如何安装宝塔面板?) - 网站 → 添加站点,在此过程中可以
创建数据库
也可以不创建,之后在数据库
中新建亦可。 - 在 MediaWiki 官网下载安装包,会下载到一个
.tar.gz
归档文件。 - 解压至主机新建的网站目录。千万要注意可安装的环境(比如 php 版本和 MediaWiki 等)。
- 在
freessl.cn
上申请免费的 ssl 证书,并将生成的pem
和key
文件贴到宝塔面板中,具体步骤可以查看建站 ssl 证书。(必备:如果宝塔面板上已存在一个带有强制 ssl 的网站,想要新建该站点的二级域名网站。若二级域名网站没有加上 ssl,会导致该网站重定向至前者。) - 在你的域名服务商进行域名解析。
- 安装完之后即可使用域名访问。
- 根据网站的提示进行安装。
- 在此过程中可能需要安装 php 的
fileinfo
插件。若使用宝塔面板
进行安装,则可以在php设置
中的安装扩展中直接进行下载。
其他
在 MediaWiki 中,所有的配置基本上都在一个叫做localsettings.php
文件中进行的,具体内容可以在官方文档上找到(文档真的非常的细,虽然有些内容可能有所过时)。
修改默认主题
## Default skin: you can change the default skin. Use the internal symbolic
## names, ie 'vector', 'monobook':
$wgDefaultSkin = "timeless";
代码高亮
方案 A(暂时未成功):
- 在 wiki 的搜索框中搜索 MediaWiki:Common.js 文件。
- 在文件中添加相关 js 文件的 cdn 链接。
- 保存文件清空浏览器内存。
方案 B:使用预置的格式化文本
- 使用
<pre></pre>
包裹住代码即可。
添加外链图片
<img src="外链图片网址" width="60%" />
访问权限和编辑权限
$wgGroupPermissions['*']['createaccount'] = false; //不对外开放注册
$wgGroupPermissions['*']['edit'] = false; //对非注册用户关闭修改
$wgGroupPermissions['*']['read'] = false; //对非注册用户不可见
$wgWhitelistRead = [ "首页", "HXD.RED WIKI:关于" ]; //这里的页面除外