MediawikiへWikibaseをインストールする

提供: Akionux-wiki
Share/Save/Bookmark
移動先: 案内検索

概要

WikibaseはMediawikiの拡張機能の一種で、構造化されたデータの共同編集を可能にする。

WikibaseはWikidataがベースにしているものである。

要件

特に書かれていないが、私の環境(Mediawiki 1.22.0)に後述の操作で必要なスクリプトmaintenance/runScript.phpが存在しなかったので、1.23系である必要があると思われる。私の場合はWikibaseをインストールするために1.23.5へアップグレードした。

インストール

公式のInstallation[1]を参考にインストールを行う。

mediawikiのあるディレクトリへ移動する:

cd /path/to/your/wiki

composerをインストールする:

% curl -sS https://getcomposer.org/installer | php
#!/usr/bin/env php
Some settings on your machine may cause stability issues with Composer.
If you encounter issues, try to change the following:

PHP was compiled with --with-curlwrappers which will cause issues with HTTP authentication and GitHub.
Recompile it without this flag if possible

Downloading...

Composer successfully installed to: /path/of/your/wiki/composer.phar
Use it: php composer.phar

extensionsディレクトリへ移動し、Wikibaseをgit cloneする:

cd extensions
git clone https://git.wikimedia.org/git/mediawiki/extensions/Wikibase.git

Wikibaseのディレクトリでcomposer.pharを実行する:

cd Wikibase
php ../../composer.phar install

ソースコードを必要とする場合は--prefer-sourceを付けて実行する:

php composer.phar install --prefer-source

mediawikiの設定ファイルLocalsettings.phpを編集する必要がある。 Wikibase Repositoryを有効にする場合は、

$wgEnableWikibaseRepo = true;
$wgEnableWikibaseClient = false;
require_once "$IP/extensions/Wikibase/repo/Wikibase.php";
require_once "$IP/extensions/Wikibase/repo/ExampleSettings.php";

を追記する。 Wikibase Clientを有効にする場合は、代わりに以下のようにする:

$wgEnableWikibaseRepo = false;
$wgEnableWikibaseClient = true;
require_once "$IP/extensions/Wikibase/client/WikibaseClient.php";
require_once "$IP/extensions/Wikibase/client/ExampleSettings.php";

次のようにスクリプトを実行:

php maintenance/update.php --quick
php maintenance/runScript.php extensions/Wikibase/lib/maintenance/populateSitesTable.php

以上でインストールは終了だ。

成功していれば、「特別ページ」に「ウィキベース・リポジトリ」という項目ができているはずだ。

Clientを使う場合

さらに、Clientを利用する場合は、interwikiもpopulateする必要があるので次を実行する:

php maintenance/runScript.php extensions/Wikibase/client/maintenance/populateInterwiki.php

また、wiki idがsite tableが指定されていることを確認する。デフォルトでは次のようになっている:

$GLOBALS['wgWBClientSettings']['siteGlobalID'] = "enwiki";

トラブルシュート

update.phpのときのcomposerのエラー

maintenance/update.phpスクリプトが次のようなエラー:

% php maintenance/update.php --quick
PHP Fatal error:  Call to undefined method Composer\Autoload\ClassLoader::setPsr4() in /var/lib/www/wiki/extensions/Wikibase/vendor/composer/autoload_real.php on line 33

が出るとき、composer.pharで次のように実行すると解決した[2]:

php composer.phar dump-autoload

インターウィキでLocalsettings.phpを使い分けているとき

maintenance/update.phpは単一のLocalsettings.phpがあることを前提にしているらしく、私の環境では日本語版と英語版を$_SERVER["SERVER_NAME"]の値で分岐させてそれぞれ別の設定を読み込むようにしているためにうまく実行できなかった。 対策として一時的にLocalsettings.phpのはじめの方へ$_SERVER["SERVER_NAME"]を設定してからmaintenance/update.phpを実行した。

$_SERVER["SERVER_NAME"]="ja.akionux.net";

References

  1. Wikibase/Installation - MediaWiki
  2. Call to undefined method Composer\Autoload\ClassLoader::setPsr4() · Issue #2553 · composer/composer, https://github.com/composer/composer/issues/2553