Quantcast
Channel: Webcre Archive
Viewing all articles
Browse latest Browse all 29

WordPressでサーバ移行時にデータベース上のドメインを書き換える方法

$
0
0

WordPressでサーバを引っ越しする時や、開発環境から本番環境へ移行する際は、
データベース内の旧ドメインを新ドメインに書き換える必要があります。

その方法をまとめてみました。

今まで行っていた方法としては、
phpMyAdminからSQL文を打ち込みドメインを一括変換していました。

1
2
3
4
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,"旧ドメイン","新ドメイン");

ですが、岡本さんのブログ「WordPress のDB上のサイトURLを一気に変換」によると、
wp_options や wp_postmeta には、シリアライズされたデータが入っており、
そのまま変換するとまずいよと書かれてあります。
確認さんからは「動かないプラグインがでてくるばあいがありますよー」との事でした。

実際にダンプしたMySQLのデータを見て見ると、
s:22:\”http://www.example.com\”
のように、s: の後ろに文字列の長さが記述されているのが分かります。
これがシリアライズされたデータです。

そこで岡本さんブログに書かれている手順で書き換えを行ってみたのですが、
私の操作方法が悪いのかうまく書き換えらえれず Warning がでてしまい、
色々と検索し調べてみると、
Codex の Moving WordPress に別の方法での書き換え方法が書いてありました。

そのサイトをみると、Search and Replace for WordPress Databases Script というスクリプトが公開されているので、それを使用し書き換えを行うようです。

では順をおって、その書き換え方法をまとめてみたいと思います。
※データベースのバックアップ(エクスポート)、データベースの復元(インポート)は完了している前提の流れです。

手順1

まず下ごしらえとして、wp-config.php のDB設定を、移行先のDB情報に書き換えます。

下の 「*****」 を本番環境のものに変更します。

1
2
3
4
define('DB_NAME', '*****');
define('DB_USER', '*****');
define('DB_PASSWORD', '*****');
define('DB_HOST', '*****');

手順2

Search and Replace for WordPress Databases Script よりスクリプトをダウンロードします。
「Download Search Replace DB v 2.1.0」をクリックしダウンロード後に解凍します。
解凍後のファイルは searchreplacedb2.php となりますので、
そのファイルをWordPressのインストールディレクトリにアップします。

手順3

アップしたスクリプトにアクセスします。
例)http://www.example.com/searchreplacedb2.php

アクセスすると下記画面が表示されますので、【Submit】ボタンで次に進みます。

手順4

wp-config.phpに記述されているデータベース情報が画面が表示されますので、
間違いがなければ【Submit DB details】ボタンで次に進みます。

手順5

どのテーブルを対象とするかを選びます。
【Continue】ボタンで次に進みます。

手順6

Search for (case sensitive string): には旧ドメインを入力し、
Replace with: には新ドメイン(置き換えるドメイン)を入力し、
【Submit Search string】ボタンで次に進みます。

手順7

正常に書き換えが終われば、Completedの画面が表示され完了です。

手順8

最後にWordPressのインストールディレクトリに設置した
searchreplacedb2.php を削除し作業は完了です。

難しい知識もいらないので初心者の方でも出来るかと思います。
またコマンド入力が不要なので共用サーバでもいけそうですね!

 

追記:
WordBench千葉でスピーチさせて頂いたスライドをアップしています。合わせてご覧ください。
テスト環境から本番環境へ、URLが異なる環境にWordPressを移行する方法

 

【動作環境】 WordPerss3.4.2、WordPress3.5、WordPress3.5.1
【参考サイト】 http://codex.wordpress.org/Moving_WordPress
【参考サイト】 http://dogmap.jp/2012/09/20/wordpress-replace-siteurl/

ご相談にのっていただいた @horike37 さん、@gatespace_k さんに感謝いたします。


Viewing all articles
Browse latest Browse all 29

Trending Articles