文章来源:原创
一直想能够方便地浏览wikipedia,由于你懂的原因,造成很多困扰,那就试试能不能移植过来吧。
一、实现思路
维基提供了多种数据下载方式,如静态html页面,Kiwix软件等等,我是想把wiki挂在我的博客上,于是我的实现思路是:lnmp+mediawiki。
二、搭建mediawiki
可参考这位大佬的搭建过程,mediawiki简介及安装。这里有个小插曲,就是在建立mysql数据库时,我没有分清用于安装的数据库用户名和用于网页使用的数据库用户名,选择了“使用和安装程序相同的账号”,导致走了一段弯路,建好后用navicat,用root用户名,密码为空,结果连不上数据库特此提醒大家。按照上面大佬的提示,我又新建了一个wikiuser的数据库用户,设好密码后,navicat能够正常连接。
三、导入wikipedia数据
导入数据我采用的是mediawiki自带的php命令:importDump.php,步骤如下:
1.下载中文版wiki(20210901),这是9月1号的最新版。如果有更新的话可以从索引页面
下载,用Ctrl+F
查找zhwiki
就可以了。
2.将下载下来的文件zhwiki-20210901-pages-articles-multistream.xml.bz2
,大约2.2G,上传到mediawiki下面的maintenance
目录。然后cd到maintenance
目录下,应用如下命令:
nohup php importDump.php zhwiki.xml.bz2 &
这里需要说明几点:
1.nohup加&的命令是因为数据库量太大,运行可能要几十个小时,@(汗)@(汗)所以要在后台运行。
2.一开始我把xml文件解压后执行的上述命令,解压后的xml文件达10G,我的硬盘才40G,导致硬盘不够用,无法完全导入,查阅mediawiki官方文档后说可以用
.gz
和bz2
两种文件压缩格式,(注意.tar.gz
和.tar.baz2
的不行),可以自动解压缩,这样又可以节省一大块硬盘空间。
3.重建链接
nohup php rebuildrecentchanges.php &
也是挂无终端后台去run吧。据说要几天的时间,不是几天,是90天,额滴神啊!@(狂汗)@(狂汗)
更多php命令请参见:MediaWiki 官网
4.其他注意事项
可能导入的时候会要求安装一些扩展,比如Flow
扩展,下载后别忘了在Localsettings.php
里加入wfLoadExtension( 'Flow' );
项。
可能还是运行出错,类似这样的错误:
解决办法是:进入Flow目录,运行composer update
更新一下,就可以了。
ggb
10月14日请问博主现在可以网页端访问了导入的数据了么
Windows 7 · Google Chromeflypig 博主
10月16日@ggb ,可以啊,但是没有图片,不知道在哪里下载图片。
MacOS · Google Chrome佚名1
3月7日所以 如何使用bz2 压缩格式 直接导入呢???网上找了好多命令都没有成功
Windows 10 · Google Chromeflypig 博主
3月10日@佚名1 ,bz2格式直接导入不了,我试过很多次了,我前几天刚导入完,花了一个月时间,数据库大概7.5G
Windows 10 · Google Chromehejian
2022年10月07日感谢博主。
Windows 10 · Google Chrome我也尝试把维基百科搭在了自己的服务器上,方便学生们查资料,现在在页面导入那一步啦~
flypig 博主
2022年10月09日@hejian ,你需要一个最少150G硬盘的服务器。而且要小心被查水表。
Windows 10 · Google Chrome隔壁小胡
2021年10月12日好久没看到博主更新了呢@(呵呵)
Windows 10 · Google ChromeFlyPig 博主
2021年10月15日@隔壁小胡 ,最近工作太忙了,另外还在搞wiki,没顾上。
Windows 10 · Google ChromeYalois
2021年10月02日从未想过,长见识了
Linux · Google ChromeFlyPig 博主
2021年10月03日@Yalois ,正在导入中,无奈硬盘太小,导不全了。
iPhone · SafariYalois
2021年10月02日我从来没想过可以造wiki
Linux · Google Chrome