WordPress のデータをバックアップするプラグインとして、WordPress Database Backup があります。2.0 で標準搭載で、定番といえるでしょう。
さて、この便利でありがたいプラグインですが、PHP がセーフモードになっているとうまく動かないという悩ましい事実があります。そして、WordPress 対応の定番としておなじみの XREA はセーフモードです。対策として、PHP を一時的に CGI として動かすというものがあり、ありがたいことに XREA はこれが簡単にできます。次のコードを .htaccess に加えるだけ。
- AddHandler application/x-httpd-phpcgi .php
これだけで動作するようになってくれます。
ただし、バックアップデータを得るためにはもう1つ問題がありました。
バックアップデータはダウンロードだったりメールで送信してくれたりと複数の方法が選択できます。共通するのは、PHP で gzopen という関数が実装されていると、ファイルを gzip という形式で圧縮するということ。ファイルサイズが小さくなってありがたいですが、この形式は Windows や Mac ではマイナーです。解凍ツールはありますが、存在を知らなければどうしたらいいのか悩んでしまうこともあるでしょう。
幸い私は存在を知っていたので普通に解凍してみたのですが、なぜか肝心のファイルはバックアップの意味を成さない内容のみ。gzip ファイルのサイズが380KB なのに、解凍してできたファイルは108Bしかありません。ほかの解凍ツールを試すという方法もありましたが、おもむろにプラグインの hack に挑戦。
hack といっても gzip を無効にするだけです。
関数の実装を確認するユーザー関数の定義が、65~67行目(WordPress に付属の 1.8 ではなく最新の 2.1.2 の場合)にあります。
- function gzip() {
- return function_exists('gzopen');
- }
これを、次のように変更します。コメントアウトした行を含めると、1行増えています。
- function gzip() {
- return false;
- // return function_exists('gzopen');
- }
この変更により、関数が実装されていても使えないと判断させることができます。
この変更を行って改めてバックアップしてみたところ、無事 1.63MB のファイルを得ることができました。phpMyAdmin では文字化けしているので心配でしたが、その点についても問題なく読める状態となっていました。
これで、WordPress 2.2 へのアップグレードに挑む準備ができました。