Wikibaseの環境構築(2)

この記事は1年以上前に書かれました。
内容が古くなっている可能性がありますのでご注意下さい。


今回はいよいよ本題のWikibase(リポジトリとクライアント)をインストールします。
シェル上の作業では、PHPのパッケージ管理ツールComposerを使用します。 そこでまず、ホームディレクトリに composer.phar をインストールしました。Composerのインストール方法はこちらを参照して下さい。

WikibaseはGitHubから入手します。MediaWikiのルートディレクトリ下にある extensions ディレクトリに移動してから、gitコマンドを使用します。

cd extensions
git clone -b REL1_33 https://github.com/wikimedia/mediawiki-extensions-Wikibase.git

このとき、MediaWikiのバージョンに合ったWikibaseを指定することが重要です。前回インストールしたMediaWikiのバージョンは1.33.0でしたので、「REL1_33」を指定しています。

mediawiki-extensions-Wikibase ディレクトリが作成されるので、Wikibase に改名し、git submodule コマンドで依存するサブモジュールをインストールします。

mv mediawiki-extensions-Wikibase Wikibase
cd Wikibase
git submodule update --init --recursive

次に、Composerを使って依存するモジュールをインストールします。
MediaWikiのルートディレクトリに以下の内容で composer.local.json ファイルを作成します。

{
  "extra": {
    "merge-plugin": {
      "include": [
        "extensions/Wikibase/composer.json"
      ]
    }
  }
}

もともとある composer.local.json-sample ファイルを利用しても良いでしょう。

MediaWikiのルートディレクトリでComposerを起動します。
今回、ホームディレクトリに composer.phar をインストールしたので、以下のように指定しました。

php ~/composer.phar install --no-dev

このとき、もしも composer.lock ファイルがあれば、削除しておくことが重要です。古い composer.lock ファイルが残っていると、必要なモジュールがインストールされず、以降の作業でエラーが出る場合があります。

ここまで来れば作業は残りわずかです。
LocalSettings.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のルートディレクトリで以下のコマンドを実行します。

php maintenance/update.php

さらに、extensions/Wikibase ディレクトリに移動してから以下のコマンドを実行します。

php lib/maintenance/populateSitesTable.php
php repo/maintenance/rebuildItemsPerSite.php
php client/maintenance/populateInterwiki.php

以上で作業は終了です。ブラウザでMediaWikiにアクセスし、サイドメニューの一番下に「他言語版」「リンクを追加」が表示されていれば成功です。

サイドメニューの「特別ページ」をクリックして特別ページを表示すると、Wikibase関連のページへのリンクが追加されています。

Wikibaseの環境構築 123