MENU

Amazon LightsailにWordPressブログを引っ越ししてみた(4-データインポート編)

  • URLをコピーしました!

こんにちは、みーまです。

前回の記事では、Amazon Lightsail上でBitnamiのWordPressパッケージをインストールしました。

あわせて読みたい
Amazon LightsailにWordPressブログを引っ越ししてみた(3-WordPressインストール編) 前回の記事では、Amazon Lightsailでサーバーの構築を行いました。 https://miima17.com/wordpress-on-amazon-lightsail-2/ 今回は引き続きAmazon Lightsailの作業と、...

今回はインストールしたWordPressにエックスサーバーから取得したデータをインポートしていきましょう。

紹介する手順はnginxで動作させる手順ですので、WordPressインストール済みイメージを使う多くのドキュメントとは違う点だけご注意ください。

Amazon Lightsailとは?

Amazon Lightsailのシンプルアイコン
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サーバー設定を確認しましょう!

あわせて読みたい
Amazon LightsailにWordPressブログを引っ越ししてみた(5-HTTPS化編) 前回の記事では、エックスサーバーのWordPressデータを取り込みしました。 https://miima17.com/wordpress-on-amazon-lightsail-4/ しかしこのままではHTTPでしか接続で...
目次