Amazon LightsailでLAMP環境を整えてWebページを公開する
はじめに
本日出版される本をまとめて表示するサイトをラズパイサーバーで公開するで自作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キータブから東京リージョンの秘密鍵をダウンロードします。
ダウンロードした秘密鍵(.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ゾーンの作成をクリック
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
Author And Source
この問題について(Amazon LightsailでLAMP環境を整えてWebページを公開する), 我々は、より多くの情報をここで見つけました https://qiita.com/mono_taro/items/19d9d8a88cb538668eb3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .