zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

Wordpress_テストドメインから本番ドメインへの移行メモ

※webサーバはnginxを使用しています。
※ここではDNSの登録または変更作業は除きます。

テストドメイン)beforewp.com
 ↓
本番ドメイン)afterwp.com

1.nginx/conf.dに変更先ドメイン設定を追加
cd /etc/nginx/conf.d/
cp -p beforewp.com.conf afterwp.conf
vi afterwp.conf
# -----
server_name afterwp.com;
root /srv/www/afterwp.com;
# -----
nginx -t
service nginx restart


2.バックアップをとる
# テーマ等ファイルコンテンツのバックアップ
cd /srv/www/
cp -rp wordpress afterwp.com

# mysqlのdumpを取っておく
mysql -A -u root -p
mysql> show databases;

                                          • +
Database
                                          • +
information_schema
mysql
performance_schema
wordpress-db
                                          • +

mkdir /home/hogehoge/work_`date +%Y%m%d`
cd /home/hogehoge/work_`date +%Y%m%d`
set `date +%Y%m%d%-H%M%S`
mysqldump --default-character-set=binary --hex-blob -c -u root -p wordpress-db > wordpress-db.$1.sql

3.移行先のwp-config.phpファイルを編集
# 「WP_HOME」、「WP_SITEURL」を新ドメインにする
※DB上のwp_optionsテーブルを修正していないため、このままでは
 管理画面を表示した際旧ドメインに流れてしまう。
 そのためここで一時的に定義を行っておく。DB上の作業が終わったら削除すること。
 ※下記置換ツールを利用すれば不要な作業ではあるが、念のため実施。

vi /srv/www/afterwp.com/wp-config.php

        • -

define('WP_SITEURL', 'http://afterwp.com');
define('WP_HOME', 'http://afterwp.com');

        • -

管理画面およびユーザサイトにアクセスできることを確認
http://afterwp.com
※この時点では画像等のパーマリンクは旧サイトを向いていることに注意
http://afterwp.com/wp-admin


4.置換ツールを使用してDB内のドメインを置換
※参考サイト:http://inspire-tech.jp/2013/10/wordpress-search-replace-db/

cd /usr/local/src
wget https://www.interconnectit.com/wp-content/uploads/2011/05/searchreplacedb21.zip
unzip searchreplacedb21.zip
mv searchreplacedb2.php /srv/www/afterwp.com/

# 実行
http://afterwp.com/searchreplacedb2.php
→テーブル選択に至るまで、デフォルトのままで進める。

What to replace?
で以下の文字列置換を指定

Search for (case sensitive string): beforewp.com
Replace with: afterwp.com
[submit]で実行。

固定ページおよび投稿の文字列が置換されていることを確認。
※動作確認後、このphpは削除しておくこと。
http://beforewp.com/wp-content/uploads/2015/07/s002-300x199.jpg

http://afterwp.com/wp-content/uploads/2015/07/s002-300x199.jpg
ちゃんと置換されている!

作業的には上記で問題ない模様。


5.作業設定削除
cd /srv/www/afterwp.com
vi wp-config.php
# 「WP_HOME」、「WP_SITEURL」を削除

rm searchreplacedb2.php

以上。