PukiWikiを使用してサイトを構築している場合、最新の情報は常にサーバー上にある。万が一サーバートラブルが発生して、データがすべて吹き飛んだようなときには、もう泣くしかない。
特に格安のレンタルサーバーなどでは、データのバックアップをしていないことも多い。実際とある格安レンタルサーバーの障害情報に「データが失われている可能性があります。FTPなどでアップロードしてください」などと書かれていた。これはとても怖い。
そのためPukiWikiには全ページを一括してバックアップするリモートバックアップ機能、また一括して元に復元するリモートリストア機能がある。マニュアルには簡単にしか記載されていないので、そのやり方を書いておきたい。ただし、失敗することも考えられるため、すべては自己責任でお願いします。*1
デフォルトでは機能しないようになっているので、まずはプラグインのdump.inc.phpを書き換える。FALSEの部分をTRUEと記述してアップロードしておく。
define('PLUGIN_DUMP_ALLOW_RESTORE', FALSE); //FALSE,TRUE
↓
define('PLUGIN_DUMP_ALLOW_RESTORE', TRUE); //FALSE,TRUE
もし、サイトのアドレスがwww.hogehoge.co.jpであるのなら、下記のURLにアクセスしてみる。
http://www.hogehoge.co.jp/?plugin=dump
dumpプラグインの準備ができたら、作業に取りかかろう。
バックアップデータは「〜.tar.gz形式」か「〜.tar形式」に圧縮されてダウンロードされる。ここはデフォルトの「〜.tar.gz形式」を選んでおけばいい。
バックアップされるディレクトリは、次の三つを選択できる。すべて保存しておきたい場合には、すべてにチェックマークを入れておけばいい。
なお、オプションにはチェックを入れない。この方式でダウンロードしたファイルは、リストアで復元することができない。
管理者パスワードを入力してOKボタンをクリックすれば、ダウンロードが始まる。
画面を見ても分かるとおり、バックアップファイルを選択して管理者パスワードを打ち込めば、自動的にリストアされる。
データのリストアが終わったら、linksで下記へアクセスし、ページのキャッシュを更新すること。
http://www.hogehoge.co.jp/?plugin=links
上記のURLにアクセスすると下記のような画面が表示されるので、管理者パスワードを打ち込んで実行をクリックする。これでバックアップからリストアまでの作業は終了となる。
慣れれば簡単な作業なのだけど、実は課題があるのだ。大規模なサイトともなると、例えばattachだけでも10数MB以上になるかもしれない。しかし、バックアップのダウンロードはできても、リストアのアップロードができない。
その理由は、PHPのアップロードサイズが1024KBしかないので、これを超えるファイルはアップロードできない。リモートによる作業は便利だけど、これは仕方ないというかちょっと困るというか。PukiWikiのスクリプトに同梱されているINSTALL.txtにも、次のように書かれている。
dumpプラグインにはdumpプラグインで取得したファイルの中身をPukiWikiに展開する機能(リモートリストア)も用意されています。ただしファイルに含まれていない データをPukiWikiから削除する機能はありません(常に上書きになります)し、WebサーバーやPHPのアップロードファイルサイズ制限を越えるファイルを利用することはできません。またこの機能はデフォルトで無効になっています。