[WordPress] ドメイン名変更手順

環境

項目 説明
OS Amazon Linux AMI 2017.03.1.20170812 x86_64 HVM GP2
Load Balancer ALB
DB RDS, MySQL
Apache 2.4
WordPress 4.5.3
MySQL 5.5
PHP 5.6

事前準備

DumpとコンテンツのBackupを取得しておく。
※私の場合は、WordPressプラグインのBackWPupを用いてAWS S3へ毎日Backupを行っている。

ドメインを取得後、管理画面からサイトアドレスを変更する。

添付画像のURL部分を変更する。

※管理画面から変更せずドメインを更新した場合、MySQLへ接続後Update文を流します。
[sql]
mysql> select * from wp_options where option_name = ‘siteurl’,’home’ \G;
*************************** 1. row ***************************
option_id: 1
option_name: siteurl
option_value: http://before.com
autoload: yes
*************************** 1. row ***************************
option_id: 2
option_name: home
option_value: http://before.com
autoload: yes

mysql> update wp_options set option_value = ‘http://after.com’ where option_id = 1;
mysql> select * from wp_options where option_id = 1 \G;
*************************** 1. row ***************************
option_id: 1
option_name: siteurl
option_value: http://after.com
autoload: yes
1 row in set (0.00 sec)
[/sql]

旧ドメインの一括置換

DBに格納されたドメインの一括置換には以下のPHPスクリプトを用いる。

Database Search and Replace Script in PHP

サーバのドキュメントルート(デフォルト:/var/www/html/)に解凍したディレクトリを配置し、http://after.com/{解凍ディレクトリ名}へアクセスする。replacehttp://を含めずbefore.comを入力し、withhttp://を含めずafter.comを入力する。Dry-runでプレビューし、live runで実行する。

※置換後はdelete meボタンから該当ファイルを削除する。

トラブルシューティング

サイトが旧ドメインへリダイレクトされる

以下の定数値を、新しいドメインのDBへ変更する。
[php]
define(‘WP_HOME’,’https://halclan.net’);
define(‘WP_SITEURL’,’https://halclan.net’);
[/php]
※一時的な措置であり、データベースが更新され次第削除する。

参考

WordPress の引越し