2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Amazon LightsailでLAMP環境を整えてWebページを公開する

Last updated at Posted at 2020-05-30

#はじめに
本日出版される本をまとめて表示するサイトをラズパイサーバーで公開するで自作Webページを自宅のラズパイサーバで公開していたのですが、あろうことか、データの更新中に落雷による停電が起きて…データが消えてしまいました…

こういうリスクがあるんだなと思いつつ、この機に勉強も兼ねてVPSでWebページを公開することにしました。

#構築環境
VPSサービス色々ありますが、Amazon Lightsailを利用してみます。これといった理由はありません。
一番安い3.50 USD/月のプランを使用してみます。
スペック
Amazon Linux
512 MB メモリ
1 コアプロセッサ
20 GB SSD ディスク
1 TB 転送

OSは現在使用しているPCがUbuntuなので今回はRedHat系のディストリビューションを使ってみようと思い、Amazon Linuxを使用することにしました。

#構築
###SSH接続
インスタンスを作成したら、インスタンス名の横にあるコンソールアイコンをクリックするとブラウザのSSHコンソールが立ち上がります。そこでタイムゾーンの設定と日本語化を適宜行います。
なお、ブラウザのSSHコンソールだと日本語化しても謎の文字化けが起きるので、ローカルPCのターミナルでSSH接続出来るようようにします。
まず、アカウントページのSSHキータブから東京リージョンの秘密鍵をダウンロードします。
Screenshot from 2020-05-30 20-37-23.png
ダウンロードした秘密鍵(.pem形式)を適当なディレクトリ(ここではkey)を作成し、そこに移動します。

$ cd ~/
$ mkdir key
ダウンロードした秘密鍵を保存してある場所からkeyディレクトリに移動
mv ***.pem key
アクセス権限を変更
chmod 400 ~/key/***.pem

以下のコマンドで接続

sudo ssh -i key/***.pem ユーザー名@パブリックIPまたはDNS

余談ですが、Termuxアプリを使えば同じような手順でAndroidスマホでもSSH接続が出来ます。

###LAMP環境
LAMP環境の構築はチュートリアル: Amazon Linux AMI を使用して LAMP ウェブサーバーをインストールするを参考にしました。

$ sudo yum update 
必要なソフトウェアパッケージをインストール
$sudo yum install  httpd24 php72 mysql57-server php72-mysqlnd
apache起動
$sudo service httpd start
システムがブートするたびにapacheが起動するように設定
$sudo chkconfig httpd on

/var/www/html/内に適当なphpファイル(ここではphpinfo.php)を作り、<?php phpinfo(); ?>を書き込む

LAMP環境が構築できたか試してみる
http://パブリックIPまたはDNS/phpinfo.php
PHPの情報ページが表示されたら、構築完了。

mysqlも設定しちゃいます。

mysqlを起動
$sudo service mysqld start
rootのパスワード初期設定
$sudo mysql_secure_installation

設定したパスワードポリシーによっては複雑なパスワードを作る必要があります。
パスワードポリシーをMEDIUMやSTRONGに設定したのも関わらず、数字のみのパスワードを設定しようとすると
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
というエラーが出ます。
もし、あとからパスワードポリシーを変更したくなったときの方法はこちらが分かりやすいです。「Mysql 5.7* パスワードをPolicyに合わせるとめんどくさい件について

mysqlを管理・編集するなら、やはりphpmyadminは外せないので、phpmyadminも入れます。

依存ファイルをインストール
$sudo yum install php72-mbstring.x86_64 
apache再起動
$sudo service httpd restart
apacheのドキュメントルートに移動
$cd /var/www/html
phpmyadminパッケージをダウンロード
$sudo wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
パッケージを展開
$sudo mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1
ダウンロードしたファイルを削除
$sudo rm phpMyAdmin-latest-all-languages.tar.gz
mysqlを起動
$sudo service mysqld start

http://パブリックIPまたはDNS/phpMyAdminでphpmyadminにアクセスしてみる
phpmyadminのログインページが表示されたら完了。

あとは、適宜apacheなどの設定をしておく。

###DNS
DNSの設定をしておきます。
ホーム画面から「ネットワーキング」タブ→DNSゾーンの作成
登録済みのドメインの入力に追加したいドメインを入力して、DNSゾーンの作成をクリック
Screenshot from 2020-05-30 22-01-54.png
Screenshot from 2020-05-30 22-02-03.png
DNSレコードを押して、レコード作成します。
Aのレコードでサブドメインに@を入れ@.mono-today-book.workとし、解決先(?)に静的IPアドレスを設定し、追加します。
そして、お名前ドットコムのネームサーバーの設定で生成されたネームサーバーを登録。
これでhttp://mono-today-book.work/にアクセスしてapacheのページが表示されたら成功。

あとは、本日出版される本をまとめて表示するサイトをラズパイサーバーで公開するで作ったphpファイルをapacheのルートディレクトリに持ってきて移行完了。

#さいごに
突然ラズパイがお亡くなりになったので、今まで集積してきた書籍データがなくなってしまったのが痛い。
一応、先週バックアップしてたので復元しましたが5日分の書籍データが欠ける結果に…
これを機にもっと頻繁にバックアップをするようにします…

#参考文献
チュートリアル:Amazon Linux AMIを使用してLAMPウェブサーバーをインストールする:https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/install-LAMP.html
Mysql 5.7* パスワードをPolicyに合わせるとめんどくさい件について:https://qiita.com/keisukeYamagishi/items/d897e5c52fe9fd8d9273
今更ですが、Amazon Lightsail試してみました:https://medium.com/anti-pattern-engineering/%E4%BB%8A%E6%9B%B4%E3%81%A7%E3%81%99%E3%81%8C-amazon-lightsail%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F-7b2438d16bae

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?