Tag Archives: MySQL

WordPressのバックアップ

Sunday 20 September 2009

WordPressの投稿やユーザーは、MySQLのデータベースになっています。
また、テーマやプラグイン、アップロードされたグラフィックスなどは、基本的にWordPressのインストールされているディレクトリー下にあります。
ということで、MySQLのバックアップと、ディレクトリーの複製という二つの作業を行ないました。

ディレクトリーの複製

これは単純に、cpコマンドでディレクトリー全体を複製しました。例ではWordPressがインストールしてあるディレクトリーwpをwpbackupに複製します。

$ cp -pR wp wpbackup

オプションの-pは、ファイルの属性(パーミッション)を保持したままコピー。
-Rは、再帰的にコピーする(サブディレクトリーもコピーする)ということだそうです。

これで、もしwpディレクトリーの中がぐちゃぐちゃになってしまったとしても、削除して(rm -R wp)、複製し直せば(cp -pR wpbackup wp)元に戻ります。

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

phpMyAdminを使った方法が紹介されていますが、今回はこちらのページを参考にコマンドラインからバックアップを作成しました。

$ mysqldump -u username -ppassword wpdatabase > wpdatabase.sql

このページにも書いてありますが、「-pとパスワード名は間をあけない」というのが、一瞬悩みました。(^^;

ちなみに、MySQLは、以下のようにして使用を開始します(MySQLのモード?に入ります)。

$ mysql -u root -p

コマンド・プロンプトがmysql>になるので、終了するにはexitコマンドを入力します。

mysql>exit

MySQLのコマンドは、最後が ; (セミコロン)で終わるのが特徴のようです。

他に、Webminも使って、毎日自動バックアップもとっています。まあ、そんなに頻繁に更新してされているわけでもないので、本当はそのファイルがあれば十分だったのですが、一応練習がてらやってみました。

こちらは日本語の説明。

古いWordPressのサイトを新サイトに移行

Sunday 20 September 2009

MovableTypeからWordPressに乗り換えて最初に作ったサイトを、ようやく新しいバージョン(2.8)のWordPressにアップデートしました。事情があってバージョン2.0.11 ME(だったかな?)のまま放置せざるを得なかったのだけど、このバージョンでは先日知った新しいタグ(wp_list_categories)が使えないことがわかったので。

でもこれが、想像以上に大変でした。
バージョン2.0のころというと、まだ2年も経ってないのだけれど、現在までの間にWordPressは大幅に進歩しました。使えるタグの仕様が変わっていったのは当然として、文字コードの関係とかもあったんですよね。もうこれは、本当に日本人でいるかぎり、30年後でも悩まされるんだろうな。これまでコンピューターを使ってきて、最初から日本語が何の問題もなく使えるものって、出会ったことがないです(WindowsだってVistaになってようやく普通に日本語に対応したんですから…)。
まあ、そういうアーリー・アドプターの悩みは、好きでやってることだから仕方がないです。

今回の場合、一気に2.8にアップデートしようとしたら、全面的に文字化けになってしまいました。
当初からエンコーディングはUTF-8を使っています。
はっきりとは分からないのですが、2.2以降、日本語関係が変更になっているようです(どっかに書いてあったんだけど、忘れてしまった…)。

ということで、手順の大きな流れ

  1. まずは現在のサイトのバックアップを作成
    まずWordPressのファイルの単なるバックアップです。WordPressのインストールしてあるディレクトリー全体をcpで複製します。
    もうひとつ、MySQLのデータベースもバックアップを作っておきます。
  2. データベースを書き出し
    WordPressの書き出し機能を使って、投稿を書き出します。これはXML形式のファイルを手元にダウンロードすることができます。
    ただし、書き出し機能が付いたのはWordPress 2.1からでした。だから、まず2.0を2.1にアップデートしなくてはいけない。ところが日本語版の2.1はすでにダウンロードできないらしい。ということで、仕方なく英語版2.1.3にアップデートしました。
  3. 2.1のログイン画面。なんかナツカシス。

    2.1のログイン画面。なんかナツカシス。

  4. 別ディレクトリーに2.8を新規インストール
    MySQLのデータベースも新しく作ります。

    うちの場合、WordPressをインストールするたびに新しいデータベースを作ることができるのですが、それができない場合にはwp-config.phpファイルの中の「データベーステーブルの接頭辞」(prefix)というのを変更して別のテーブルを作れば、古いWordPressと新しいWordPressを共存させることができるらしいです。たとえば、$table_prefix = ‘wp01_’;とかにする(?未検証)

    この段階では、暫定のURLで動かしておきます。

  5. データベースを読み込み
    最初うまくいったように見えたんですが、実際はカテゴリーの関連づけ(親と子)が滅茶苦茶になってしまっていました。で、結局それを手で直しました。(;_;)

    詳しく分からなかったのですが、日本語のカテゴリー・スラッグが問題になっていたようです。2.1.3の書き出しに問題があるのか、他のバージョンでも同じようになるのか、アルファベットのカテゴリー・スラッグなら問題は発生しないのか、など、わかっていません。(^^;

  6. ウェブサーバーの設定変更で新しいディレクトリーを使うようにする
    Apacheの設定を書き換え、以前から使っていたURLが新しい2.8のディレクトリーを指すようにします。そのあとWordPressにログインして、ダッシュボードの「設定」のところでURLの設定も書き換えます。