在2017年最先接觸到wikibase的時候是因為于工作需要的緣故,需要了解wikibase的資料結構,以至于閱讀了很長時間的php源碼,了解了它的運作機制等,但是腦子畢竟是一個容易遺忘的存儲部件,雖然當時經過了那麼漫長學習時至今日還是會遺忘,是以現在針對于wikibase相關的内容做一下記錄,此篇記錄主要是針對于搭建wikibase進行記錄,文章最後提供了簡便的方式進行部署。
前提
安裝MediaWiki
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。
-
下載下傳mediawiki
可以下載下傳mediawiki-1.33.0.tar.gz,如果以上的連接配接因為網絡原因無法下載下傳的話可以,從Git庫擷取:
git clone https://gerrit.wikimedia.org/r/mediawiki/core.git --branch REL1_33 mediawiki
#發行版分支中有很多 Git 子子產品,用于常用的擴充和皮膚(主分支沒有這些)。 要更新子子產品,請運作:
cd mediawiki
git submodule update --init
- 運作環境
[[email protected] ~]# 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和源碼編輯都會遇到這個問題,可以自行搜尋一下。
-
部署
運作環境沒有問題的話就可以進行部署了,将mediawiki-1.33.0解壓放到http服務站點下就可以通路了,跟着界面引導的步驟就可以安裝部署了。
wikibase安裝部署前提安裝Wikibase運作腳本檢查最終成簡單部署
填寫完成所有的資訊後會生成LocalSettings.php檔案,将檔案放到mediawiki-1.33.0部署的路徑下就可以了。
這時候對應的Mysql資料庫中已經有mediawiki運作初始化的所有的表,但是還不包含Wikibase的表(以wb_開頭的表)
安裝Composer
使用Composer可以簡單的将依賴進行全部安裝,安裝Composer有很多中方式不同的作業系統安裝方式不同,可以自行搜尋。
- Mac OS x 上的使用者,你可以使用 Homebrew 安裝 composer:
wget https://getcomposer.org/composer.phar
- Window使用者可以通路網址
安裝Wikibase
成功安裝完成MediaWiki及Composer之後,下面就是安裝Wikibase了,分為四個步驟:
- 下載下傳Wikibase擴充
- 擷取依賴項
- 修改 LocalSettings.php 配置檔案
- 運作維護腳本
下載下傳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
修改 LocalSettings.php 配置檔案
修改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";
運作腳本
- 在mediawiki-1.33.0下
php maintenance/update.php
cd extensions/Wikibase
php lib/maintenance/populateSitesTable.php
運作完這一步就會在資料庫中生成相應的wb_字首的表,這些就是wikibase需要用到的關鍵表。
- For Wikibase Repository only
cd extensions/Wikibase
php repo/maintenance/rebuildItemsPerSite.php
- For Wikibase Client only
cd extensions/Wikibase
php client/maintenance/populateInterwiki.php
- For Wikibase Repository and Wikibase Client
cd extensions/Wikibase
php repo/maintenance/rebuildItemsPerSite.php
php client/maintenance/populateInterwiki.php
檢查最終成
- 通路mediawiki-1.33.0部署的應用
- 如果安裝成功的話首頁上左側會出現添加連結的按鈕(啟用client),在特殊頁面中會有wikibase的選項
wikibase安裝部署前提安裝Wikibase運作腳本檢查最終成簡單部署 wikibase安裝部署前提安裝Wikibase運作腳本檢查最終成簡單部署
簡單部署
- 下載下傳完整安裝包
- 解壓運作sql到mysql資料庫
- 修改LocalSettings.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";
參考
- Wikibase/Installation
- Composer
- Manual:Installation guide
原文:https://blog.limingming.org/2020/02/22/KG/wikibase%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2/