この記事では、WordPressのサーバをXserverからAmazon Lightsailに移行する手順と最初に設定するべきことについてまとめています。
現在、このブログはAmazon Lightsailで動作しているWordPress上で作成しています。
元々はXserver上のWordPressで作成していましたが、サーバの運用費が安くなるので、サーバをXserverからLightsailに移行しました。
下記では、移行したときに行った設定等について紹介していきます。
投稿データやテーマ設定のエクスポートは事前に行っておきましょう。データの移行についてはこの記事では特に触れません。
LightsailにWordpressをインストール
まず、LightsailにWordPressをインストールします。
AWSの公式にチュートリアルが公開されているので、そちらを参考にするのが確実です。
公式チュートリアルでは静的IPアドレスの設定やDNSゾーンの設定まで画像付きで説明されています。基本的には全ての設定を行いましょう。
上記のチュートリアルでも言及されていますが、DNSの設定はドメインの管理先で異なります。
下記では、Xserverでドメインの取得・管理をしている人に向けたネームサーバの指定方法を紹介します。
Xserverでのネームサーバの設定
Xserverでのネームサーバの設定は非常に簡単です。
Xserverの公式ページからログインして、ドメインの設定からLightsailのネームサーバを指定します。以上です。
ネームサーバの確認方法は、上記の公式チュートリアルを参考にしてください。
Xserverではドメインの永久無料キャンペーンなどを頻繁に行っているので、Xserverでドメインを取得されている人は多いと思います。
Xserverではサーバのレンタルを停止してもドメインの管理は無料(たぶん…)でやってくれるので、特にAWSに移管する必要はありません。
WordPressの設定
WordPressをインストールしてダッシュボードにログイン出来たら基本的な設定を行っていきましょう。
- 記事のインポート
- テーマの設定
- プラグインのインストール
- HTTPS化
- セキュリティの設定
- …
下記では、設定が少しめんどくさいものや、Lightsailだからこそ設定するべきものについて紹介していきます。
bitnamiのログインシールの削除
Lightsailではbitnamiというライブラリを利用してWordPressのインストールを行っています。
デフォルトのbitnamiは、WordPressのダッシュボードへのログイン画面へのリンクをWordPressのトップページに作成してしまいます。
ダッシュボードへのログイン画面に誰でもアクセスできるのはセキュリティ的によろしくないので、ログイン画面へのリンクを無効化します。
Lightsailのインスタンスにssh接続して下記のコマンドを実行してください。インスタンスへの接続方法はこちらのAWS公式サイトを参考にしてください。
sudo /opt/bitnami/apps/wordpress/bnconfig --disable_banner 1
WordPressのアドレスを変更する
WordPressのアドレス(URL)がデフォルトではPublic IPになっているので、ドメイン名に変更しておきます。
まず、Lightsailのインスタンスにsshで接続します。そして、wp-config.phpを編集します。
# 104,105行目を編集する
# "<your domain>"は自分のドメインを指定します。
$ vim /opt/bitnami/apps/wordpress/htdocs/wp-config.php
...
104: define('WP_SITEURL','https://<your domain>');
105: define('WP_HOME','https://<your domain>');
...
HTTPS化
デフォルトではHTTPS通信に対応していないので、対応しましょう。これも公式にチュートリアルが公開されています。
チュートリアルではLet’s EncryptからSSL認証書を取得して、Really Simple SSLプラグインを利用してHTTPS化を行っています。
それで問題ない場合はチュートリアル通りに進めていきましょう。
自分はチュートリアル通りに進めました!90日毎に証明書をアップデートするのがめんどくさいので、いつか自動化したいなと思っています。
一点チュートリアルに問題があるので、解決策を紹介しておきます。
手順の途中にapt-add-repository
コマンドでリポジトリを追加しますが、インストール直後は必要なパッケージがインストールされていないのでコマンドを実行できません。
下記でgpg-agent
パッケージをインストールして、apt-add-repository
コマンドを実行できるようにしましょう。
sudo apt-get install gpg-agent -y
※証明書の自動アップデートに関する記事を書きました。
Lightsailからメール送信を可能にする
Lightsailではメールサーバの設定を行わなければメールの送信ができません。
メールの送信は、お問い合わせフォームのほかに、パスワードの再設定などにも利用するので設定しておきましょう。
こちらも公式にチュートリアルが公開されています。
チュートリアルでは、Amazon Simple Email Service (Amazon SES)とWP Mail SMTPプラグインを利用してメール設定を行っています。
Amaozon SESは有料サービスではありますが、無料利用枠があります。
一般的なブログサイトならば無料で利用できるくらいには無料枠があるので、利用料金についてはそこまで気にする必要はないと思います(SESの料金について)。
AWSは公式が画像付きでチュートリアルを多数公開しているので非常にわかりやすくて助かりますね!
ContactForm7でお問い合わせフォームを作成している場合、コンタクトフォームの編集画面のメールタブで、送信先にSESで指定したメールアドレスを指定してください。自分もContactForm7を利用していますが、ここで少し手間取りました、、、
デフォルトユーザの削除
Lightsailではデフォルトでuser
というユーザが作成されています。
デフォルトのままではセキュリティ的によろしくないので、userは削除してしまいましょう。
下記の手順でuserの削除を行います。
- userでWordPressのダッシュボードにアクセスして、左タブから「ユーザー」へ移動
- 管理者権限を持つ新しいユーザを作成
- 一度ログアウトして、作成したユーザでダッシュボードにログインできることを確認
- userを削除
*.phpファイルへのアクセス制限
不正投稿や不正アクセス防止のために、各設定ファイル(*.php)へのアクセス制限を行います。
# 末尾に追加する
$ vim /home/bitnami/apps/wordpress/conf/htaccess.conf
...
<Directory "/opt/bitnami/apps/wordpress/htdocs/"> <Files xmlrpc.php> Order allow,deny Deny from all </Files> <Files wp-config.php> Order allow,deny Deny from all </Files> <Files readme.html> Order allow,deny Deny from all </Files> <Files wp-cron.php> Order allow,deny Deny from all </Files>
</Directory>
# apacheの再起動
$ sudo /opt/bitnami/ctlscript.sh restart apache
ads.txtの配置
Google AdSenceを利用している場合、Lightsailのインスタンスにads.txtを配置して上げましょう。
ads.txtの配置は必須ではないですが推奨されているようなので、配置した方が良いと思います。
ads.txtはGoogle AdSenseからダウンロードしてきましょう。取得したads.txtは下記コマンドで配置してあげれば大丈夫です。
# ローカルPCからLightsailのインスタンスにscpするためにはキーが必要です
# キーはAmazon Lightsailにログインして取得してください。
# ダウンロードしたキーをわかりやすいようにリネーム
$ mv key.pem id_rsa.lightsail
# 権限変更
$ chmod 600 id_rsa.lightsail
# .sshディレクトリへ移動
$ mv id_rsa.lightsail ~/.ssh
# ads.txtをscpで送る
$ scp -i .ssh/id_rsa.lightsail ads.txt bitnami@<your ip>:/opt/bitnami/apps/wordpress/htdocs
まとめ
この記事では、WordPressのサーバをXserverからAmazon Lightsailに移行する手順と、最初に行う設定についてまとめました。
HTTPS化やメールサーバの設定など、すこしめんどくさい部分がありますが、ランニングコストはXserverよりも安くなるはずです。(金額を含めたXserverとLightsailの比較は別記事にまとめようかなと思います)
また、設定が複雑な部分はAWSが公式に画像付きでチュートリアルを公開しているので、非常に助かりますね。
公式チュートリアルは文章が多くて読みにくいかもしれませんが、公式チュートリアルに従って設定した方が確実なので、頑張りましょう!