`
john2007
  • 浏览: 77831 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

架设Wikipedia的本地镜像

阅读更多

本文试图总结架设Wikipedia镜像的过程。

 

  • 准备工作

首先需要安装Mediawiki软件,以及Mediawiki所依赖的软件,Apache,Php5,Mysql等,这里就不详细讲解了。对于懒人,有两个选择:

第一是安装Debian[1],这样apt-get install mediawiki就可以完成软件的安装。

第二是下载VMWare Player[2]和一个预安装Mediawiki的虚拟机[3]。

其次需要安装Java[4],因为导入数据的工具[5]是用Java实现的。

然后是硬盘,如果是英文wikipedia[6],需要准备大概10G的空间,如果是中文[7],需要1G左右的空间。注意Mysql数据库文件(典型的安装会使用/var/lib/mysql这个目录)所在的分区应具有足够的空闲空间。

最后,也是最重要的是,想办法下载wikipedia的数据文件,由于数据文件的网站[8],和导入数据文件的工具及其使用说明[9]都被封锁,这个就得自己想办法,各显神通了。由于数据文件很多,记得我们需要的文件名字看起来像是:

enwiki-20061130-pages-articles.xml.bz2 [10],
zhwiki-20061130-pages-articles.xml.bz2 [11]

另外,在制作镜像的过程中,需要对Apache的配置[12]、Mysql的管理[13]和Php[14]有一个简单的了解。

假设我们想要镜像英文Wikipedia,那么准备工作完成之后,我们有一个安装好了Mediawiki,以及下面两个文件:

数据文件:enwiki-20061130-pages-articles.xml.bz2

导入工具:mwdumper.jar [5]

  • 初始化Wikipedia

安装Mediawiki软件后,需要完成初始化配置。建立镜像的初始化的过程和安装一个新的Wikipedia没有什么不同。我们假设初始化使用以下的参数:

Mediawiki的URL:http://localhost/mediawiki

Mediawiki的安装目录:/var/www/mediawiki

Mediawkik的配置文件位于/var/www/mediawiki/LocalSettings.php

Mysql数据库为wikidb,用户wikiuser,密码123456

  • 清空数据库

初始化过程不但建立了Wikipedia所需要的数据库Table,而且还加入了一些初始记录。为了导入Wikipedia的镜像数据,我们需要首先清空数据库的部分表格。

下面的内容基本参考自某人的镜像过程[15]:

$ mysql -p wikidb
Password: ******
mysql> delete from page;
mysql> delete from revision;
mysql> delete from text;
  • 配置mysql

数据倒入过程会使用很长的SQL语句,以及生成大量数据库的Undo记录。所以需要事先对mysql数据库进行配置。先编辑/etc/mysql/my.cnf,在合适位置加上下面内容:

[mysqld]
max_allowed_packet = 128M
innodb_log_file_size = 100M

[mysql]
max_allowed_packet = 128M
  • 重启动mysql
# /etc/init.d/mysql restart
  • 导入数据

用下面的命令倒入数据,大概需要1天的时间才能全部导入完毕。导入完毕之后,这个Wikipedia镜像就可以使用了。

java -Xmx600M -server -jar mwdumper.jar --format=sql:1.5 
  enwiki-20061130-pages-articles.xml.bz2 
| mysql -u wikiuser -p wikidb
  • 可选:清空Undo日志

导入过程不但会生成10G的数据库文件,也会生成大约10G的Undo log,检查你的Mysql数据库的日志目录(典型的值是/var/log/mysql),及该目录所在的分区,注意不要把分区写满。导入过程中,我们如果发现即将写满分区,可以用Mysql的管理命令清空Undo日志(需要用mysql超级帐号登入)。

$ mysql -u root reset master;

  • 可选:修复数据

导入过程中可能会有一些数据表出错,包括pagelinks,templatelinks,page表,我们可以在导入数据完成后,用mysql的修复命令:

$ mysql -p wikidb
mysql> repair table pagelinks extended;
mysql> repair table page extended;
mysql> repair table templatelinks extended;

修复过程可能会很慢,耐心等待。

  • 安装扩展项

此时,虽然可以访问Wikipedia,但很多页面的部分内容不能正常显示,这是因为Wikipedia依赖很多mediawiki的扩展项才能够正常工作,而这些扩展项默认不会安装。Wikipedia所需的全部扩展项详见官方文档[16]。

首先检查是否安装Subversion,然后需要突破封锁下载到mediawiki extensions。

$ svn co -r REVISION \
 
http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions \
 ~/extensions

其中REVISION是你所安装的Mediawiki软件对应的版本号,如果是mediawiki1.7,则将REVISION替换为15387,如果是其他版本的mediawiki,自己查。

虽然官方的Wikipedia使用很多扩展,但如果只想完成Wikipedia镜像,我们只需要关心少数几个扩展。下面的命令把这些extension安装到/var/www/mediawiki目录里。

$ cd ~/extensions
$ mkdir /var/www/mediawiki/extensions/ParserFunctions
$ cd ParserFunctions
$ cp Expr.php ParserFunctions.php 
    /var/www/extensions/ParserFunctions
$ cd ..
$ cd Cite
$ cp Cite.php Cite.i18n.php 
    /var/www/mediawiki/extensions/
$ cd ..
$ cp -a CategoryTree/ /var/www/mediawiki/extensions/
$ cp -a wikihiero /var/www/mediawiki/extensions/
$ find -name .svn | xargs rm

 

然后编辑配置文件/var/www/mediawiki/LocalSettings.php,追加以下内容:

require_once("$IP/extensions/ParserFunctions
/ParserFunctions.php");
$wgUseTidy=true;
require_once("$IP/extensions/Cite.php");
$wgUseAjax = true;
require_once("$IP/extensions/CategoryTree
/CategoryTree.php");
require_once("$IP/extensions/wikihiero/wikihiero.php");

这时应该可以正常显示大部分的Wikipedia页面了。

  • 显示数学公式

安装完扩展项之后,应该可以正常显示大部分页面,但还有一些带有数学公式页面无法显示。Mediawiki内置了对数学公式的支持,但是需要系统已经安装有Latex等相关软件。

在Debian系统中,确信已经安装tetex-bin,ghostscript,imagemagick,mediawiki-math这几个package。其他系统请自行安装相应软件。

编辑配置文件/var/www/mediawiki/LocalSettings.php,追加以下内容:

$wgUseTeX=true

这时所有的数学公式应该都可以正常显示了。

  • 可选:全文搜索

建立Wikipedia所需的所有工作到这里基本完毕,只是目前搜索功能只能完全匹配标题,如果需要全文搜索功能,还需要重新建立全文索引。索引的过程不但非常非常慢(几天到一周),而且数据库占用的磁盘空间会从不到10G膨胀到将近30G。

如果还是希望有全文搜索功能,参见[15]的最后一部分,这里就不详细叙述了。

  • 参考
  1. http://www.debian.org
  2. http://www.vmware.com/products/player
  3. rPath MediaWiki Appliance
  4. http://java.sun.com
  5. http://download.wikimedia.org/tools
  6. http://en.wikipedia.org
  7. http://zh.wikipedia.org
  8. http://download.wikimedia.org/
  9. http://download.wikimedia.org/tools/README.txt
  10. http://download.wikimedia.org/enwiki
  11. http://download.wikimedia.org/zhwiki
  12. http://www.apache.org
  13. http://www.mysql.org
  14. http://www.php.net
  15. Mirror the Wikipedia
  16. http://en.wikipedia.org/wiki/Special:Version


 

 

http://www.xxlinux.com/linux/article/network/server/20070904/9623.html

分享到:
评论

相关推荐

    架设工具含镜像 架设工具含镜像

    架设工具含镜像架设工具含镜像架设工具含镜像架设工具含镜像架设工具含镜像架设工具含镜像架设工具含镜像架设工具含镜像架设工具含镜像架设工具含镜像架设工具含镜像架设工具含镜像架设工具含镜像架设工具含镜像架设...

    PHP本地架设工具

    PHP本地架设工具

    Shell脚本架设YUM本地源

    YUM本地源 红帽YUM本地源

    大话端游-已本地架设成功.txt

    唯一一个架设成功的大话端游,包内有视频架设教程和文字教程以及架设所需软件。因资源大于上传限制,所以上传到百度云。

    Linux下配置NTP架设本地的时间服务器

    "Linux下配置NTP架设本地的时间服务器" Linux系统下的时间同步是非常重要的,特别是在服务器环境中,时间的准确性直接影响着系统的稳定性和安全性。Linux系统提供了多种时间同步协议,其中Network Time Protocol...

    http工具,架设本地服务

    标题中的“http工具,架设本地服务”指的是利用特定的软件或命令行工具在本地计算机上创建一个HTTP服务器,使得用户可以在自己的机器上运行并测试Web应用,而无需依赖远程服务器。这种工具通常用于开发、调试或者...

    MATLAB仿真镜像法.pdf

    在实际工程中,镜像法广泛应用于解决水平架设的双线传输线的电位、电场计算问题。当传输线离地面距离较小的时候,需要考虑地面的影响,地面可以看作一个无穷大的导体平面。镜像法应用中需要注意以下几点:1)镜像电荷...

    诛仙架设vps教程linux版

    你如果本地都玩不转,我劝你还是放弃了!还有,这将是全网唯一一个讲vps教程的文件!就是TXT,我觉得你要是能看懂那你肯定能架设出来!你要是看不懂,就算是我手把手也教不会!事儿,就是这么个事儿,想好了再下!...

    HTTp本地服务器架设傻瓜版

    用于架设本地http服务器,做自己的网站,做自己的空间

    HTTP服务器架设 HTTP服务器架设

    HTTP服务器架设 HTTP服务器架设 HTTP服务器架设 HTTP服务器架设 HTTP服务器架设 HTTP服务器架设

    操作系统的网络镜像安装法

    需要准备的软件还包括带网络功能的Ghost企业版、Tftpd32用以架设DHCP和TFTP服务器、3ComDabs用于制作PXE启动镜像等。其中,Ghost企业版中的多播功能可以在局域网内建立服务端,而其他计算机作为客户端接收镜像进行...

    《完美世界国际版》综合架设

    在进行这些操作之前,应该保证配置文件已经在本地编辑好,这样可以避免在服务器上重复编辑保存的动作,提高工作效率。然而,对于一些必须在服务器上完成的配置调整,还是应该按照既定的流程来操作。 多机负载配置则...

    本地服务器架设工具[增强版]

    本地服务器架设是IT行业中一个基础但至关重要的概念,它涉及到网络服务的部署与管理,尤其是在个人或小团队开发、测试环境中。"本地服务器架设工具[增强版]" 提供了一个简便的方式,让用户在自己的计算机上搭建小型...

    企业邮箱服务器架设

    企业邮箱服务器架设 企业邮箱服务器架设是指企业建立自己的电子邮件服务器,以满足企业员工的电子邮件需求。企业邮箱服务器架设可以实现电子邮件的发送和接收,提高企业的通信效率和安全性。 知识点1:企业邮箱...

    服务器架设教程(服务器架设)

    服务器架设教程【服务器架设教程】(服务器架设)

    风火之旅架设

    《风火之旅架设教程深度解析》 在深入解析风火之旅架设教程之前,我们先来了解一下何为“风火之旅”。风火之旅是一款基于奇幻背景的大型多人在线角色扮演游戏(MMORPG),以其丰富的剧情、精美的画面和深邃的游戏...

    千年架设视频教程.mp4

    千年架设视频教程

    内网架设服务器详解 内网架设服务器详解

    内网架设服务器详解 内网架设服务器详解 内网架设服务器详解

    天堂1架设教程

    在IT行业中,游戏服务器的架设是一个相对复杂的任务,尤其是对于一些知名的游戏,如"天堂1"这样的在线游戏。然而,这个"天堂1架设教程"显然是为了简化这个过程,为初学者提供一个友好的指南。这篇教程的目标是帮助...

    红月架设视频教程.mp4

    红月架设视频教程

Global site tag (gtag.js) - Google Analytics