2018年1月21日
  • 自社保有メディアのサイト運営によるインターネット広告事業・WordPressによるサイト制作事業・コワーキングスペース・シェアオフィス・貸会議室の運営事業を行っています。

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

コメント一覧

khoshino2012年8月2日 10:01 AM /

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

nendeb2012年8月2日 10:07 AM /

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

nendeb2012年8月2日 10:07 AM /

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

eireirjp2012年8月2日 10:44 AM /

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

wsqlnews2012年8月2日 11:24 AM /

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

webdesignstatio2012年8月2日 2:15 PM /

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

a nagano2012年8月2日 2:26 PM /

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

wordpress_news2012年8月2日 2:36 PM /

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

w3qreader2012年8月2日 2:40 PM /

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

yosh32012年8月2日 3:17 PM /

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

c_tpl2012年8月2日 6:32 PM /

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

wordpress_bot2012年8月2日 6:32 PM /

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

infoeproduction2012年8月2日 7:00 PM /

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

shidomido20122012年8月5日 12:00 PM /

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

codingheler2012年8月5日 12:56 PM /

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

bitgleams2012年8月5日 1:36 PM /

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

mentsuyu12012年8月7日 8:03 AM /

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

wokamoto2012年9月25日 1:22 PM /

星野さん、どもです。 すいません、一部誤りがありました。 「ただ wp_options とか wp_postmeta とかにはシリアライズされたデータが入っているので、これらはそのまま置換するとまずいです。」 ではなく 「ただ wp_options とか wp_postmeta とかにはシリアライズされたデータが入っていることもあるので、これらはそのまま置換するとまずいです。」 ですね。 使ってるプラグインとかテーマによっては、シリアライズしてデータを保持したりしてることがあるので。

khoshino2012年9月25日 2:09 PM /

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

Whizzo Production2012年9月25日 5:30 PM /

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

Wordpress Ninja2012年9月25日 5:30 PM /

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

NRG-K 2013年2月16日 5:34 PM /

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

ヌカガジュンコ2013年2月16日 5:34 PM /

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

WordPressの独自ドメイン引越し時にPhpMyAdminで変更するべきSQL文。URLの一括変換など2013年8月1日 9:01 PM /

[...] 参考:WordPressでの独自ドメイン移行時に、PhpMyAdminで書くべきSQL文 [...]

開発用WPから本番環境に移行する手順 | chibicolon【チビコロン】2013年9月2日 6:29 PM /

[…] 参考サイト http://www.communitycom.jp/2012/08/02/phpmyadmin-sql/ […]

wordpressドメイン失効時のログイン方法 | ウィンドミル いわしブログ2014年1月5日 9:27 AM /

[…] WordPressでの独自ドメイン移行時に、phpMyAdminで書くべきSQL文 | 株式会社コミュニティコム […]

muroya-design2015年3月11日 1:56 PM /

“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