【LightsailでのWordPressサーバ設定】ブログをAmazon Lightsailへ引っ越しました

スポンサーリンク

ブログのテコ入れのため引っ越すことにしました

ちょっと放置気味のこのブログ。このままだと自然消滅しかねないのでテコ入れというか気分転換でサーバをAmazon Lightsailへ引っ越すことにしました。というか引っ越しました。
その時のメモというか忘備録を書いていきます。

引越し前のサーバはColorfulBoxでした。悪くはなかったのですが、アダルトOKのサーバプランでレンタルしていたので年額費用が結構な額だったのです。
更新日は2ヶ月後ということもあり引っ越しするにいたりました。

Amazon Lightsailに引っ越した理由

Amazon Lightsailに引っ越した理由は単に「AWS使ってみたいよなぁ……」というだけです。憧れだけです。
でもAWSって結構高いんじゃ……と調べてみたら、Amazon LightsailというVPS(仮想プライベートサーバ)のサービスが月額3.5$からで使えるとのこと。
AWSの従量制ではなく月額固定なのはいいですね。(一応転送量がオーバーすれば追加課金にはなりますが)

Amazon Lightsail(月額3.5ドル〜の仮想プライベートサーバー:VPS)| AWS
Amazon Lightsail は、コンテナなどのクラウドリソースを予測可能な低価格で簡単に管理できる、使いやすい仮想プライベートサーバー (VPS) です。
Amazon Lightsailとは?EC2との違いとメリット・デメリットを調べてみた
Amazon Lightsailは、WebサイトやWebサービスを提供するのに必要な機能を組み合わせてパッケージにして提供しているVPSです。AWSに慣れないユーザーでもすばやく簡単に使うことができ、コストの削減にもつながります。しかし、Amazon EC2など通常のAWSのサービスとは異なる部分が多いので、利用すると...

3.5$/月のプランだと1ヶ月無料枠があるので詳細を確認して早速申し込みました。

ブログの引っ越し工程

AWSアカウントの作成

まずはAWSアカウントの作成から。
支持に従っていけばよいだけですが、デフォルトの支払い方法(クレジットカード)がうまく登録されてなかったためかエラーメールが何通か来ていました。氏名住所が英語か日本語かという違いではじかれていたようです。修正。

アカウントが作成できたのでLightsailのページに行こうとすると何故か403エラーではじかれてしまいました。いきなり詰まりポイント。
確認してみたら、アカウント作成の手続きが最後まで完了していなかった(サポートの選択)のが原因でした。どこかで見逃していたらしいです。

Lightsailでインスタンスの作成

早速Lightsailのインスタンスの作成です。
PleskやcPanelもあるのでそっちで作ってそこからWordPressを立ち上げた方がお得なのでは…思っていましたが、Plesk・cPanelライセンスは別で必要で、また3.5$/月のプランでは対応していないとのこと。
なので素直にWordPressのプラットホームで作りました。
下記記事を参考にしました。

Wordpress ウェブサイトを起動する
Amazon Lightsail で WordPress ウェブサイトを起動する。
【Wordpress引っ越し】レンタルサーバからAmazon Lightsail | 南の島のSE エンジニアブログ
【Wordpress引っ越し】レンタルサーバからAmazon Lightsail | 南の島のSE エンジニアブログ

前のレンタルサーバのWordPressのバックアップ

ブログのWordPressのデータを取得します。下記記事を参考にしました。

【Wordpress引っ越し】レンタルサーバからAmazon Lightsail | 南の島のSE エンジニアブログ
【Wordpress引っ越し】レンタルサーバからAmazon Lightsail | 南の島のSE エンジニアブログ

phpMyAdminでDBのデータをエクスポート。
ファイルはWordPressごともってくるのではなくwp-contentディレクトリの中だけで良いとのことでした。

Lightsailのインスタンスのパスワードを確認

Wordpress ウェブサイトを起動する
Amazon Lightsail で WordPress ウェブサイトを起動する。

WordPressの初期パスワードの確認のため、AWSのLightsailのページにあるブラウザターミナルを立ち上げます。

cat /home/bitnami/bitnami_application_password

で確認。

静的IPアドレスを設定

LightsailのページのNetworkingタブからCreate static IPで作成。
IPはメモしておきます。

phpMyAdminにアクセスできるようにする

DBのデータをインポートしたいのでphpMyAdminを使えるようにします。

TeraTermでSSHログインしてポートフォワーディングすると良いという記事があったので試してみましたがうまくいかず。(秘密鍵のダウンロード場所が載っているので記事は読んだほうが良いです)
AWSの記事にPuttyでポートフォワーディング行う方法が載っていたのでそちらも試しましたがPermission Deniedで×でした。参考2

なので下記記事を参考にしてphpMyAdminのアクセス権を変更する方法を取りました。

AWS Lightsailでphpmyadminにアクセスする - Qiita
Lightsailで、LAMP環境を立ち上げたのですが、phpmyadminへのアクセスを試みたものの、 セキュリティ設定がされているようで、試行錯誤したので、メモを残しておきます。 先人たちの教えに基づき、あれこれ試したものの、肝...
LightsailのLAMP環境でphpMyAdminにアクセスする | まるごしブログ
LightSailのデフォルトの設定では、phpMyAdminへの直接のアクセスが禁止の設定になっていますので、セキュアに許可する設定を紹介します。 phpMyAdminが初期設定の場合 へアクセスすると、以下のエラーメッセージが出てログイン画面が表示されません。 For security reasons, this ...
SFTP を使用して Amazon Lightsail の Linux または UNIX インスタンスに接続する | Lightsail ドキュメント
/opt/bitnami/apache/conf/bitnami/phpmyadmin.conf

のファイルの

Require local

のところを下記に変更。

<IfVersion >= 2.3>
  Require ip XX.XX.XX.XX (自分のPCのIPアドレス)
  Require local
</IfVersion>

念のためにapacheを再起動。

sudo /opt/bitnami/ctlscript.sh restart

これでphpMyAdminにアクセスできました。

http://生成した静的IPアドレス/phpmyadmin/

phpMyAdminでWordPressのテーブルにバックアップしたsqlファイルをインポートして完了です。

バックアップしたwp-contentディレクトリをSFTPでアップロード

次はファイルの方の移行です。
下記記事を参考にしました。

【Wordpress引っ越し】レンタルサーバからAmazon Lightsail | 南の島のSE エンジニアブログ
【Wordpress引っ越し】レンタルサーバからAmazon Lightsail | 南の島のSE エンジニアブログ

前準備としてアップロード先の親ディレクトリの所有者を変更しておきます。

cd /bitnami/
sudo chown -R bitnami wordpress

最初からあるwp-contentディレクトリの名前を変更してバックアップしておきます。

mv wordpress/wp-content wordpress/wp-content_bak

次にFTPソフトでバックアップしてあったwp-contentを/bitnami/wordpress/以下にアップロード。(自分はWinSCPを使いました)

SFTP を使用して Amazon Lightsail の Linux または UNIX インスタンスに接続する | Lightsail ドキュメント

アップロードが終わったら所有者を元に戻しておきます。

sudo chown -R  daemon:daemon wordpress

WordPressのファイルとディレクトリのパーミッションを変更します。(ファイルは664に、ディレクトリは775にする)

cd wordpress/
sudo find wp-content -type f -exec chmod 664 {} \;
sudo find wp-content -type d -exec chmod 775 {} \;
WordPressのパーミッション設定 決定版 - Qiita
はじめに WordPressの構築時、SFTPでファイル転送ができないことや、プラグインがインストールできないなどのエラーに遭遇したため、wordPressのパーミッション設定についてまとめます。 前提条件 wordpr...

ここでWordPressにログインして移行できているかどうか確認。
画像が投稿できないのでおかしいなと思い、WordPressのメニューの[ツール]→[サイトヘルス]→[情報]タブ→[ファイルシステムパーミッション]を見てパーミッションを確認しました。

今回はuploadディレクトリが書き込み不可になっているのが確認できました。
設定がおかしいのかなと見てみると、[設定]→[メディア]のフォルダ設定が前のサーバのままになっていたので修正。無事画像が投稿できるようになりました。

ドメインの移管

次は今使っているドメインをAWSのRoute53に移管します。
下記記事を参考にしました。

ドメイン登録を お名前.com から Route 53 に移管した - michimani.net
国内ではメジャーなドメイン登録サービス (レジストラ) である お名前.com。ここで独自ドメインを取得している方は多いと思います。今回は、お名前.com で取得したドメインを AWS の DNS サービスである Amazon Route 53 に移管した時の話です。
Route 53 を使用中のドメインの DNS サービスにする - Amazon Route 53
現在トラフィックが発生している (ユーザーがドメイン名を使用してウェブサイトを閲覧したり、ウェブアプリケーションにアクセスしている場合などで) ドメインの DNS サービスを Amazon Route 53 に移行する場合は、このセクションの手順を実行します。
ドメイン登録の Amazon Route 53 への移管 - Amazon Route 53
ドメイン登録を Amazon Route 53 に移管するには、このトピックの手順に慎重に従ってください。
Wordpress ウェブサイトを起動する
Amazon Lightsail で WordPress ウェブサイトを起動する。
チュートリアル: Amazon Lightsail で WordPress インスタンスを起動して設定する | Lightsail ドキュメント

まずRoute53でホストゾーンを作成。
ホストゾーンを作成したら前のサーバのDNSレコードと同じようにAレコードとMXレコードを作成しました。(先程固定した静的IPに)
このときAAAAレコードを作成してなかったのでSSL化の時に引っかかりました。今作るべし。

次に移管前のドメインの手続きです。
ColorfulBoxでドメインを取ったので操作もそこで。

  • WHOIS情報を見てメールアドレスが正しいか確認
  • whois情報公開代行を無効にする
  • レジストラロックを無効にする
  • 認証コードを受け取る

上記をやっておきます。

Route53のトップにドメインの移管というリンクがあるのでそこからドメインの移管を申請します。
移管料はここで支払います。.netは11$でした
移管料を支払うとドメインの有効期限が1年延長されるので実質年額を先に払っているのと同じです。

申請が終わると移管手続きのメールが何通か飛んでくるので、メールで指定されたアドレスに飛んで移管を承認します。(2~3回くらい)

これでドメインの移管は終わりです。
待っていればドメインがLightsailのサーバのIPを指すようになります。

メールの設定(SMTP)

メールの送信はLightsailのこのインスタンスには含まれていないので、WordPressの「WP Mail SMTP」というプラグインを使います。

指定したSMTPサーバーを使ってメールを送信できるようにするWP Mail SMTPプラグイン
基本的にレンタルサーバー上から、プログラムによってメールを送ると、迷惑メールになる可能性が高くなります。
WP Mail SMTPを設定してLightsailのwordpressからメール送信できるようにする | 分析ノート

自分はYahooのメールで設定しました。

ブログのSSL化

ブログをSSLにします。
下記記事を参考にしました。

【Wordpress引っ越し】レンタルサーバからAmazon Lightsail | 南の島のSE エンジニアブログ
【Wordpress引っ越し】レンタルサーバからAmazon Lightsail | 南の島のSE エンジニアブログ
dig ドメイン名

で、Aレコードが新しいIPに切り替わっていたら作業開始。

sudo /opt/bitnami/bncert-tool

のコマンドを叩けばOKです。
オプションは「wwwを含めるか」はN、「HTTPをHTTPSにリダイレクトするか」はY、その後の確認は全てYを選択しました。

自分がやったときはここで「AレコードとAAAAレコードが不正だよ」というエラーが出ていたのでDNSのレコードの設定を追加したり見直したりしました。

最後HTTPSでアクセスしてブログが見えればOKです。

Google Adsenseのads.txtをルートディレクトリに置く

次の日GoogleAdsenseで「ads.txtをドメインのルートディレクトリに置いてくれ」との警告が出ていたのでその作業を。

/opt/bitnami/wordpress/

配下にダウンロードしたads.txtを置いて、所有者を変更して完了です。

(追記)WordPressのテーマのCocoonでPV数や設定のバックアップでエラーが出るので修正する

【AWS Lightsail】CocoonのPVがカウントされない時の対処法
はじめにCocoonのPVがカウントされていない!?Amazon Lightsail で WordPress環境を構築してブログを立ち上げています安いし、簡単だし、早いしでとても満足しているのですがある日ずっとPVが0でアクセス数がカウント

WordPressのテーマのCocoonではPV数が取得できなかったり設定のバックアップでエラーが出てしまうので下記2ファイルの

/bitnami/wordpress/wp-content/themes/cocoon-master/lib/analytics/access.php
/bitnami/wordpress/wp-content/themes/cocoon-master/lib/page-backup/backup-download.php

下記の部分を

require_once('../../../../../wp-load.php');

下記のように修正。

$parse_uri = explode( 'wp-content', $_SERVER['SCRIPT_FILENAME'] )[0];
require_once( $parse_uri . 'wp-load.php' );

元のコードをコメントアウトで取っておくかファイルをバックアップするかの対応はしておいてください。

Amazon Lightsailに引っ越して

引っ越し作業はいくつか詰まりポイントがあったので半日かかりました。無事にできてよかったです。

今回はWordPressだけのインスタンスなので以前のサーバより機能がだいぶ削られてますが、今までそう使っていなかったので問題なし。
アプリ等でサーバを使うこともそのうちあると思うので、その時はLightsailのインスタンスを追加で立てて使おうと思います。

とりあえず1ヶ月お試しで使ってみて、そのまた1ヶ月使ってみて課金金額など問題なければ継続ですかね。

(ちょっと系統が違うとはいえ)AWSを使っているということで気分も一新したので、ブログもたくさん記事を書いていきたいと思います。

コメント

  1. lihgtsail上のwordpressにads.txtを置きたかったのですが、どこに置けば良いのかを調べていても私の環境にはないパスを指定していたため困っておりました。
    こちらのブログのみが私の知りたい情報を載せておりました。
    ありがとうございます。

    • コメントありがとうございます。お役に立ててよかったです。
      LightsailのWordPressインスタンスの環境が何ヶ月か前に変わったみたいですね。
      私も詰まった箇所なのでメモとして残した次第です。