MediaWiki建站 基础篇
MediaWiki建站 基础篇
MediaWiki,超过20年历史的屎山网站框架,被包括维基百科、萌娘百科、灰机wiki、BWIKI甚至是邮编库等网站作为基础软件使用。
2020年左右我注册了中文维基百科账号,2023年3月22日,我第一次尝试在云服务器上部署MediaWiki实例,直到现在拥有超过400多个用户,在这之中慢慢的也积累了一些运营经验。遂决定写点什么记录一下运维的一些杂七杂八的事情。
鉴于国内MediaWiki的教程相对较少,除互联网上比较“知名”(能搜到的),也就是某位部署的“心站日志”之外,已经使用MediaWiki的网站核心技术理论上也是“暂不外传”。希望将来有人找到这篇文章的时候能够给他们带来些微的帮助,也让我能够更好的思考一下写下这些文字的意义。
我将尝试从比较基础的部分写起,但是我必须假设阅读这篇文章的同学拥有对服务器系统、网站建设等基础知识有一定概念(至少不至于“啊什么是Linux啊”“啊什么是数据库啊阿巴阿巴”)。文章比较意识流见谅,之后想到更多的再补充。
MediaWiki适合吗
在尝试在生产环境选用MediaWiki作为软件之前,你应该认真考虑MediaWiki是否适合你配得上你。
在MediaWiki的官网上有句话挺有意思的,虽然最后那个词之前是“不二之选”:
有数万个网站和数千家公司和组织都在使用MediaWiki软件, 维基百科和本网站亦是由其驱动。 MediaWiki可帮助您收集和组织知识,并将其提供给人们。 其功能强大、多语言、自由开源、可扩展、可定制、可靠、且免费。 了解更多信息,以及MediaWiki是否是您的天生绝配。
如果你还不了解MediaWiki到底能呈现出来什么样的效果,下面我列出的几个都是使用MediaWiki作为基础软件的网站,或许可以有一些启发:
- 维基百科,全球最大的百科全书,WMF(维基媒体基金会)的得意之作,旗下也有维基数据、维基共享资源等一堆使用MediaWiki的项目。
- 神奇宝贝百科,一个关于神奇宝贝(宝可梦)的百科网站,在观感上更接近大多数MediaWiki网站的理想状态。
- 萌娘百科,专注于ACGN的百科网站,虽然因为站务和多方面问题现在存在一些争议,但在对MediaWiki的相关开发上也有可以参考的地方。
- 灰机wiki,比较知名的wikifarm(维基农场)之一,有很多游戏相关的wiki站点。
- BWIKI,这个就不说了,如果不是有Wappalyzer的技术分析很难看出来这是个MediaWiki网站。
这里面的维基百科、神百是比较接近MediaWiki页面风格的网站,而萌娘百科、灰机wiki、BWIKI则是在MediaWiki的基础上进行了一些定制化的开发,如果开发者技术过硬也可以实现类似的效果。
如果只是想写一个博客或者是个人维护的项目,我更推荐用WordPress或者VuePress这种更适合个人博客的软件,MediaWiki的定制化开发和维护成本都比较高,而且MediaWiki的页面风格也不是很适合博客。但如果想要一个团队协作的知识库,MediaWiki或许可以作为选择之一。
准备工作
MediaWiki是一个使用PHP开发、使用数据库存储内容、动态生成网页内容的软件。和我博客使用的VuePress不同,MediaWiki需要一个完整的后端服务器环境运行,而后者这样的静态网站生成器则不需要。
因此不管是云服务器还是自建服务器也好,你需要准备一个有硬件支持的开发环境。
一般来说我们日常使用的Windows系统并不推荐部署服务器,因为即使是Windows的Server版本也有很大的内存和存储占用,虽然理论上可视化的操作系统更容易上手,但是在生产环境更推荐使用Linux。
如果你确信你的站点将来的访问量绝对超不过某个很小的用户数(大概30个左右吧),那么一台4核心+8GB内存
的机器理论上可以满足你的需求。否则建议尽量使用可以承载大量并发CPU以及尽可能大的内存的服务器。
存储方面随用随加,除了数据库的存储空间,MediaWiki的文件(图片、音视频、PDF文档等)存储也需要大量的空间。
带宽方面,建议使用5-10Mbps
以上,这对于服务器来说其实是一个相对均衡的值,因为理论上我们在之后不能完全依靠源站响应来保证访问速度,像图片等大文件的分发我们要使用到CDN(内容分发网络)等技术,在后文会提到。
有这么一台服务器,我们来解决下面的问题。
服务器系统配置
MediaWiki推荐使用LNMP
架构,即Linux(操作系统)+Nginx(Web服务器)+MySQL(数据库)+PHP(编程语言),这是我目前在用的,也是被大量使用的架构之一。如果你熟悉Apache、MariaDB等其他技术栈,也可以尝试使用其他架构,但真的不要用Windows。