这2天在搭建wikipedia的镜像,依然是试验备用机器。
1.当然是先去wikimedia下载最新的中文包。英文就算了,太大。中文比较合适,大小300M不到。
http://download.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2
一般选择 pages-articles.xml 下载就行了。它是bz2文件,用bzip2 -d “文件名” 打开,最后会得到个 “.xml”。
其它有兴趣的自己看 http://download.wikimedia.org/zhwiki/latest/目录。
在继续下一步之前,完成以下工作:
cp php.ini php-cli.ini ,这样“命令行”执行php代码时,自动使用 php-cli.ini 的配置信息。
把 php-cli.ini 中的
max_execution_time = 30 ; Maximum execution time of each script, in seconds
memory_limit = 8M ; Maximum amount of memory a script may consume (8MB)
这两行改高一点,不妨设 300/ 80M , 这样保证长时间命令行运行不出事。俺改成256M. :)
2、清空数据库,以便导入
mysql -p wikidb
Password: ******
mysql> delete from page;
mysql> delete from revision;
mysql> delete from text;
3.用工具导入
工具有很多。自带的importDump.php和mwdumper.jar都不错。其它工具暂未测试
a.用 webroot/maintenance/importDump.php “那个.xml” 导入数据库,一个zh_wiki 一般要导好几个小时。可以: nohup php importDump.php xxx.xml & 挂在无终端后台去run.
之后,运行 webroot/maintenance/refreshLinks.php ,这是为了重建wiki数据之间的相互关联,这个时间更长,所以也挂后台。
b.推荐工具 mwdumper.jar
http://download.wikimedia.org/tools/mwdumper.jar
语法如下:
java -jar mwdumper.jar --format=sql:1.5 pages_full.xml.bz2 |
mysql -u <username> -p <databasename>
速度不错
445,322 pages (81.126/sec), 445,322 revs (81.126/sec)
昨天第一次更快,700pages/sec.今天删除后重导数据就变慢了,没想通。
同样 /var/lib/mediawiki/maintenance$ php refreshLinks.php 更新
附记:这样只是做了词条的索引,没有做全文索引。有兴趣的自己看资料。不过硬盘和数据库要准备大些。哈哈。
后来发生错误如下: 存档,下次再看。
Fatal error: Allowed memory size of 20971520 bytes exhausted (tried to allocate 161230 bytes) in /usr/share/mediawiki/includes/Parser.php on line 1845
文章评论
你好:我最近需要用维基百科中文版的数据库镜像做实验。但是http://download.wikimedia.org/这个网站出问题了。已经好久了。看到你这篇博文,想问下你有没有数据库镜像?谢谢了. 如有,请email联系[email protected] ...
@orzvsorz 呵呵,谢谢关注,这个镜像我已经丢了好久了,数据库也没了。按照流程来,应该是可以做完整镜像的吧。