AC-5

某SEの雑記帳

WordPressでサーバ移行時にドメインが変わる場合の書き換え方

   

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

色々なサイトを参考にすると、MySQLに接続しUPDATEで書き換える方法も記載されているのですが、
ダンプしたデータを見てみると、シリアライズされたデータがあったりして、うまく動かない事があります。

色々試した結果、一番楽で確実な方法がCodexのMoving WordPressに記載されています。

このサイトを参考にすると、DATABASE SEARCH AND REPLACE SCRIPT IN PHPというスクリプトが公開されていて、それを利用して書き換えを行います。

例として、旧環境→新環境への移行で進めます。

※旧環境のデータベースをmysqldumpでバックアップを取り、新環境への復元まで完了している状態からの流れになります。

事前準備

WordPress引越しを参考にして、新環境に全てのデータを移行しておきます。
※この時データベースの復元まで終わらせておきます。

WordPress設定ファイル書き換え

新環境のWordPressの設定ファイル(WordPressインストールディレクトリ直下)の、
wp-config.phpファイルをエディタで開き、データベース情報を本番環境のものに書き換えます。

例)下の「*****」を本番環境のものに変更します。
※完全に新しくサーバを建てたりして、データベース移行の際に、mysqlデータベース(userテーブル等)も含む全てのデータベースを移行した場合は、この作業は不要になる事があります。

define('DB_NAME', '*****');
define('DB_USER', '*****');
define('DB_PASSWORD', '*****');
define('DB_HOST', '*****');>

Search and Replace for WordPress Databases Scriptのダウンロード

DATABASE SEARCH AND REPLACE SCRIPT IN PHPにアクセスし、DOWNLOADを行うと、「Search-Replace-DB-master.zip」というファイルがダウンロードされますので、解凍します。
解凍すると、「Search-Replace-DB」というフォルダが作成されますので、フォルダごと新サーバにアップロードを行います。

書き換え準備

アップロードしたディレクトリにブラウザからアクセスします。
http://new-domain/Search-Replace-DB-master/
すると下のような画面が表示されます。

WS000002

 

replace:旧ドメインを入力 例)http://old-web.domain

with:新ドメインを入力 例)http://new-web.domain

database:wp-config.phpに設定した情報が入力されているので確認します。

tables:基本的には「all tables」を選んでもらって大丈夫ですが、独自に作成したテーブルがあったり等、変換するテーブルを選びたい場合は「select tables」を選択して、対象のテーブルを選択します。

<h2>書き換え実行</h2>

設定項目の入力が終わったら、まずはテストとして「dry run」を押します。

すると実際のデータベースが検索され、どのテーブルでどれだけアップデートされるかを確認できます。

問題が無ければ、「live run」を押すと、下の確認画面が表示され、OKを押すと書き換えが実行されます。

WS000003

<h2>Search-Replace-DBの削除</h2>

これでデータベースの書き換えは実行完了しましたが、このスクリプトを残したままにしておくと、アクセスするだけで誰でも書き換えを行う事ができてしまうので、必ずファイルを削除する必要があります。

一番下のdeleteの「delete me」ボタンをクリックして、OKを押してファイルを削除してください。

「Could not fully delete Search/Replace. You will have to delete it manually」

等のメッセージが表示された場合は先ほどアップロードしたディレクトリ毎削除してしまってください。

 - WordPress