WordPress で運用しているサイトの独自ドメインごと引っ越しする方法

先日、WordPress で運用されているサイトを独自ドメインごと引っ越すことがありました。ついでにバージョンを3系から4系にあげても問題なかったので手順を解説します。

引っ越し元サイトからデータを抜き出す

まずはデータ一式を自分のパソコンに保存して、引越しの準備をします。必要なデータは以下の通りで、FTP ソフトや SFTP ソフトを利用してデータを自分の PC に保存します。なお、ワードプレスのコアファイルは省きました。

  • テーマファイル一式
  • プラグイン一式
  • アップロードした画像
  • データベースをまるごとエクスポート

以上のデータをダウンロードして引越しの準備をします。なお、心機一転プラグインを何一つ入れていない状態で引っ越しをしたい場合は、上記のプラグイン一式を無視するのと、デフォルトのテーブルのみエクスポートします。

wp_commentmeta
wp_comments
wp_links
wp_options
wp_postmeta
wp_posts
wp_terms
wp_term_relationships
wp_term_taxonomy
wp_usermeta
wp_users

引越し先にWordPressをクリーンインストール

最新のWordPressを通常通りにクリーンインストールします。この時、引越し元サイトのバージョンは3系、引越し先サイトのバージョンは最新の4系をインストールしましたが、問題なく移行できました。いつも通り引越し先ドメインにアクセスするとWordPressの設定画面が表示されるので、データベースの名前や、ユーザー名、ログイン情報の入力など、WordPressを新規インストールする時と同じ手順でインストールを行います。

MySQL のデータベース名やユーザ名は、新規作成しても過去のものを流用しても構いませんが、肝心なことは引越し先の MySQL の設定情報をきちんとメモしておいてください。

データベースのインポート

引っ越し元サイトからエクスポートしたデータを引越し先へ移行します。インポートの際、データが膨大だと処理が失敗する可能性があります。phpMyAdmin を使うときは、phpのファイルアップロードのリミットやTimeOutをチェックしてみてください。なお、セキュリティ観点から phpMyAdmin を使わない運用にされている場合があると思いますので、その際は mysql コマンドからインポートしてみてください。私は SequelPro を利用しました。

データベースの更新

インポートが完了したら以下のSQLを実行してドメインの変更を行って下さい。

UPDATE wp_options SET option_value = replace(option_value, '前URL', '新URL') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, '前URL', '新URL');
UPDATE wp_posts SET post_content = replace(post_content, '前URL', 'URL');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'前URL','新URL');

以上を行うことでサイトの引越しは完了し、前 URL で表示されていた記事が閲覧できるようになります。なお、今回は引っ越し元サイトと引越し先サイトでパーマリンクの設定がずれていたので、ダッシュボード右側のメニューから

設定 > パーマリンク設定

と進み、修正しました。他にデフォルトのインストールから設定を変更している場合、サイトが上手く動作しない可能性があるので「設定」メニューをよく確認することをお勧めします。

以上