Mediawiki 1.26.0 アップグレード時の問題対処

      2015/12/11

このサイトをホストしているエックスサーバーから、PHP 7 が使えるようになったというメールが届きました。気づくと MySQL も 5 から 5.5 になっていたので、以前サーバーの制約で Mediawiki がアップグレードできなかった問題が解消できてるんじゃないかと思い、再度 Mediawiki を最新版にアップグレードすることに挑戦しました。

予想通りトラブルに見舞われたので対処方法をメモしておきます。

諸々の手順で Mediawiki を最新版にアップグレードしたら、Wiki ページが内部サーバー エラーとなります。Firefox だと真っ白な画面になります。

500 エラー

これだと何が問題なのか分からないので、LocalSettings.php の冒頭に以下のように記述します。

<?php
# エラーの出力
error_reporting( E_ALL );
ini_set( 'display_errors', 1 );

これで PHP エラーの内容が分かるようになりました。

エラー メッセージ

このエラー メッセージには、StatsdDataFactory クラスが見つからないと書かれています。実際に Mediawiki 1.26.0 の該当ディレクトリを見ると StatsdClient 以下のファイルが怪しいようです。

ファイル

なので、「Lliggio StatsdClient」で検索して //github.com/liuggio/statsd-php-client を見つけてダウンロード・解凍し、mediawiki\vendor\liuggio\statsd-php-client 以下を差し替えることで無事解決できました。Mediawiki の配布ファイルがおかしいのでしょう。Mediawiki を1.26 にすると、これまでのスキンが使えなくなってしまったので、ひとまずデフォルトのままにします。

問題解決

その場しのぎでロゴだけ変更。

ロゴ修正

Wiki はファイル アップローダーとしてしか使ってないのでスキンの変更は冬休みの宿題にしておきます。

前回のアップグレードで断念して使えなかった MobileFrontend エクステンションがいい感じです。この辺をスマホで見るとレスポンシブ対応できています。

PHP7 は従来の 2 倍速いとか書かれてますが、当サイトでは実感できない、、、きっとテーマが重いのでしょう。あと、search.php 内で「XXX 件見つかりました。」を表示する関数が PHP7 で動作しなくなったのでコメントアウトでしのいでます。

 - Web, 日記