MediaWikiのアップグレード手順/やっておくこと・やってはいけないこと

MediaWikiはシステムのリビジョン機能はおろか、自分自身をアップグレードする機能は備わっていない。基本的には、データベースはそのままで、ファイル・フォルダを既存のシステムに向かって上書きしてアップグレードする。

やっておくこと

  • sshかFTPで、フォルダごとコピーして待機しておく
  • データベースのバックアップを取る
  • 新しいMediaWikiのシステムをダウンロードしておく
  • 可能であれば、同じURL・環境を準備してテストサーバーで動作確認しておく
  • システム要件を確認する:PHP、MySQLのバージョン
    古いシステムから最新版にアップグレードする際に、うまくいかないこともあるので注意
  • /skin/Vector/を使っていて、カスタマイズしている時は、退避させておくこと
    すべて上書きすると、デフォルトのスキンに戻ってしまう
  • 最後にupdate.phpを実行することによりアップグレードが完了する

やっはいけないこと

  • 何も考えずに削除する
  • バックアップを取らない
  • ファイルのみバックアップを取る
  • Localsettings.phpを削除する
  • 新しいフォルダに新しいシステムだけアップロードする
    インストーラーが起動してしまう
  • 画像アップロードフォルダを削除する
    削除してはいけない、フォルダには今までアップロードした画像ファイルが入っている
  • コピー完了前にリネームしないこと
    ファイル・フォルダの数が多いが、完全にコピーが終わるまで暫く待つこと、待ってからあとで掃除したり削除したり、リネームすること
  • すべて解凍するまで待つ
    MediaWikiはファイル・フォルダが多い。多いので解答時間が掛かるが、おちついて待つこと
  • アップロード
    アップロードには時間がかかる、落ち着いて待つ。知識がある人はsshが速い

手順

ファイル・フォルダのバックアップ

フォルダごとコピーし、ファイル・フォルダを元に戻せるようにしておく
現在動いているフォルダ名が「/mediawiki/」ならば、「/mediawiki.bk/」のように同じ中身のバックアップをとっておくこと。

データベースのバックアップ

データベースのエクスポートデータをダウンロードしておく、最悪元に戻せるようにする。

最新安定版のMediaWikiをダウンロードする

新しいMediaWikiのシステムをダウンロードして、解凍する。

既存のフォルダアップロード

既存のフォルダに新しいフォルダ・ファイルをアップロードする。

この時に、リモート側のデータは一切消したり触ったりしないこと。削除しない。新しく上書きするからといって、現在動いているファイルの設定などはリモートに残っているため削除しないほうがいい。動かなくなる。

この時点でアクセスしても

この時点でアクセスしても、致命的エラーなどが表示されて正しく表示されることがない。正しく表示・ログイン状態、ログインできるようにするためには、アップグレードのコマンドをsshで打ち込んでupdate.phpを実行する必要がある。

アップグレードコマンド(update.phpの実行)

sshでコマンドを打ち、アップグレードを実行する。FTP上のファイルをアップグレードしても、完璧にはバージョンアップされない。
具体的に気づいた点としては、ログインができなくなったこと。ID・パスワードが正しいはずなのにエラーが表示された。

アップグレードのコマンドが必要なので、php update.phpを実行する。

sshを使ってMediaWikiを最新版にアップグレードするというのは、TeraTermやWinSCPなどのソフトを使って、Linuxコマンドを打ち込んで、操作を行う。

ログイン情報はssh対応のサーバーであれば、コントロールパネルか最初の契約段階で得ることが出来る。
FTPと同じように接続情報を入力する

  • sshのサーバーホスト
  • サービスの種類:SSHを選択
  • TCPポートを入力:「22」など、サーバーによってはこれがデフォルトだとセキュリティ上不安があるので、違った番号を使っているところもある
  • SSHのバージョンを選択:新しいものを使えるのならば使う

さらに、

  • User name:ユーザー名・ユーザーID
  • Passphrase:パスワード

を入力して、OKを押して接続する。

黒い画面が立ち上がるので、MediaWikiのインストールされているフォルダに移動する。

[********@*** ~]$

次のように$と空白文字で行頭のユーザー名を例として説明します。

といった文字が左側に表示されている。これはどのユーザーでログインしているかを表している。

例えば、ルートのフォルダがhtdocsならば、

$ cd /htdocs/www.example.com/mediawiki/

と入力すれば、MediaWikiのフォルダに移動できる。
※上記説明では、cd /~略~/mediawiki/までを入力して、Enterキーを押します。

URLは例で、
例えば: https://example.com/maintenance/update.phpを実行したいわけだが、直接ここにアクセスしてもアップグレードは行われない。

ターミナルソフトを使って、下記フォルダに移動する。

$ cd /htdocs/www.example.com/mediawiki/maintenance/

update.phpの入っているフォルダに移動したので、このあと、

$ php update.php

これを打ち込んで、あとは、Enterキーを押すだけ。そうするとコマンドが実行され、アップグレードの処理が行われる。英語が羅列されて、エラーのような怪しい文字などが表示されていなければおそらくコンプリートしている。

MediaWiki 1.30.0の例:

[*********@******** maintenance]$ php update.php
MediaWiki 1.30.0 Updater

Your composer.lock file is up to date with current dependencies!
Going to run database updates for ********-********-wiki_
Depending on the size of your database this may take a while!
Abort with control-c in the next five seconds (skip this countdown with –quick) … 0
Turning off Content Handler DB fields for this part of upgrade.
…have ipb_id field in ipblocks table.