- task:搭建wiki镜像
- mediawiki (基于php的开源软件,用于搭建wiki站点)
- wiki转储(wikidumps的数据)
wiki转储的官方网站: https://dumps.wikimedia.org/
建议通过镜像网站下载(不限速):https://ftp.acc.umu.se/mirror/wikimedia.org/
wiki转储一般半个月发布一次,注意下载的时候看一下当前最新版本是否已转储完成。
另:转储上有提供每次更新的增量文件,值得研究一下。
英文版wikipedia的转储数据:enwiki
中文版Wikipedia的转储:zhwiki(文件大小只有enwiki的十分之一左右)
//记录行号
enwiki-20190520-pages-articles-multistream-index.txt.bz2
//主文件
enwiki-20190520-pages-articles-multistream.xml.bz2
//metadata(这个文件是最大的,不知道里边具体有啥)
enwiki-20190520-pages-meta-current.xml.bz2
//另有每次转储的更新文件,可以研究。本次做完整镜像,因此不做那些考虑。
http://www.mamicode.com/info-detail-2445563.html
yum install httpd mariadb-server mariadb
//修改httpd的配置文件,把DocumentDirectory指向/home/mediawiki(与4中对应即可)
systemctl enable mariadb
systemctl enable httpd
systemctl start httpd
systemctl start mariadb
CREATE USER 'wiki'@'localhost' IDENTIFIED BY '123';
CREATE DATABASE wikidb;
GRANT ALL PRIVILEGES ON wikidb.* TO 'wiki'@'localhost';
FLUSH PRIVILEGES;
show databases;
SHOW GRANTS FOR 'wiki'@'localhost';
注:部门虚拟机上php版本好像不适用,建议卸载重装
//查看版本
rpm -qa|grep php
//将下边的版本号换成rpm -qa得到的版本号(下边指令可能未列全)
//因为存在依赖关系,下边的几条指令需按顺序执行
rpm -e php-mysql-5.1.6-27.el5_5.3
rpm -e php-pdo-5.1.6-27.el5_5.3
rpm -e php-xml-5.1.6-27.el5_5.3
rpm -e php-cli-5.1.6-27.el5_5.3
rpm -e php-gd-5.1.6-27.el5_5.3
rpm -e php-common-5.1.6-27.el5_5.3
// rpm -e掉 rpm -qa 中的全部包
yum install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum install -y php71w-fpm php71w-opcache php71w-cli php71w-gd php71w-imap php71w-mysqlnd php71w-mbstring php71w-mcrypt php71w-pdo php71w-pecl-apcu php71w-pecl-mongodb php71w-pecl-redis php71w-pgsql php71w-xml php71w-xmlrpc php71w-devel mod_php71w
cd /home
wget https://releases.wikimedia.org/mediawiki/1.32/mediawiki-1.32.1.tar.gz
cd /data //最好把mediawiki解压到/data中,空间充足
tar xvf /home/mediawiki-1.32.1.tar.gz
ln -s mediawiki-1.32.1/ /home/mediawiki
chown -R apache:apache /data/mediawiki-1.32.1
systemctl restart httpd
浏览器打开:http://IP/mediawiki/index.php 下一步即可
- 数据库选MySQL。
- 数据库主机填 ip:3306 (端口注意对应)。
- 数据库名称、用户名、密码按照前边的设置填写,配置工具会检测合法性。
- 数据库引擎选InnoDB,编码选二进制。
- 设置全局名称和添加管理员。
- 会生成一个LocalSetting.php,把这个配置文件放在index.php的同级目录,重启httpd即可。
- 下载 enwiki-20190520-pages-articles-multistream.xml.bz2
- 解压。一定要bzip2 -kd xxx.bz2,否则会把原始包删除。
参考链接: https://www.mediawiki.org/wiki/Manual:Importing_XML_dumps
shell登陆,进入mediapedia下边的maintaince路径,执行:
cd /data/wiki/mediawiki-1.32.1/maintenance/
php importDump.php --conf ../LocalSettings.php /path_to/dumpfile.xml.gz
此方法只适用于小批量导入
使用mwdumper
git clone https://phabricator.wikimedia.org/diffusion/MWDU/mwdumper.git
cd mwdumper
mvn compile
mvn package
java -jar mwdumper.jar --format=sql:1.25 pages_full.xml.bz2 |
mysql -u <username> -p <databasename>
此方法适用于大量数据导入,但需要先清空库:
In SQL: USE wikidb; TRUNCATE TABLE page; TRUNCATE TABLE text; TRUNCATE TABLE revision; TRUNCATE TABLE redirect;
In maintenance directory: php rebuildall.php
java -server -classpath /data/wiki/tools/mariadb-java-client-2.4.1-sources.jar:/data/wiki/test/mwdumper-1.25.jar \ org.mediawiki.dumper.Dumper --output=mysql://127.0.0.1/testwiki?user=wiki&password=wiki \ --format=sql:1.25 /data/wiki/pediaDataset/0520_base/zhwiki-20190520-pages-articles-multistream.xml.bz2
###LocalSetting
$wgShowExceptionDetails = true; $wgDevelopmentWarnings = true; error_reporting( -1 ); ini_set( 'display_errors', 1);
wfLoadExtension( 'Scribunto' );
wfLoadExtension('Cite');
wfLoadExtension('ParserFunctions');
$wgScribuntoDefaultEngine = 'luastandalone';
$wgMultiContentRevisionSchemaMigrationStage=SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_OLD;