Liner Note

情報(ユーザー中心デザイン・ユーザビリティ)と技術(ウェブプログラミング・ウェブサービス)についてのメモ書き

要約:あるWordPressブログを、サーバの移転やローカル鯖への同期など別の場所にコピーする方法についての簡単なまとめ

実は前に一回書いたのだけど、その後書き足すことが増えたのでまとめなおし。なお、前提としてUTF-8のブログをUTF-8(つまりそのまま)でコピーするとします。

まず、WordPressでは標準でXML(WXR形式)でのインポート・エクスポート機能を実装していますが、現状ではデメリットが大きくて使わない方が得策です。なぜかというと‥

  • 添付ファイルの個別URLがおかしくなる(guidとmime-typeが引き継がれない)
  • 記事IDを1からふり直すので、IDを中心にURLを設計していた場合はURLが変わってしまう
  • 記事の抜粋が消えてしまう
  • エクスポートしたファイルが大きい場合は(ファイル自体を分割しない限り)サーバの処理時間制限にひっかかって、インポートできない場合がある

というわけです。念のためnightlyビルドも試してみましたが、2007/9/12現在ではまだ直っていません。

なので、元サーバ(以下、サーバA)のMySQLAdmin1 経由でエクスポート→移行先サーバ(以下、サーバB)のMySQLAdmin経由でインポートすることにします。MySQLAdminは、さくらインターネットやXREAなど並のレン鯖屋さんなら使えるはずです。

事前準備

まず、WordPress側で文字化けが発生する事があるため、power source* – XREAにUTF8設置時の文字化け 解決編に従って、以下のようにコードを追加。

PHPソースコード (wp-includes/wp-db.phpの78行目あたり)
if ( !empty($this->charset) && version_compare(mysql_get_server_info(), '4.1.0', '>=') )
             $this->query("SET NAMES '$this->charset'");
        
        mysql_query("SET NAMES utf8", $this->dbh);
        $this->select($dbname);
    }

サーバAから書き出し(エクスポート)

次にサーバAのMySQLAdminに文字コードを utf-8 にしてログイン(さくらは確かEUC-JPが初期状態だったはず)。

右フレームのタブにある「エクスポート」を選択して、出てきた画面でWordPressに関係ある全てのテーブルを選択。『「DROP TABLE」を追加』と『完全な INSERT 文を作成する』の項目にチェックを入れたら、「実行」ボタンを押して保存します。

書き出したファイルの調整

書き出したファイルをUTF-8が扱えるテキストエディタで開いて、以下の部分のURLをサーバBのWordPress設置予定URLに修正します。これをしない限り、サーバAにリダイレクトされるので注意。

MYSQLソースコード
INSERT INTO `note_options` (`option_id`, `blog_id`, `option_name`, `option_can_override`, `option_type`, `option_value`, `option_width`, `option_height`, `option_description`, `option_admin_level`, `autoload`) VALUES (1, 0, 'siteurl', 'Y', 1, 'http://localhost/blog/', 20, 8, 'WordPress web address', 1, 'yes');
(中略)
INSERT INTO `note_options` (`option_id`, `blog_id`, `option_name`, `option_can_override`, `option_type`, `option_value`, `option_width`, `option_height`, `option_description`, `option_admin_level`, `autoload`) VALUES (40, 0, 'home', 'Y', 1, 'http://localhost/blog/', 20, 8, '', 1, 'yes');


書き出した設定によっては、以下のように略記されていることがあります。その場合は、siteurlhomeおよび1,040,0などを手がかりに検索を行いましょう。

MYSQLソースコード
(1, 0, 'siteurl', 'http://localhost/note/', 'yes'),
(中略)
(40, 0, 'home', 'http://localhost/note/', 'yes'),

サーバBへ書き入れ(インポート)

終わったらサーバBのMySQLAdminへ。WordPressのテーブルを選んで、また右フレームのタブから「インポート」を選択。さきほど編集したファイルをインポートしたら終わりです。

同期の必要が無くても、慣れればそれほど難しくないので、バックアップ代わりとして定期的にやっておくのもいいかもしれません。

  1. MySQLを操作するフロントエンドアプリケーション[戻る]

Popularity: 3% [?]

キーワード:

似たもの記事

読者の皆さんの反応サイト内コメントの更新情報(RSSフィード)

読者のコメント

1

ブックマークコメント

3

他サイトの関連記事

0

読者のコメント

  1. お名前

    XRumerTest

    投稿日時
    2010年02月12日
    3時ごろ
    Comment No
    #1

    Hello. And Bye.

はてなブックマークでつけられたコメント

kutekenさんのプロフィール画像  kuteken
WordPress丸コピ(しかもMySQLAdmin使えないver)はきついのか…?
pc_nagomuさんのプロフィール画像  pc_nagomu
WXRについて
love210さんのプロフィール画像  love210
これは試す!

他サイトの関連記事

トラックバックはまだ寄せられていません


トラックバックとは
この記事に言及したサイトをこちらに掲載する仕組みをトラックバックと言います。ここでは、このサイトに頂いたトラックバックを一覧表示しています。
トラックバックしてくださる方へ
この記事への言及がない記事など、トラックバック受信方針に沿っていないものは、読者にお見せしても仕方ないこともあり削除させていただいることをご了承ください。
トラックバックを受け取るためのURI

コメント書き込みフォーム

  • メールアドレスはウェブ上で公開したり、連絡以外で使うことはありません
  • コメントを公開したくないが、作者に連絡を取りたい場合は メールで連絡してください
  • 本文中にHTMLコードは使用できません(URLはそのままお書きください)