こんにちは、みーまです。
前回の記事では、Amazon Lightsail上でBitnamiのWordPressパッケージをインストールしました。
今回はインストールしたWordPressにエックスサーバーから取得したデータをインポートしていきましょう。
紹介する手順はnginxで動作させる手順ですので、WordPressインストール済みイメージを使う多くのドキュメントとは違う点だけご注意ください。
Amazonが提供するAWSの中でも特殊な、金額に応じたスペックが選べる、簡易版のクラウドインフラサービスです。
通常、使用量に応じて金額が変動するAWSのサービスと異なり、Amazon Lightsailは金額ベースのプランが選択可能で、最小で3.5USD/月から利用することができます。
配置サブネットが選択できないなどの制約はありますが、セキュリティグループや固定グローバルIP、DNSやロードバランサー、CDNも利用可能で、通常のAWSサービスに戻りたい場合は、スナップショット(バックアップイメージ)からEC2への復元が可能です。
Amazon Lightsail SSHクライアントでの作業(引き続き)
では、前回と同様にSSHで進めていきましょう。
SSHの接続方法は記載しませんので、各自で事前に接続しておいてください。
固定変数の設定
この後紹介するコマンドで使用される変数を入れておきます。
そのままコピペではなく、カスタマイズする必要があります。
# You using original domain on XSERVER
# エックスサーバーで使用していたドメイン名を入れてください。
DOMAINNAME=hogehoge.com
# Your serverID on XSERVER
# エックスサーバーのログイン後に表示されているサーバーIDを入れてください
XSSERVERID=hogehoge
# UserDirectory
# ここは変更しないでください。
USERDIR=/home/ec2-user
2. WordPressデータのインポート
エックスサーバーからダウンロードしたデータをAmazon Lightsail上へアップロードした後、WordPressに取り込みします。
1 | エックスサーバーでバックアップしたデータ(tar.gzとsqlファイル)をSCPでAmazon Lightsailのec2-userのディレクトリに転送します。
MacOSの人は下記のコマンドを参考に転送してみてください。 |
#! bin/bash
# WP data backup from XSERVER
BKUPTARGZ=`ls -1F | grep -v "/" | grep "tar.gz"`
# DB data backup from XSERVER
BKUPSQL=`ls -1F | grep -v "/" | grep "sql"`
# Elastic IP
EIP=999.999.999.999
scp $BKUPTARGZ ec2-user@$EIP:~
scp $BKUPSQL ec2-user@$EIP:~
2 | バックアップデータを解凍してAmazon Lightsailに上書きします。
下記のコマンドで一気に実行されます。 |
# Export database parameter
cd /opt/bitnami/apps/wordpress/htdocs/
wordpress_db_name=`sudo grep 'DB_NAME' ./wp-config.php | cut -d "'" -f4`
wordpress_db_user=`sudo grep 'DB_USER' ./wp-config.php | cut -d "'" -f4`
wordpress_db_password=`sudo grep 'DB_PASSWORD' ./wp-config.php | cut -d "'" -f4`
wordpress_db_host=`sudo grep 'DB_HOST' ./wp-config.php | cut -d "'" -f4`
# Backup new wp-config
cd /opt/bitnami/apps/wordpress/htdocs/
sudo -E cp wp-config.php $USERDIR/
# WP data backup from XSERVER
cd $USERDIR/
BKUPTARGZ=`ls -1F | grep -v "/" | grep "tar.gz"`
# DB data backup from XSERVER
BKUPSQL=`ls -1F | grep -v "/" | grep "sql"`
# Decompress OLD WP data baclup
tar -zxvf $BKUPTARGZ
# Overwrite OLD WP data to NEW WP data
cd ./home/$XSSERVERID/$DOMAINNAME/public_html/
sudo rsync -a ./ /opt/bitnami/apps/wordpress/htdocs/
# Overwrite wp-config.php
cd /opt/bitnami/apps/wordpress/htdocs/
# mv wp-config.php wp-config-old.php
sudo -E cp -rf $USERDIR/wp-config.php /opt/bitnami/apps/wordpress/htdocs/
# Import DB data from OLD WP DB backup
cd /opt/bitnami/apps/wordpress/htdocs/
mysql --defaults-extra-file=<( printf '[client]\npassword=%s\n' $wordpress_db_password)\
-u $wordpress_db_user -h 127.0.0.1 $wordpress_db_name < $USERDIR/$BKUPSQL
# Change permission
sudo chown -R root:daemon /opt/bitnami/apps/wordpress/htdocs/
sudo chmod -R 775 /opt/bitnami/apps/wordpress/htdocs/
# Remove temp file
sudo -E rm -rf $USERDIR/home/
sudo -E rm -f $USERDIR/*.php
sudo -E rm -f $USERDIR/*.tar.gz
sudo -E rm -f $USERDIR/*.sql
sudo -E rm -f $USERDIR/*.run
Bitnamiのwp-config.phpを待避したあと、エックスサーバーのデータで上書きし、更に待避したwp-config.phpで上書きします。
この為、エックスサーバーの時にwp-config.phpをカスタマイズしていた場合、それは消えていますので各自で直しておきましょう。
この段階で、Amazon Lightsail上のWordPressがエックスサーバー上のデータと同じになっているはずです。
ブラウザで確認したい場合は下記コマンドを実行してからAmazon LightsailのIPアドレスへアクセスしてみましょう。
sudo /opt/bitnami/ctlscript.sh start
この段階でアクセスできるのはhttp://Amazon LightsailのIPアドレスだけです。
今回はここまでです。
次回はいよいよ最後、WordPressをHTTPS化する回です。
次回はSSL(HTTPS)化の手順ですが、私はAmazon LightsailのDNSを利用しておらず、ドメインの引っ越し手順は記載しませんので、公式ドキュメントを参考に移行してみてください。
基本的には今使っているドメインのAレコードにAmazon Lightsailの静的IPを設定するだけでAmazon Lightsail側へアクセスが移動します。ただしGoogleアドセンスなどを導入されている場合はエックスサーバー側で登録したTXTレコードの引っ越しも必要ですので、必ずDNSサーバー設定を確認しましょう!