MediaWikiはWikipediaでも使われているWikiクローン。PukiWikiとは違い、データベースを使うので、簡単に移動することは難しい。
今回は、MediaWikiをサーバまたぐ大移動を行うための方法を紹介する。
注意:この方法が正しい方法だ、というわけでもありません。自分が考えた独自の方法です。
MediaWiki 本体のコピー
MediaWikiは記事を表示したり、編集を保存したりするプログラム本体(拡張機能含む)と記事や画像を保存しておくデータベースに別れる。MediaWikiを新しいサーバに移動するには、ただファイルを移動されればよい。
- 旧サーバからファイルを全てローカルにダウンロード
- 新サーバにファイルを全てアップロード
これだけだ。とても簡単だ。この状態でアクセスしてもデータベースが無いのでエラーが表示される。(PukiWikiの場合、これで動作する(ハズ)。)
データベースの移動
データベースは何で移動するか。SSHからコマンドを叩いてもいいのだが、今回はphpMyAdminを使用する。
phpMyAdminでデータベースにログインする。エクスポートを選び、データベース "databasename" からテーブルをエクスポートが表示されれば成功。設定をし、エクスポートする。
- エクスポート方法を「詳細」に変更 → 項目が増えるが後回し
- 出力、フォーマット、フォーマット特有のオプションはいじらない
- 生成オプションで「DROP TABLE / VI … コマンドを追加する」にチェックを入れる
- エンコーディングの変換もいじらない
このまま一番下にある実行を押すとデータベースのデータがダウンロードされるが非常に(サイズが)大きいので、分割する。
後回しにした「テーブル」で全てのテーブルを選択せず、
- 3つ4つ、選択し、実行を押してダウンロード。
- また別のテーブルを選択し、実行を押してダウンロード。
- 全てのテーブルをダウンロードし終わるまで繰り返す。
今度は移動先のデータベースで操作する。インポートを選び、データベース "newdatabasename" へのインポートと表示されていれば成功。
- *参照...*にファイルを指定し、他の設定はいじらずに実行を押す。
- 全てがインポートできるまで繰り返す。
これで、エクスポート・インポートが完了する。
テーブル構造がこのようになっていれば大丈夫だ。今回はプレフィックスに*wiki_*を利用している。(クリックで拡大します)
設定を変更
LocalSettings.phpを編集する。サーバの環境が同じの場合はこの部分のみ変更するとよい。
$wgServer = "newserver";
$wgDBserver = "localhost";
$wgDBname = "newdbname";
$wgDBuser = "newdbuser";
$wgDBpassword = "newdbpwd";
メール送信等利用している場合は変更すること。
最終確認
新しいWikiにアクセスして動作を確認する。最近の更新、記事、画像、ページの保存等、基本的な動作を確認する。また、特別:バージョン情報で拡張機能が認識されているか、スクリプトパス、記事パスが正常かどうかも確かめる。
あとがき
大雑把ながらMediaWikiの移動方法を執筆した。これからの投稿もMediaWikiを中心にHTMLなども投稿していきたい。