MediaWikiバックアップ/リストアを分かりやすく説明

提供: dococo wiki
2020年4月20日 (月) 04:07時点におけるWebmaster (トーク | 投稿記録)による版 (→‎/sbin/cp: Argument list too long)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

自分でサイト作っておきながら説明が非常に見にくかったので再度追加説明

必要なツール類

以下のツールがあると便利です

  1. Poderosa Terminal
  2. FileZilla Client

各々はSSHログインターミナルソフトとFTPソフトです。このあたりは自分の使いやすいソフトを用意してください。

バックアップ方法

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

MediaWikiが動いているフォルダに移動して以下のコマンドを実行します。

php maintenance/dumpBackup.php --full > backup.xml

そうすると、データベースがbackup.xmlという名前で保存されます

LocalSettings.phpのバックアップ

サイトの運用情報が保存されているLocalSettings.phpを保存します

ファイル類のバックアップ

イメージ(./images)を圧縮形式でバックアップします

tar -zvcf wiki-images-backup.tar.gz /home/username/www/images

CSSとか(./skins)を圧縮形式でバックアップします

tar -zvcf wiki-skins-backup.tar.gz /home/username/www/skins
  • 拡張機能(./extensions)を圧縮形式でバックアップします
tar -zvcf wiki-extensions-backup.tar.gz /home/username/www/extensions
  • 設定ファイル(./config)を圧縮形式でバックアップします
tar -zvcf wiki-config-backup.tar.gz /home/username/www/config

とりあえずこれぐらいバックアップしておけばリストアできると思います

メインページの保存

メインページのみ編集を押してWiki構文そのものの内容をコピーしてテキストファイルに保存しておきます

リストア方法

MediaWikiのリストア(復旧)方法です

(1)MediaWikiのインストール

MediaWikiのリストア(復旧)先のサーバに素の状態のMediaWikiをインストールしてください

(2)データベースをリストア(復旧)

dumpBackup.phpを使用した場合はMediaWikiのリストア(復旧)先のディレクトリに移動して以下のコマンドを入れてください
※バックアップファイル名がbackup.xmlの場合で、そのbackup.xmlがMediaWikiのリストア(復旧)先のディレクトリにあるとします

php maintenance/importDump.php < backup.xml

2017-09-02 10-16-29.jpg
インポート開始(表示)にかなり時間がかかります(データ数によっては10分以上かかってからスタート)が、成功すればDone!と出て成功します。

(3)ファイル類のリストア(復旧)

images関係のリストア(復旧)ですが、これはただ単にディレクトリをコピーすれば良いわけでは無く、MediaWikiのmaintenance/importImages.phpを利用してインポートする必要があります。このインポート方法はMediaWikiの画像リストアのためにあるわけでは無く、画像データを一括でMediaWikiへインポートする機能を流用して画像リストアを行います。
まず、バックアップを取ったイメージファイル(wiki-images-backup.tar.gz)を適当な解凍用フォルダを作成して(ここではtemporaryという名前)フォルダtemporaryにコピーします。

次にフォルダtemporaryに移動して以下のコマンドを入れます

tar zxvf wiki-images-backup.tar.gz

フォルダtemporary配下にバックアップを取ったディレクトリ構成で解凍されます
2017-09-02 10-29-12.jpg
ディレクトリ個々に画像ファイルが入っていますので、これを1つのフォルダに保存し直します。これはメンテナンスツールのimportImages.phpを使う場合、1つのフォルダに入っているイメージで無いと保存出来ないのです。従って、イメージを1つのフォルダにまとめるためのフォルダを作成します。(ここではtempimagesという名前)環境によってフォルダ構成が異なると思いますが、そこは自分の環境に合わせてください

cp /home/username/www/temporary/images/*/*/* /home/username/www/tempimages

/sbin/cp: Argument list too long

(引数リストが長すぎます)エラーと出てしまったので検索すると
以下のCPまたはMVで移動する

mv /home/[User_name]/www/wiki/tmp/home/[User_name]/www/wikipage/images/*/*/* yyy/ /home/[User_name]/www/wiki/tmp/tempimages

      ↓

find xxx/ -name "*.csv" -print0 | xargs -0 -I {} mv {} yyy/


find /home/[User_name]/www/wiki/tmp/home/[User_name]/www/wikipage/images/*/*/* -name "*" -print0 | xargs -0 -I {} mv {} /home/[User_name]/www/wiki/tmp/tempimages


次にメンテナンスツールのimportImages.phpを使ってインポートします

php maintenance/importImages.php /home/username/www/tempimages/

これでインポート完了です

(4).htaccessの編集

さくらのインターネットでは.htaccessのOptions、AllおよびFollowSymlinksは指定できないため。/images配下の.htaccessのOptionsを削除します

(5)その他のファイルのリストア(復旧)

画像以外であれば解凍してそのまま同じフォルダに保存すれば良いです

(5)LocalSettings.phpのリストア(復旧)

LocalSettings.phpを上書きして終了

ただし、リストア先が全く同じサイトであれば良いですが細かい情報が変わる場合には修正をしてください