テスト環境から本番環境へのWordPress移設をphpMyAdminでできるだけラクにやってみる

[2014.12.28追記]
いわゆる「黒い画面」に抵抗ない方なら、WordPressをコマンドラインから扱える『WP-CLI』の wp search-replace コマンドを使うのも一つの方法です。下記の記事に詳しいのでよろしければどうぞ。

WordPressの引っ越しに便利な wp search-replace | Gatespace's Blog


[2014.3.18追記]
現時点で初心者の方でも無理なく移行できる方法は、公式プラグインディレクトリにある『WP Migrate DB』を使うことではないかとおもいます。プラグインの設定画面は英語ですが、日本語化ファイルをGitHubにアップしていますので、よろしければどうぞ。

wp-migrate-db/languages at prototype · tecking/wp-migrate-db · GitHub
https://github.com/tecking/wp-migrate-db/tree/prototype/languages

上記のページから wp-migrate-db-ja.mo をダウンロードして、プラグインの languages ディレクトリに配置してください。

スミマセン。プラグインのアップデートに日本語化ファイルが追従できてません……


[2013.5.12追記]
これまで、私の環境ではたまたまうまくいっていましたが、このページに示した方法では正しく移設ができないケースがあることがわかりました。その理由と対処法について、以下のリンク先で説明がされているのでぜひそちらをご参照ください。

WordPress のDB上のサイトURLを一気に変換 | dogmap.jp

WordPressでサイト構築をする際、自分のPCにXAMPPなどでテスト環境を作り、しかる後に本番環境に移設するケースが多いかと思います。でも、単にインストールディレクトリ以下を本番環境に持っていくだけではダメで wp-config.php の書き換えとかデータベースの設定とかいろいろ面倒な作業が発生しますよね。

ということで、備忘録を兼ねて図版入りでテスト環境→本番環境への移設手順をまとめてみました。いつものとおり「ご利用は計画的に 🙂 」な技術情報ですのでご容赦のほど。

以下、テスト環境(localhost)のファイル・ディレクトリ等を青文字で、本番環境(www.example.com)のファイル・ディレクトリ等を緑文字で示します。

  1. wp-config.php の DB_NAME,DB_USER,DB_PASSWORD,DB_HOST の行を本番環境に合わせて書き換えます。
  2. インストールディレクトリ以下の全ファイル・ディレクトリを本番環境にアップロード。
  3. phpMyAdminにアクセスし、テスト環境のデータベース内容を表示させます。
  4. 「エクスポート」タブをクリックし
    すべてのテーブルが選択されていることを確認したら……

    「ファイルに保存する」にチェックを入れてエクスポート。
  5. phpMyAdminにアクセスし、本番環境のデータベースを表示させます。

    テスト環境の全ファイル・ディレクトリをアップロードしたものの、WordPressのインストールスクリプトを実行させていないのでデータベースの中身はからっぽです。
  6. 「インポート」タブをクリックし、4.でエクスポートしたファイルを読み込みます。
  7. 読み込まれるとこんな感じになります。この例ではプラグインが使うテーブルも読み込まれてるので、デフォルトよりもテーブルの数が増えています。
  8. テスト環境のURLを本番環境のものに置換するため、「SQL」タブをクリックします。
  9. 以下のSQL文を実行します。
    UPDATE `wp_options` SET option_value=REPLACE( option_value, "localhost", "www.example.com" );
    UPDATE `wp_posts` SET post_content=REPLACE( post_content, "localhost", "www.example.com" ), guid=REPLACE( guid, "localhost", "www.example.com" );
  10. では、本番環境のURLにアクセスしてみましょう。いかがでしたか?

ちなみに今回の例では、テスト環境でインストールしていたプラグイン『Contact Form 7』が使うテーブルもSQL文で置換する必要がありました。

UPDATE `wp_contact_form_7` SET mail=REPLACE( mail, "localhost", "www.example.com" ), mail_2=REPLACE( mail_2, "localhost", "www.example.com" );

ちなみにphpMyAdminを使わずとも、4.でエクスポートしたファイルをテキストエディタで開き localhost を www.example.com に一括置換→本番環境にインポート でうまくいく場合もあります。私の場合は、何度かこの方法を試してみてまったくダメだったんですが……

なお、以上の手順ではWordPressのコアファイルやテーマ、プラグイン、アップロードした画像などは本番環境に移設できません。別エントリーで手順をまとめましたのでそちらもあわせてどうぞ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください