在2017年最先接触到wikibase的时候是因为于工作需要的缘故,需要了解wikibase的数据结构,以至于阅读了很长时间的php源码,了解了它的运行机制等,但是脑子毕竟是一个容易遗忘的存储部件,虽然当时经过了那么漫长学习时至今日还是会遗忘,所以现在针对于wikibase相关的内容做一下记录,此篇记录主要是针对于搭建wikibase进行记录,文章最后提供了简便的方式进行部署。
Wikibase 是 MediaWiki 的扩展扩展插件,包含两个两个扩展,所以需要先安装部署 MediaWiki。
安装部署MediaWiki需要注意兼容的PHP版本,此篇文章适宜MediaWiki-1.33.0版本为例,我在Centos上安装了PHP7.0版本,但是运行MediaWiki的时候提示必须使用PHP7.3版本及以上版本,所以又重新安装了PHP7.4版本,Mysql数据库使用5.5.8+。
另外Wikibase并不能兼容老版本MediaWiki,当然旧版本的Wikibase也很大可能无法与最新的MediaWiki版本兼容。所以安装部署完成MediaWiki后最后使用相应版本的Wikibase。
git clone https://gerrit.wikimedia.org/r/mediawiki/core.git --branch REL1_33 mediawiki
#发行版分支中有很多 Git 子模块,用于常用的扩展和皮肤(主分支没有这些)。 要更新子模块,请运行:
cd mediawiki
git submodule update --init
[root@localhost ~]# php -v
PHP 7.4.3 (cli) (built: Feb 18 2020 11:53:05) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
配置apache http支持php,这里面如果没有接触过php的话安装部署可能会遇到一系列的问题,建议使用 Apache/2.4.6 (CentOS) + PHP 7.4.3 (cli)进行部署,遇到最大的问题可能就是phplib.so不生成的问题,通过yum安装php和源码编辑都会遇到这个问题,可以自行搜索一下。
填写完成所有的信息后会生成LocalSettings.php文件,将文件放到mediawiki-1.33.0部署的路径下就可以了。
这时候对应的Mysql数据库中已经有mediawiki运行初始化的所有的表,但是还不包含Wikibase的表(以wb_开头的表)
使用Composer可以简单的将依赖进行全部安装,安装Composer有很多中方式不同的操作系统安装方式不同,可以自行搜索。
wget https://getcomposer.org/composer.phar
成功安装完成MediaWiki及Composer之后,下面就是安装Wikibase了,分为四个步骤:
为了获取和mediawiki相应的版本,建议使用git进行下载:
从部署的mediawiki-1.33.0中进入 extensions 目录下:
cd extensions
git clone -b REL1_33 https://github.com/wikimedia/mediawiki-extensions-Wikibase.git Wikibase
#注意保证git下来的项目名称为Wikibase
cd Wikibase
git submodule update --init --recursive # get the dependencies using submodules
拷贝mediawiki-1.33.0目录下的composer.local.json-sample并更名为composer.local.json,写入:
{
"extra": {
"merge-plugin": {
"include": [
"extensions/Wikibase/composer.json"
]
}
}
}
从 mediawiki-1.33.0 安装的根目录选择以下三种方法中的一种方法运行:
composer install --no-dev
# if you downloaded composer.phar
php composer.phar install --no-dev
# Or use dockerized version (does not require PHP or composer installed)
docker run -it --rm --user $(id -u):$(id -g) -v ~/.composer:/tmp -v $(pwd):/app docker.io/composer install --no-dev
修改mediawiki-1.33.0 安装的根目录下LocalSettings.php配置文件,以下三种配置取决于你是否想启用维基库存储库、维基库客户端或者想同时启用它们。
$wgEnableWikibaseRepo = true;
$wgEnableWikibaseClient = false;
require_once "$IP/extensions/Wikibase/repo/Wikibase.php";
require_once "$IP/extensions/Wikibase/repo/ExampleSettings.php";
$wgEnableWikibaseRepo = false;
$wgEnableWikibaseClient = true;
require_once "$IP/extensions/Wikibase/client/WikibaseClient.php";
require_once "$IP/extensions/Wikibase/client/ExampleSettings.php";
$wgEnableWikibaseRepo = true;
$wgEnableWikibaseClient = true;
require_once "$IP/extensions/Wikibase/repo/Wikibase.php";
require_once "$IP/extensions/Wikibase/repo/ExampleSettings.php";
require_once "$IP/extensions/Wikibase/client/WikibaseClient.php";
require_once "$IP/extensions/Wikibase/client/ExampleSettings.php";
php maintenance/update.php
cd extensions/Wikibase
php lib/maintenance/populateSitesTable.php
运行完这一步就会在数据库中生成相应的wb_前缀的表,这些就是wikibase需要用到的关键表。
cd extensions/Wikibase
php repo/maintenance/rebuildItemsPerSite.php
cd extensions/Wikibase
php client/maintenance/populateInterwiki.php
cd extensions/Wikibase
php repo/maintenance/rebuildItemsPerSite.php
php client/maintenance/populateInterwiki.php
$wgServer = "http://127.0.0.1:8083";
$wgEmergencyContact = "[email protected]";
$wgPasswordSender = "[email protected]";
## Database settings
$wgDBtype = "mysql";
$wgDBserver = "127.0.0.1";
$wgDBname = "mediawiki-test1";
$wgDBuser = "root";
$wgDBpassword = "pw";
参考
原文:https://blog.limingming.org/2020/02/22/KG/wikibase%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2/