お名前.com VPSへ移転 その13: WordPress引越しの実施2

段ボール

前回はWordPressで構築するサイトの移転作業として、WordPress関係のファイルやデータベースを移動させました。

今回は移転したファイルやデータベースで正しくサイトが表示されるかどうか、動作確認を行います。

全体の手順

WordPressの移転の手順を再掲します。1~6は前回行ったので、今回は7と8を行うことになります。

  1. 移転元: WordPress関係のファイルのバックアップ
    • WordPressの設定ファイル
    • プラグイン
    • テーマ
    • アップロードしたファイル
  2. 移転元: WordPressのデータベース のバックアップ
  3. 移転元: Webサーバの設定ファイルのバックアップ
  4. 移転先: WordPress関係のファイルの復元
  5. 移転先: WordPressのデータベースのデータベースの復元
  6. 移転先: Webサーバの設定ファイルの復元
  7. 移転先: 動作確認
  8. DNSの書き換え

諸条件

説明を簡単にするために移転元と移転先のネットワークの状態が次のようであったとします。

まずIPアドレスですが、

  • 移転元: N.N.N.N
  • 移転先: M.M.M.M

とします。

また移転するWordPressのサイトのホスト名をexample.comとし、まだ移転元のIPアドレス(N.N.N.N)が割り当てられているものとします。

したがって、移転先にアクセスするためには、URLとしては「http://M.M.M.M/」とIPアドレスを直打ちする必要があります。

移転先: 動作確認

移転元のサイトを維持したまま、移転先で動作確認するのがなかなか大変です。

というのも、WordPressのファイルやデータベースをすべて移転先に持っていたとしても、移転先のIPアドレスを使ってアクセスすると(http://M.M.M.M/にアクセスすると)、もともとのwordpress.example.comに転送されてしまい、移転先の動作確認にならないからです。

データベースの書き換え

そこでまず行わなければならいのはWordPressのデータベースの書き換えです。データベースを書き換えてもともとのURLになっているところを、移転先のURLに変更します。

この書き換え方法については次のサイトを参考にしました。

移転先のphpmyadminにアクセスして、移転元から持ってきたWordPressのデータベースを選択します。そして「SQL」のタブを選択した後に次の内容を入力して「実行」を選択します。

UPDATE wp_options SET option_value = replace(option_value, 'http://example.com/', 'http://M.M.M.M/') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'http://example.com/','http://M.M.M.M/');
UPDATE wp_posts SET post_content = replace(post_content, 'http://example.com/', 'http://M.M.M.M/');
UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://example.com/','http://M.M.M.M/');

データベースの書き換え

この処理によってWordPressのデータベースの中で「http://example.com/」になっている部分がすべて「http://M.M.M.M/」に書き換わります。

これでhttp://M.M.M.M/でアクセスしても移転元に転送されることはなくなります。

Webサーバの設定の変更

次の行うのはWebサーバの設定の変更です。

移転元のWebサーバの設定ファイルをそのままコピーした段階では、Webサーバはhttp://.example.com/というURLでのアクセスのみでWrodPressに対する接続を受け付けるようになっていると思います。これを変更して、http://example.com/ではなく、http://M.M.M.M/でWordPressに対する接続を受け付けられるようにします。

WebサーバがNginxの場合は、設定ファイルは/etc/nginx/sites-availableにあります。この中で「server_name example.com」という行を持つファイルを探して、その行を「server_name M.M.M.M」に書き換えます。

server_nameという行は、「クライアントがその名前でアクセスしてきたらこの設定を使うよ」という意味です。一時的にexample.comではなくM.M.M.MとIPアドレスを直打ちしてきたらアクセスを許可するようにしておきます。

SSLを使っている場合は、SSLあり用とSSLなし用で二つの設定ファイルがあるかもしれませんので、忘れずに書き換えるようにします。

書き換えたらNginxに設定ファイルを再読み込みさせて設定ファイルを有効にします。

service nginx reload

動作確認

ここまでできたらPCやスマホからhttp://M.M.M.M/にアクセスしてみましょう。うまくいけばこれまで通りの(移転前と同じ)サイトが見えるはずです。

もしうまく見えない場合は、いったん移転先のWordPressの管理画面にアクセスしてみましょう。そして、ちゃんとサイトが見えるようになるまでプラグインを一つ一つ無効にしてみましょう。

私の場合、最初はちゃんと表示されなかったのですが、WP-AppBoxというプラグインを無効にしたところ表示されました。WP-AppBoxが必要とするプログラムがインストールされていなかったのが原因でした。

変更の復元

動作確認で問題がなかったら、変更したWebサーバの設定と、WordPressデータベースを元に戻します。

Webサーバの設定はserver_nameをexample.comに戻すだけですが、WordPressのデータベースについては再びphpmyadminを使って書き換えます。今度はhttp://M.M.M.M/になっているところをhttp://example.com/に書き換えるので入力するコマンドは次のようになります。

UPDATE wp_options SET option_value = replace(option_value, 'http://M.M.M.M/', 'http://example.com/') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET guid = replace(guid, 'http://M.M.M.M/','http://example.com/');
UPDATE wp_posts SET post_content = replace(post_content, 'http://M.M.M.M/', 'http://example.com/'); 
UPDATE wp_postmeta SET meta_value = replace(meta_value,'http://M.M.M.M/','http://example.com/');

Nginxの設定も書き換えたらNginxにそれらのファイルを再度込みこませて設定ファイルを有効にします。

これで移転先の準備は本当に完了です。

DNSの書き換え

最後にDNSの設定を変更します。これまではexample.com=N.N.N.N(移転前のIPアドレス)だったのを、example.com=M.M.M.M(移転後のIPアドレス)となるようにDNSの設定を変更します。

この方法は自分が契約している業者(たいていはホスト名を取得した業者)によって異なります。下記はお名前.comの場合です。

まずは、お名前.comにログインして「DNS関連機能の設定」を選びます。そして設定を変更したいドメイン名(今回の例ではexample.com)を選んで「次へ進む」を選択します。

 

DNSサーバの設定1

ドメインを選択したら次の画面で「DNSレコード設定を利用する」を選択します。

DNS設定2

ここで「TYPE」が「A」になっている行のVALUEが移転元のIPアドレスになっていると思いますので、これを移転先のIPアドレスに変更して「確認画面へ進む」を選択します。

DNS設定3

確認して問題がなければ変更を反映させて終了です。

DNSの設定は即時に反映されるわけではありません。変更がインターネット全体にいきわたるまで時間がかかります(1時間から数日)。

しばらくたってhttp://example.com/にアクセスして、移転先が表示されれば移転完了です。

まとめ

今回は移転したWordPressサイトの動作確認とDNSの設定を変更により移転を完了したことを紹介しました。

WordPressの移転に当たっては、動作確認のときにいったんデータベースを書き換える必要がるのがちょっとした山だと思います。ちゃんと動いたことを確認してWordPress移転は完了です。

次回はこれまでお世話になってきたServersMan@VPSを解約します。