wordpressで管理しているサイトのドメイン移行
最近、wordpressを試さないといけなくていろいろ調べていたので、そのことについて書きます。
wordpressの鬼門の一つとしてサーバ移行やドメイン移行等がありますね。もしくは、ローカルで作ったものを本番に上げるとか。
しかし、wordpressって、サーバの情報をデータベースに登録するので、そのままダンプして持っていってもダメなんですね。まぁ、マルチブログを使用していなければ、wp_config.phpでWP_HOMEとWP_SITEURLを指定してあげるだけで大丈夫そうなんだけど、マルチブログを使用していると変更箇所はそこだけじゃなくなってきます。あぁ。面倒くさい。
マルチブログを使用していない際には、上にも書きましたが、WP_HOMEとWP_SITEURLの変更でいいのですが、データベース的にはこの値は、wp_optionsテーブルに入っているので書き換えてあげましょう。例えば、example.ogに変更をしたい際には、
UPDATE wp_options SET option_value = 'example.org' WHERE option_name = 'home'; UPDATE wp_options SET option_value = 'example.org' WHERE option_name = 'siteurl';
と指定します。
また、マルチブログを使用していると上の変更だけではできません。具体的には、wp_blogsテーブル、wp_optionsテーブル、wp_[1-x]_optionsの値を変更する必要があります。複数ブログを3個持っている際には、wp_1_options、wp_2_options, wp_3_optionsの値を変更します。
UPDATE wp_1_options SET option_value = 'example.org' WHERE option_name = 'home'; UPDATE wp_1_options SET option_value = 'example.org' WHERE option_name = 'siteurl'; UPDATE wp_2_options SET option_value = 'example.org' WHERE option_name = 'home'; UPDATE wp_2_options SET option_value = 'example.org' WHERE option_name = 'siteurl'; UPDATE wp_3_options SET option_value = 'example.org' WHERE option_name = 'home'; UPDATE wp_3_options SET option_value = 'example.org' WHERE option_name = 'siteurl'; UPDATE wp_blogs SET option_value = 'http://example.org'';
この変更でブログのサーバの移行ができます。マルチブログの方は厄介ですね。しかし、wordpressって、なんでサーバ情報までテーブルに突っ込んでいるんだろう。
ちなみに今回試したwordpressは3.1.2です。まぁ、設定等を持っていかずに投稿内容だけを持っていくなら、エクスポートが楽なんですが、その際には設定をまたしないといけないので、ダンプして、ポコッとリストアするのが楽なので、やっぱりこっちの方がいいのでは、と。
Shin Ohno 2003-2012