WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文


こんにちは。株式会社コミュニティコムの星野邦敏です。

昨日のKDDIウェブコミュニケーションズさんで行われました
Web制作を効率化して、クリエイティブに専念しよう~WordPress編~(Facebookイベント)
において、
CPIサーバーでのSmartRelease(スマートリリース)のサービス紹介がありました。

WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文
KDDIウェブコミュニケーションズの阿部さんの発表。

SmartRelease(スマートリリース)というサービスは、共有レンタルサーバーのCPIを使った際に、
・テストサーバーから本番サーバーに移行できる(テストサイトと公開サイトが同じ環境でボタン1つで動作できる)
・過去30日分のバックアップを自動で取ってくれる(30世代前までのバックアップデータを毎日深夜の時間帯で自動で取ってくれる)
この2点が大きなサービス特徴だそうです。

SmartRelease(スマートリリース)は、CPIサーバーの「シェアードプラン ACE01」を使っていれば、無料で利用できるサービスということで、おぉ!素晴らしい!と思いました。

ただ、結局、テストサーバーから本番サーバーに移行する際には、FTPファイルはそのまま移行してくれるので便利ですが、WordPressのように、データベース(MySQL)にURLが相対パスではなく絶対パスで格納されてしまう場合には、SmartRelease(スマートリリース)が用意するテストサーバーの独自ドメインと本番サーバーの独自ドメインは、URLが異なるから、本番に移行するボタンを押した後にSQL文を書いてね、という説明でした。

WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文

この1手間は意外に敷居が高いと感じる人もきっといると思いまして、これだったら、本番環境の階層下のディレクトリでテストサーバー作る方が楽だと思う人もいるかもしれないですし、結局、初心者向けにはSQL文をどう書いて良いのか分からないんじゃないかと思いました。
また、独自ドメインに移行する際に、既にカスタムフィールドを作っている場合には、meta_valueもREPLACE(リプレイス)しないといけないと思うので、阿部さんが解説されていたSQL文だけではカスタムフィールドを作っていた場合でそこにURLを入力していた際にはSQL文が足りない気がしました。

そこで、WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文として、弊社で行なっている方法を、以下に記載します。
この方法は、今回のSmartRelease(スマートリリース)での移行のように、テストサーバーと本番サーバーのURLが異なる場合だけでなく、独自ドメインURLをそもそも変更するような移行の際にも、どのサーバーにおいても実行できる方法だと思います。

要は、WordPressのデータベースにおいて、URLの記述のある場所を、SQL文でREPLACEする(リプレイスする)ということです。

以下、具体的な方法を記載します。

WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文

まず、データベース内に入りましょう。今回は共有レンタルサーバーを前提としているので、多くの共有レンタルサーバーには、予めphpMyAdminがあると思いますので、phpMyAdminから操作します。

(1)
上のタブに[SQL]という箇所があるので、クリックします。

(2)
そこに、以下のSQL文を入力します。

UPDATE wp_options SET option_value=REPLACE(option_value,"旧ドメイン","新ドメイン");
UPDATE wp_posts SET post_content=REPLACE(post_content,"旧ドメイン","新ドメイン");
UPDATE wp_posts SET guid=REPLACE(guid,"旧ドメイン","新ドメイン");
UPDATE wp_postmeta SET meta_value=REPLACE(meta_value,"旧ドメイン","新ドメイン");

例えば、以下のような形です。

UPDATE wp_options SET option_value=REPLACE(option_value,"http://www.wp-sample.com","http://www.wp-sample.net");
UPDATE wp_posts SET post_content=REPLACE(post_content,"http://www.wp-sample.com","http://www.wp-sample.net");
UPDATE wp_posts SET guid=REPLACE(guid,"http://www.wp-sample.com","http://www.wp-sample.net");
UPDATE wp_postmeta SET meta_value=REPLACE(meta_value,"http://www.wp-sample.com","http://www.wp-sample.net");

(3)
最後に、[実行する]をクリックします。
なお、SQL文を実行してしまいますと、元に戻せませんので、URLが正しいか、しっかりと確認しましょう。実行時間自体は、記事数にもよりますが、基本的には、一瞬で実行されると思います。

以上となります。

WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文

KDDIウェブコミュニケーションズの阿部さんの発表の後に、データベースの移行について、やいのやいの議論する人達。
阿部さんは、オープンソースCMS「Drupal」の日本のコミュニティ活動もされているそうです。

WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文

その後、懇親会でも、色々とお話をしました。
発表者だった、よつばデザインの後藤さん、阿部さん、ありがとうございました!

後藤さんのスライド
(スライド)WordPressを使ったWeb制作効率化のためのTips&Tools | よつば手帖

この様子は、直子さんやサトタカさんも既にブログ記事にしているようです。そちらもご覧ください。
「Web制作を効率化して、クリエイティブに専念しよう~WordPress編~」イベントレポート – ja.naoko.cc
デザイナーが語る効率的なWordPressサイト制作|ロゴ&ウェブデザイナー!

(2012年9月24日追加)
自分は上記のデータベースの一括置換で今まで問題が無かったのですが、
岡本さんのブログを拝見したら、
「ただ wp_options とか wp_postmeta とかにはシリアライズされたデータが入っているので、これらはそのまま置換するとまずいです。
(シリアライズデータの中には、文字列の長さとかも含まれてるので)
そこで、シリアライズされたデータは一度アンシリアライズしてから置換して、シリアライズした後に DB に書き戻してやる必要があります」
とありました。
以下の記事もご参考ください。
WordPress のDB上のサイトURLを一気に変換 | dogmap.jp

(2012年10月9日追加)
山本さんがスクリプトの紹介をしてくださっていました。
以下の記事もご参考ください。
WordPressでサーバ移行時にデータベース上のドメインを書き換える方法 | Webcre Archive


"WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文" に27件のコメント

  1. 昨日のCPIサーバーでのSmartReleaseのサービス説明の際のWordPressのデータベースの移行に関連して、以下のような記事を書きました。 RT WordPressでの独自ドメイン移行時に、PhpMyAdminで書くべきSQL文 http://t.co/aeHKqCz0

  2. 昨日のCPIサーバーでのSmartReleaseのサービス説明の際のWordPressのデータベースの移行に関連して、以下のような記事を書きました。 RT WordPressでの独自ドメイン移行時に、PhpMyAdminで書くべきSQL文 http://t.co/aeHKqCz0

  3. RT @khoshino: 昨日のCPIサーバーでのSmartReleaseのサービス説明の際のWordPressのデータベースの移行に関連して、以下のような記事を書きました。 RT WordPressでの独自ドメイン移行時に、PhpMyAdminで書くべきSQL文 http://www.communitycom.jp/2012

  4. 共有レンタルサーバーのCPIを使った際に、
    ・テストサーバーから本番サーバーに移行できる(テストサイトと公開サイトが同じ環境でボタン1つで動作できる)
    ・過去30日分のバックアップを自動で取ってくれる(30世代前までのバックアップデータを毎日深夜の時間帯で自動で取ってくれる)
    この2点が大きなサービス特徴だそうです。

  5. WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文 | 株式会社コミュニティコム http://t.co/e04qbYO7

  6. WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文 | 株式会社コミュニティコム こんにちは。株式会社コミュニティコムの星野邦敏です。 昨日のKDDIウェブコミュニケーションズさんで行われました … http://t.co/8LRHej6j

  7. WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文 | 株式会社コミュニティコム – http://www.communitycom.jp/2012

  8. WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文 | 株式会社コミュニティコム http://t.co/OfhGa2Dl #wordpress

  9. WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文 | 株式会社コミュニティコム
    http://t.co/zoNNnXLH

  10. そこで、WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文として、弊社で行なっている方法を、以下に記載します。
    この方法は、今回のSmartRelease(スマートリリース)での移行のように、テストサーバーと本番サーバーのURLが異なる場合だけでなく、独自ドメインURLをそもそも変更するような移行の際にも、どのサーバーにおいても実行できる方法だと思います。

  11. WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文 | 株式会社コミュニティコム http://t.co/rNigs53b

  12. WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文 | 株式会社コミュニティコム http://t.co/nXRd3jAe

  13. WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文 | 株式会社コミュニティコム http://t.co/rNigs53b

  14. “WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文 | 株式会社コミュニティコム” http://t.co/NsUznTR5

  15. WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文 | 株式会社コミュニティコム: こんにちは。株式会社コミュニティコムの星野邦敏です。 昨日のKDDIウェブコミュニケーションズさんで行われま… http://t.co/v875k7HQ

  16. “WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文 | 株式会社コミュニティコム” http://t.co/TI4m1C85

  17. WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文 | 株式会社コミュニティコム http://t.co/GkytEMqR

  18. 星野さん、どもです。
    すいません、一部誤りがありました。

    「ただ wp_options とか wp_postmeta とかにはシリアライズされたデータが入っているので、これらはそのまま置換するとまずいです。」

    ではなく

    「ただ wp_options とか wp_postmeta とかにはシリアライズされたデータが入っていることもあるので、これらはそのまま置換するとまずいです。」

    ですね。
    使ってるプラグインとかテーマによっては、シリアライズしてデータを保持したりしてることがあるので。

  19. khoshino

    おぉ、岡本さん、わざわざありがとうございます。
    そうなのですね、自分は知らなかったので参考になりました!

  20. WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文 | 株式会社コミュニティコム – http://www.communitycom.jp/2012

  21. WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文 | 株式会社コミュニティコム – http://www.communitycom.jp/2012

  22. @nukaga @atakig 星野さんのblogにあった。http://t.co/b9NVJxUq phpMyAdminはそんなに敬遠しなくても大丈夫だと思う。

  23. RT @nu_nrgist: @nukaga @atakig 星野さんのblogにあった。http://t.co/b9NVJxUq phpMyAdminはそんなに敬遠しなくても大丈夫だと思う。

  24. ピンバック: WordPressの独自ドメイン引越し時にPhpMyAdminで変更するべきSQL文。URLの一括変換など

  25. ピンバック: 開発用WPから本番環境に移行する手順 | chibicolon【チビコロン】

  26. ピンバック: wordpressドメイン失効時のログイン方法 | ウィンドミル いわしブログ

  27. “UPDATE wp_options SET option_value=REPLACE(option_value,"http://www.wp-sample.com","http://www.wp-sample.net");UPDATE wp_posts SET post_content=REPLACE(post_content,"http://www.wp-sample.com","http://www.wp-sample.net");UPDATE wp_posts SET guid=REPLACE(guid,"http://www.wp-sample.com","http://www.

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA