【AWS EC2】LAMP環境+phpMyAdminの構築してみた
はじめに
AWSのEC2(仮想サーバ)の作成から、LAMP環境+phpMyAdminを構築する手順を、簡単にご紹介させていただきます。すべて無料枠を使用して構築しています。
①AWS仮想マシンの作成
はじめにEC2(仮想サーバ)の作成を行います。
AWSマネジメントコンソールからEC2サービスにアクセスします。
リージョンを「アジアパシフィック (東京)ap-northeast-1」に変更し、「インスタンスを起動」をクリック後下記1~6を設定します。
- 1. AMI の選択
- 2. インスタンスタイプの選択
- 3. インスタンスの設定
- 4. ストレージの追加
- 5. タグの追加
- 6.セキュリティグループの設定
- 7.確認
Amazonマシンイメージ(AMI)は無料枠の中から「Amazon Linux 2 AMI (HVM), SSD Volume Type」を使用します。
無料枠の「t2.micro」を使用します。
変更はせず、デフォルトのまま
変更はせず、デフォルトのまま
変更はせず、デフォルトのまま
「ルールの追加」タイプ「HTTP」を選択します。その他の設定は今回はデフォルトのままとします。
「起動」⇒「新しいキーペアの作成」を選択し、「キーペア名」を任意に設定します。「キーペアのダウンロード」を押下し、保存します。※再ダウンロードができないため注意してください。
キーペアのダウンロードが完了したら、「インスタンスの作成」を押下します。「インスタンスの表示」から作成した可能マシンが確認できます。
②仮想マシンへのアクセス
ターミナルから作成したAWSの仮想マシンにアクセスします。初回は接続の確認が表示されるので、Yesを選択します。※AWSコンソールから「接続」を押下すると下記のアクセス方法が表示されます。
- キーファイルへのpath:前手順でダウンロードしたキーファイル
- パブリック DNS名:AWSコンソール上に表示されるパブリック DNS (IPv4)名
ssh -i {キーファイルへのpath} ec2-user@{パブリック DNS名}
アクセスできたら、タイムゾーンと言語を変更します。
EC2のタイムゾーンのデフォルトがUTCになっているのでJSTに変更します。
# sudo cp /usr/share/zoneinfo/Japan /etc/localtime
dateコマンドで確認します。JSTになっていればOKです。
# date Mon Jul 6 17:25:55 JST 2020
次に言語を変更します。
# sudo localectl set-locale LANG=ja_JP.utf8
localectl statusコマンドで確認します。
# localectl status System Locale: LANG=ja_JP.utf8
ロケールを反映させるには下記コマンドを実施、もしくはAWSの仮想環境に再ログインします。
# source /etc/locale.conf
③Apacheの導入
インストール済パッケージのバージョンをすべて最新のものに更新します。
# sudo yum -y update
httpdのインストール
# sudo yum -y install httpd
インストールできたので、Apacheを起動します。
# sudo systemctl start httpd.service
http://{インスタンスのIPv4 パブリック IP}/にアクセスして「Test Page」の表示があればApacheの導入は完了しています。
④PHPの導入
PHPをインストールします。
# sudo yum -y install php
インストール後Apacheを再起動します。
# sudo systemctl restart httpd.service
動作確認のためにphpファイルを作成します。
# sudo vim /var/www/html/index.php
ファイルの中身
http://{インスタンスのIPv4 パブリック IP}/にアクセスするとphpの設定内容が表示されます。
⑤Mariadbの導入
Mariadbのインストール
# sudo yum install -y mariadb-server
デフォルト設定では文字コードが latin1 になっているので、日本語を扱えるようにutf8へ変更します。[mariadb]のセクションにcharacter-set-server=utf8を追加します。
# sudo vim /etc/my.cnf.d/server.cnf (省略) [mariadb] character-set-server=utf8 (省略)
Mariadbの有効化/起動を行います。
# sudo sudo systemctl enable mariadb # sudo sudo systemctl start mariadb.service
Mariadbへの接続に必要なプログラムをインストールします。
# sudo yum install -y php-mysqlnd
初期設定を行います。
# sudo mysql_secure_installation
はじめにrootパスワードの入力が求められますが、初期設定ではパスワード未設定なので、そのままEnterを押します。その後、下記を順に設定していきます。
- 1.root アカウントのパスワードをセット
- 2.ローカルホストの外からアクセス可能な root アカウントの削除
- 3.匿名ユーザアカウントの削除
- 4.匿名ユーザが既定でアクセス可能な test データベースの削除
最後に権限テーブルの再読み込みの確認が表示されるので、Yを選択して変更を反映させます。
⑥phpMyAdminの導入
phpMyAdminは標準リポジトリで使用できないパッケージなので、Extra Packages for Enterprise Linux (EPEL) リポジトリへのアクセスを有効する必要があります。下記コマンドでRHEL 7 用の EPEL リリースパッケージをインストールし、EPEL リポジトリを有効にします。
# sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
phpMyAdminをインストールします。
# sudo yum install -y phpmyadmin
インストール直後は、localhostだけがphpMyAdminへのアクセス可能な状態なので、IP制限を解除します。
# sudo vim /etc/httpd/conf.d/phpMyAdmin.conf
- Require ip 127.0.0.1に続いてRequire ip {許可するIPアドレス}を追加
- Allow from 127.0.0.1に続いてAllow from {許可するIPアドレス}を追加
すべてのIPからのアクセスを許可する場合は下記のように設定します。
- Require ip 127.0.0.1に続いてRequire all grantedを追加
- Allow from 127.0.0.1に続いてAllow from Allを追加
設定後Apacheを再起動します。
# sudo systemctl restart httpd.service
http://{インスタンスのIPv4 パブリック IP}/phpmyadminにアクセスするとphpMyAdminのログイン画面が確認できます。
さいごに
ここまでAWSのEC2(仮想サーバ)の作成から、LAMP環境+phpMyAdminを構築する手順をご紹介させて頂きました。すべて無料枠の範囲内でできるので、実際に手を動かしてAWSに慣れていくことをおすすめします。EC2の他にも無料枠で実施できるAWSサービスが複数あるので試してみてください。