maidsphere

A quantization noise whispers through the net.

MediaWikiにVisualEditorを導入する方法

Aug 27, 2016 00:09:49 JST

MediaWikiVisualEditorをインストールしようとしていろいろハマったので,書き残しておきます.

環境はUbuntu 16.04 LTS Xenial Xerusです. CentOSはVisualEditorが依存しているParsoidのインストールがちょっと手間なので,UbuntuかDebianがおすすめです.


WebサーバとMediaWikiはインストールされて適切に設定されているものとします. WebサーバはApache HTTP Serverでもnginxでも,php-fpmでもmod_phpでもなんでもいいです. データベースもお好きなのをご利用ください.

MediaWikiはできるだけ最新のバージョンが望ましいです. 現時点でVisualEditorはMediaWiki 1.22以降をサポートしているよう(未検証)ですが,最新のstableが望ましいと思います. このページではMediaWiki 1.27を想定しています.

必要なパッケージをインストール

$ sudo apt-get install php7.0-curl

VisualEditorはPHPのlibcurlサポートを必要とします. これ忘れてハマりました.

Parsoidのセットアップ

インストール

VisualEditorはParsoidに依存しているので,インストールが必要です.

インストールガイドがありますので参照してください. キーが変わっている可能性があるので,このページと齟齬がある場合はインストールガイドの指示に従ってください.

$ sudo apt-key advanced --keyserver pgp.mit.edu --recv-keys 90E9F83F22250DD7
$ sudo apt-add-repository "deb https://releases.wikimedia.org/debian jessie-mediawiki main"
$ sudo apt-get update && sudo apt-get install parsoid

parsoidパッケージはNode.jsに依存しています. インストールしていない場合は,apt-get installのときにnodejsもひっついてきます.

設定

上述のようにパッケージからインストールした場合,設定ファイルは/etc/mediawiki/parsoid/settings.jsにあります. その中にparsoidConfig.setMwApiを含む行があるので,URIを自分のMediaWikiのAPIエンドポイントで書き換えます.

parsoidConfig.setMwApi({ uri: 'https://example.com/mediawiki/api.php' });

APIエンドポイントはMediaWikiをインストールしたディレクトリ直下のapi.phpです. ここでは/mediawikiにMediaWikiをインストールしています. 実際にhttps://example.com/mediawiki/api.phpにブラウザからアクセスしてきちんと動いているか確認してください.

prefixdomainはなくても動きます. 同じParsoidが複数のMediaWikiからの接続を受ける場合には必要なようですが,今回はそんなことしないので消します.

ホストはlocalhostでも動くようです. HTTPを問答無用でHTTPSにリダイレクトするような環境では,証明書の検証を適切に行うために上記のようにFQDNで指定したほうがよいと思います. 必要であれば,以下の設定にて証明書検証をスキップできますがおすすめしません.

parsoidConfig.strictSSL = false;

設定が完了したら,Parsoidを再起動します.

$ sudo systemctl restart parsoid.service

Parsoidはポート8142でVisualEditorからの通信を待ち受けます.

VisualEditorのセットアップ

インストール

インストールガイドも参照してください.

ここではGitから直接ダウンロードします. カレントディレクトリはMediaWikiのインストールディレクトリとします.

$ cd extensions
$ git clone -b REL1_27 https://gerrit.wikimedia.org/r/p/mediawiki/extensions/VisualEditor.git
$ cd VisualEditor
$ git submodule update --init

cloneする時のブランチはインストールしたMediaWikiのバージョンを指定してください. ここではMediaWiki 1.27の環境なので,REL1_27ブランチをチェックアウトしています.

MediaWikiの設定

LocalSettings.phpの末尾に設定を追加します.

まず,VisualEditorを有効にする設定をします.

require_once "$IP/extensions/VisualEditor/VisualEditor.php";

$wgDefaultUserOptions['visualeditor-enable'] = 1;
$wgHiddenPrefs[] = 'visualeditor-enable';

そして,Parsoidとの接続を定義します. Parsoidはデフォルトでポート8142で接続を待ち受けています.

$wgVisualEditorParsoidURL = 'http://localhost:8142';
$wgVirtualRestConfig['modules']['parsoid'] = array(
  'url' => 'http://localhost:8142'
);

ここまでくれば,MediaWikiにアクセスして「編集」ボタンを押すと,VisualEditorによるWikiの編集が可能になります.