世間はすっかり冬に……

かじかむ手でブログを書く季節。手袋買わないと……

さて、このたび、特に意味はないんだけど、MediaWikiを導入したWikiサイトを作りたくなった。

MediaWikiは、Wikipediaなどで使われているフリーのWikiソフトの一種だ。

Wikiソフトにはいろいろあるけど、MediaWikiはテンプレートとかカテゴリとかで自由自在だからね。

そこで、いつもお世話になっているXdomainの無料サーバーに、MediaWikiを導入することはできるのか!?

気になったので調べてみると、どうやら微妙なライン。

ならば、実際にやってみるしかあるまい、と俺は無料の「PHP・MySQLサーバー」を借りて試してみたのだった。

MediaWikiの解説ページ

少ない!

ググってみて、もっといろいろ情報があるだろうと思っていたが……

とりあえず、MediaWikiのサイトには日本語の情報もある、と思いきや……

翻訳が進んでない……

個人サイトでも細々と解説されているが、それらだけで(英語を読まずに)導入するのはかなり難しそうだ。

じゃあ、せっかくだし俺がやってやるぜ!

MediaWikiの動作要件

MediaWiki(記事執筆時点でバージョン1.28.0)の動作要件は以下のページ。

  • PHP 5.5.9以降
  • MySQL 5.0.2以降(またはその他DB)
  • GD - 画像のサムネイル作成に必要
  • TeX - 数式のインライン表示に必要
  • Sendmail - システムがメールを送信するのに必要
  • SSH - メンテナンススクリプトの実行に必要

そして、XdomainのPHP・MySQLサーバー機能の仕様は以下のページ。

  • PHP 7.0.x / 5.6.x
  • MySQL 5.0.95
  • GD - PHP・MySQLサーバー機能では確かめてないけど、WordPress機能にはあった
  • TeX - 不明
  • Sendmail - 不明、たぶん使えない
  • SSH - 使えない

※記事執筆時点

……ということで、SSHに対応してないこと以外は、大丈夫そう。

いや、それが一番肝心な気がするのだが……

ともかく、やれるだけやってみよう。

データベースの準備

Xdomainにログインしたら、

  1. 「無料レンタルサーバー」
  2. 「PHP・MySQLサーバー」の「管理パネルログイン」(初回は「利用開始」)
  3. 「データベース」の「MySQL設定」
  4. 「MySQL追加」

の順にクリックして、MySQLのデータベースを新規作成する。文字コードはUTF-8で。

次に「MySQLユーザ設定」に行き、ユーザーを一人分追加。

次に、先ほど作った「MySQLデータベース名」のところの「追加可能ユーザ」から、今作ったユーザーを選び、「追加」をクリック。

そのユーザーが「権限設定ユーザ」に設定されたらOK。

データベース名とユーザー名、パスワードは大事だから忘れないように。

手動でファイルを突っ込む

さて、ではいよいよMediaWikiをサーバーに入れますか。

MediaWikiのサイトの解説は英語ばっかなので、まずは参考サイトその1。
いや、その気になれば読めるけど……

「さくら」のレンタルサーバーでの解説だが、データベースの設定では参考になった。

しかし、MediaWikiをサーバーに入れるのに、コマンドラインスクリプトを使っているではないか!

そのほうが楽なんだろうけど……

しかし、Xdomainの無料レンタルサーバーでは無理だ。

仕方ないので、参考サイトその2。

このサイトの方法では、MediaWikiの配布パッケージをダウンロードし、解凍し、サーバーに普通に突っ込んでいる。
ローカルのサーバーだけど。

なんだ、スクリプトなんかいらないじゃん!

ということで、MediaWikiのサイトから配布パッケージをダウンロード。

これを解凍するには7zipを解凍できるソフトが必要だが、俺は困らなかった。

とりあえず、「w」とかいうフォルダを作ってそこに解凍しよう。

解凍したら、XdomainのサーバーにFTPでアップロード……

そうそう、FTPアクセスをするには、あらかじめ初期設定が必要だったな。

「MySQL設定」の近くにあった「FTPアカウント設定」から、「有効」に変更しよう。

ファイルが多すぎてアクセス制限を食らったのか、1時間の中断を挟みつつ、アップロード完了。

小分けにしてアップロードしたほうがいいかもね。

さて、これで自分のサイトのルート以下 /w/... にファイルがセッティングされたわけだが。

というわけで、さっそくそのURLにアクセスしてみよう。

例:http://xxxxx.php.xdomain.jp/w/

そこでWikiの初期設定をすることになるので、さっきの「参考サイトその1」か「その2」を参考にしてくれ。

データベースの設定では、さっきXdomainのサイトで設定した情報が必要。

つまり「データベース名」、「データベースのユーザー名」、「データベースのパスワード」など。

「データベースのホスト」は、「MySQL設定」のページの「MySQL情報」にある通り。

文字セットとか文字コードは、ひたすら「UTF-8」で。

成功?

ところで、設定していると気になってくるとは思うが、ページの上部にエラーメッセージが出てくる。

is_dir() がどうとか。

おそらくXdomainのサーバーの仕様によるものだと思うが、どんなに調べても対処できなかった。

まあ、 Error: ではなく Warning: だし、一応動いてるっぽいし、無視しちゃおう。

ということで、またXdomainの設定に行き、「MySQL設定」の近くにあった「php.ini設定」のページへ。

「php.ini設定変更」に行き、 display_errors をOFFに変更すると、エラーメッセージは表示されなくなる。
エラーがなくなるわけではない。

さて、Wikiの初期設定の最後まで行くと、「LocalSettings.php」をダウンロードするように言われるので、ダウンロードして「w」フォルダに入れておく。

このファイルは、Wikiの設定をいろいろ弄るときに編集することになる。

これでMediaWikiのインストールは完了し、メインページなどにアクセスできるようになる。

URLの形式を変える

さあ、MediaWikiのインストールが完了すると、メインページを作ったり、サイトのアイコンを作ったり、その前に自分のアカウント(最初に作られたアカウントが「管理者」および「ビューロクラット」になる)を作ったりすることになるが、この時点でURLの形式は以下のようになっているだろう。

http://xxxxx.php.xdomain.jp/w/index.php?title=メインページ

一方、Wikipedia日本語版のメインページのURLは以下のようになっている。

https://ja.wikipedia.org/wiki/メインページ

Wikipediaが https なのはともかく、こっちもクエリ文字列のないすっきりしたURLにしたいよね?

Xdomainでは .htaccess が使えるので、これは実現可能だ。

まず「.htaccess」という名前のプレーンテキストファイルを作り、以下の通りに記述する。

# URLの書き換え
RewriteEngine On
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L]
RewriteRule ^/*$ %{DOCUMENT_ROOT}/w/index.php [L]

次に「LocalSettings.php」を開き、上のほうにある $wgScriptPath という部分を探したら、その行を以下のように書き換える。

$wgScriptPath = "/w";
$wgScriptExtension = ".php";
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;

これらを行うと、WikipediaのようなURL形式になり、さらにドメイン直下にアクセスするとメインページに転送されるようになる。

メインページに転送させたくない場合は、「.htaccess」の4行目を消せばいい、と思う。

メンテナンススクリプト

MediaWikiの配布パッケージに「チェックユーザー」の機能は含まれていないので、これをWikiサイトに実装するにはExtension(拡張機能)を導入しなければならない。

チェックユーザーの導入方法はこのブログの以下の記事で解説している。

ところで、チェックユーザーのような拡張機能を導入するには「メンテナンススクリプト」を使わなければならない場合があり、これにはSSHが必要だという。

しかし、Xdomainの無料サーバーではSSHが使えない。

そこで代わりに、ブラウザであるURLにアクセスするという方法があるらしい。

またも翻訳が……

この方法は、Wikiのデータベースが「大きすぎる」場合には使えないらしい。

なぜなら、データベースが「大きすぎる」と、ブラウザのアクセスがタイムアウトしてしまうため、らしい。

どの程度からが「大きすぎる」のかはサーバーによるが、とにかくこの方法がもし使えなければ、黙ってSSHが使えるサーバーに乗り換えるしかない、らしい。

で、その方法とは、Wikiのサイトの「mw-config」にアクセスするというもの。

そのURLは、Wikiをインストールしたフォルダが「w」なら、以下のようなURLになる。

http://xxxxx.php.xdomain.jp/w/mw-config/

ここにアクセスすると、MediaWikiをインストールした時と同じようなページに辿り着くので、そこから設定を開始する。

※いきなり「インストールが完了しました」とか言われたら、「インストールを再起動」というリンクをクリックする。「入力した保存データをすべて消去して、インストール作業を再起動しますか?」なんて物騒なことを聞かれるが、OKして構わない。

その後、言語を選択した後、ちゃんと「既存のウィキ」の更新画面に行くので、ほとんど何も変更せずに再度インストールをすればよい。

その際、「アップグレード キー」を聞かれるが、これは「LocalSettings.php」内の以下のような1行に記載されている。

$wgUpgradeKey = "....";

この1行を探し、クオーテーションマーク内の文字列をコピーすればよい。

MediaWikiの再インストール

MediaWikiのサイトをインストールし直したい場合、例えば上記の方法ではアップグレードは可能だが、一からのインストールはできない。

そこで、最初のインストール時にただファイルをアップロードしたように、サーバー上のファイルを一旦すべて消してから再度アップロード、という方法でもいいが、より簡単な方法は「LocalSettings.php」だけを消すことだ。

そして再度このWikiのURL(例:http://xxxxx.php.xdomain.jp/w/)を訪れると、初期のインストール画面となり、再インストールが可能になる。

まとめ

今回は、Xdomainの無料サーバーにMediaWikiを導入することができる、ということを示すことができた。

さらに、初期設定を通じてMediaWikiのサイトを運用するためのノウハウを得ることもできた。

もっと言えば、MediaWikiのサイトを運用するためには、メインページやカテゴリ、基礎的なテンプレート群の作成など、まだまだやるべきことは多いのだが、それらはまたの機会ということで。

で、Wikiなんか作って何するの?って……

……「実証」かな?

ともかく、せっせと作ってるから、そのうち公開するかも。

せっせと頑張りすぎて、艦これのイベントをすっぽかしたのは内緒。

それでは今回はこの辺で。