1. はじめに
個人で使っているVPSをAmazon Lightsailに移行しています。
今回はWordPressで作成しているWebサイトの引っ越しをします。
移行先のサーバーのhttpdとMySQLの基本的な設定は済んでいる状態です。
引っ越し用のプラグインは使用せず、コンテンツファイルをコピー、DBのデータをリストアする手法を使います。
移行元、移行先共にVPS1台構成でcentos7、Apache HTTP Server、MariaDBの環境です。
2. 移行元での作業
- DBのデータをダンプします。
# mysqldump -u root -p --single-transaction DB名 > /tmp/wordpress.sql
- コンテンツを固めます。
# tar cvzf /tmp/wordpress.tar.gz /var/www/html/対象のディレクトリ/
- dumpファイル、コンテンツ、httpdのコンフィグを移行先へコピーします。
# scp -r -P ポート番号 /tmp/wordpress.sql ユーザー名@移行先のIPアドレス:/tmp/
# scp -r -P ポート番号 /tmp/wordpress.tar.gz ユーザー名@移行先のIPアドレス:/tmp/
# scp -r -P ポート番号 該当のバーチャルホストのコンフィグファイル名 ユーザー名@移行先のIPアドレス:/tmp/
3. 移行先での作業
- WordPress用のDBユーザーを作成します。
MariaDB [(none)]> grant all on WordPressのDB名.* to 'WordPressのユーザー名'@'localhost' identified by 'パスワード';
- WordPress用のDBを作成します。
MariaDB [(none)]> create database WordPressのDB名;
- dumpファイルからリストアします。
# mysql -uroot -p -D WordPressのDB名 < /tmp/wordpress.sql;
- コンテンツファイルを解凍して配置します。
# tar xvzf /tmp/wordpress.tar.gz
# cp -a コンテンツのディレクトリ名のフルパス /var/www/html/
- httpdコンフィグファイルを配置します。
# cp -a /tmp/コンフィグファイル名 /etc/httpd/conf.d/vhosts/
- 必要に応じてコンフィグ修正
# vi /etc/httpd/conf/httpd.conf
「Include conf.d/vhosts/*.conf」の1行を追加します。
- httpdを再起動します。
# systemctl restart httpd
4. DNSレコードの変更
移行対象のバーチャルホストを移行先に向けます。
私はお名前.comでドメインを取得しているので、「お名前.com Navi」のWebコンソール上から設定変更をしました。
反映が早くなるので事前に該当レコードのTTLを短くしておくと良いと思います。
5. 結果
TTLが3600だったので、次の日にWebサイトを確認しました。
コンテンツが問題なく表示されることを確認しました。
また、移行先のアクセスログを確認して、移行先にアクセスが向いていることを確認しました。
WordPressの管理画面にログイン出来ることを確認しました。
特段問題は発生していないため移行は成功したと判断します!