バリュードメインのコアサーバーにメディアウィキ(MediaWiki)をインストールしてみた(トラブル解決の忘備録)

   

MediaWikiLogo

自分だけのウィキペディアをつくろう

自分のウェブサイトを作ろうと考えたとき、ブログにするかウィキにするかで迷います。時系列が重要ならブログでしょうが、普遍的な知識ならウィキかなと思います。ウィキペディアみたいなサイトを自分で作れたら面白いだろうなあと思い、メディアウィキをインストールしてみました。

途中ちょっとつっかかたので、自分のための忘備録をつけておく。

メディアウィキのダウンロード、アップロード、準備

https://www.mediawiki.org/wiki/Download/ja でMediaWiki 1.29.1 をダウンロードしました。ファイル形式が、.gzという拡張子で、何ソレ?だったのですが、Winzipというソフトのトライアル版を使って開きました。結局、mediawiki-1.29.1というフォルダがデスクトップに作られて、中にはなにやらいろいろなファイルとかフォルダーがあります。その中身を、ごそっとアップロード。アップロード先は、自分が予めドメインを取得しておいて、バリュードメインのコアサーバー内に作られた場所です。ここまでは順調で、ウェブブラウザでドメインのURLにアクセスすると、

MediaWiki 1.29.1 LocalSettings.php not found. Please set up the wiki first.

という表示が出ました。先へ進むと、

MediaWiki へようこそ!
環境の確認

基本的な確認では、現在の環境が MediaWiki のインストールに適しているかを確認します。 インストール方法について助けが必要になった場合は、必ずこの確認結果を添えてください。
PHP 7.1.7がインストールされています。
ImageMagickが見つかりました: /usr/bin/convert。

アップロードが有効であれば、画像のサムネイルを利用できます。
バージョン管理ソフトウェア Git が見つかりました: /usr/bin/git
サーバー名「http://xxxxx.xxx」を使用しています。
サーバー URL「http://xxxxx.xxx」を使用しています。
Unicode正規化にintl PECL 拡張機能を使用。
環境を確認しました。 MediaWiki をインストールできます。

と表示され、自分がレンタルしているコアサーバーの環境でメディアウィキが使えるようです。

予めデータベースもコアサーバーで作っておいたので、

MySQL の設定
データベースのホスト:localhost
データベース名:xxx_xxxxx
データベース テーブルの接頭辞:
インストールで使用する利用者アカウント
データベースのユーザー名:xxx_xxxxx
データベースのパスワード:xxxxx

データベースの設定もOK.

 

メディアウィキのインストール

いざインストールを開始すると、

MediaWiki 1.29.1 のインストール
インストール
データベースの構築… 実行
テーブルの作成… 実行
データベースユーザーの作成… 実行
既定のウィキ間テーブルの導入… 実行
統計情報の初期化… 実行
秘密鍵の生成… 実行
不要な更新を実行するのを防ぐ… 実行
管理者のアカウントの作成…

と、なぜか最後の行「管理者のアカウントの作成…」のところでとまってしまったように見えます。待っていればいいのかわかりませんでしたが、何分経っても何も起こらないのでおかしいなと思いました。痺れを切らして、唯一クリックできるのが、「インストールを再起動」だったので、そこをクリック。

MediaWiki 1.29.1 のインストール
インストール
データベースの構築… 実行
テーブルの作成… 実行
情報

警告: MediaWiki テーブルは既に存在するようです。 作成を省略します。
データベースユーザーの作成… 実行
既定のウィキ間テーブルの導入… 実行
情報

警告: ウィキ間テーブルは既に登録されているようです。 既定のテーブルを無視します。
統計情報の初期化… 実行
秘密鍵の生成… 実行
不要な更新を実行するのを防ぐ… 実行
管理者のアカウントの作成… 実行
メインページを既定の内容で作成…

今度は、先ほどとまったところは通りすぎましたが、次の行の「メインページを既定の内容で作成…」でとまってしまいました。なんだかいやな予感。待っていても何も起きないので、仕方なくまた「インストールを再起動」を選ぶ。データベース名入れ直すことになったが、すぐに作業が完了。

更新は完了しました。
ウィキを使い始めることができます。
LocalSettings.php ファイルを再生成したい場合は、下のボタンを押してください。 ウィキに問題がある場合を除き、再生成は推奨されません。

なんだ、うまくいったじゃんと思った。再生成は推奨されませんというから再生成はクリックせずに、これでできた!と思ってウェブブラウザでドメインにアクセスしたら、

MediaWiki 1.29.1
LocalSettings.php not found.
Please complete the installation and download LocalSettings.php.

といわれた。で、クリックしてLocalSettings.phpというファイルをダウンロードした。またウェキの名前から入力させられる画面に戻ってしまい、堂々巡りになっていてもう諦め気分だったが、ページの一番下に、

「もっと質問してください」
「もう飽きたのでインストールしてください」

という変なノリの二択があるのに気づいたので、「もう飽きたのでインストールしてください」のほうをクリックした。そしたら先へ進めて、

おめでとうございます! MediaWikiのインストールに成功しました。
LocalSettings.phpファイルが生成されました。 このファイルはすべての設定を含んでいます。
これをダウンロードして、ウィキをインストールした基準ディレクトリ (index.phpと同じディレクトリ) に設置する必要があります。ダウンロードは自動的に開始されるはずです。
ダウンロードが開始されていない場合、またはダウンロードをキャンセルした場合は、下記のリンクをクリックしてダウンロードを再開できます:
LocalSettings.php をダウンロード
注意: この生成された設定ファイルをダウンロードせずにインストールを終了すると、このファイルは利用できなくなります。
上記の作業が完了すると、ウィキに入ることができます。

という指示が現れた。言われたとおり、ダウンロードされたLocalSettingsをFFFTPでつないであるトップディレクトリに放り込んだ。ウェブブラウザでドメインにアクセスすると、真っ白な表示。

 

死の画面に途方に暮れる

だめじゃん。なにしろ何も表示されないのでどうにもしようがない。ちなみに自分はファイアフォックス(Firefox 56.0.1(64ビット))を使っている。

死の白画面 (white screen of death) は、ウィキへのアクセスを試みた際にエラー メッセージがない真っ白な画面のみが表示される現象です。 問題点を解決するには、php のエラー ログを確認したり、エラーが目に見えるように設定を変更したりしてみてください。Manual:Debugging を参照してください。 これが新しいインストレーションで発生する場合は、Manual:Installation にあるすべての手順に従ったかどうか確認してみてください。

MedidaWikiのウェブサイトに解説があったが、これは「死の白画面」と呼ばれるらしい。

To see PHP errors, add this to the bottom of LocalSettings.php:
error_reporting( -1 );
ini_set( ‘display_errors’, 1 );

という処方箋が書いてあった。エラーをウェブブラウザ画面に吐き出すようにできるらしい。さきほどダウンロードしたLocalSettings.phpファイルを自分が普段使っているテキストエディタ「秀丸」で開き、一番下に

error_reporting( -1 );
ini_set( ‘display_errors’, 1 );

を付け足した。するとエラーメッセージとともにソースコードのどこを読みにいってどうしたみたいなコメントがずらずらとリストされたものが表示された。

( ! ) Warning: include(/virtual/xxx/public_html/xxxxx.xxx/vendor/composer/../liuggio/statsd-php-client/src/Liuggio/StatsdClient/Factory/StatsdDataFactory.php): failed to open stream: No such file or directory in /virtual/xxx/public_html/xxxxx.xxx/vendor/composer/ClassLoader.php on line 444

なんのことか良くわからなかったが、StatsdDataFactory.phpというファイルがが見つからないのが原因らしい。ネットで検索したら、自分と同じ症状のトラブルシューティングを紹介したウェブサイト、真っ白な画面になった人が対照方法を紹介(wingfield.gr.jp)を発見。

 

問題の解決、メディアウィキのインストールに成功

そこでこの方の真似をしてみる。https://github.com/liuggio/statsd-php-clientに行った。ごちゃごちゃしていてわかりにくかったが、緑色の「Clone or download」ボタンをクリックして、「DownloadZIP」をクリックしたら、自分のダウンロードフォルダに、statsd-php-client-masterというファイルがダウンロードされていた。このZIPファイルを解凍すると、statsd-php-client-masterフォルダの中に、srcとtestsというフォルダがあった。FFFTPでアップロードした側のフォルダ構成をチェックしてみると、対応するものがあった。

/public_html/xxxxx.xxx/vendor/liuggio/statsd-php-client/src/
/public_html/xxxxx.xxx/vendor/liuggio/statsd-php-client/tests/

そこで、GitHubから拾ったもので上書きした。不安もあったが、これでだめならどうせメディアウィキを立ち上げるのはあきらめるつもりだったので。ところが驚いたことに、これでうまくいった。

メインページ
現在このページには内容がありません。 他のページ内でこのページ名を検索、 関連する記録を検索、 またはこのページを作成できます。

 

というウィキペディアっぽいものが表示された!めでたし、めでたし。いやぁー、ネットで情報が共有されるって凄いことだと思った。このようなトラブルシューティングのときは特に。

 

ウィキの編集、閲覧制限の制御

メディアウィキのインストール時に、書き込みなどの権限をどうするか選ぶところがあって、自分は管理人のみが書き込めるようにしたつもりでしたが、インストールでトラブったせいか、いざ、試してみると、誰でも何でもできる状態になっていました。ウィキペディアと同じで、これがデフォルトのようです。自分の場合は、自分のためのウィキにしたいので一般の人も読めなくするか、あるいは、読むことだけOKにする必要があります。https://www.mediawiki.org/wiki/Manual:User_rightsのウェブページに細かいことが書いてあります。

Note: In a default installation $wgGroupPermissions will be set in includes/DefaultSettings.php, but it is not present in LocalSettings.php. You will then need to add it in that file.

インストール時にダウンロードした、LocalSettings.phpというファイルが非常に重要みたいで、そこに設定を書き込むとのことです。全員が書き込めなくする設定などの例が、以下に示されています。

This example will disable editing of all pages, then re-enable for users with confirmed email addresses only:

# Disable for everyone.
$wgGroupPermissions['*']['edit']              = false;
# Disable for users, too: by default 'user' is allowed to edit, even if '*' is not.
$wgGroupPermissions['user']['edit']           = false;
# Make it so users with confirmed email addresses are in the group.
$wgAutopromote['emailconfirmed'] = APCOND_EMAILCONFIRMED;
# Hide group from user list. 
$wgImplicitGroups[] = 'emailconfirmed';
# Finally, set it to true for the desired group.
$wgGroupPermissions['emailconfirmed']['edit'] = true;

一部のページを見られないようにする方法はないかと思って調べましたが、そもそもMediawikiは皆で共有することを前提に設計されているため、このような細かい設定はあまり得意でないようです。https://www.mediawiki.org/wiki/Manual:Preventing_access#Restrict_viewing_of_certain_specific_pagesにそのような設計思想の説明があります。そういうことをやりたければ、 an appropriate content management packageを使うことを推奨します、でも自己責任でどうぞというスタンスです。

 - ウェブホスティング