【AWS EC2】LAMP環境+phpMyAdminの構築してみた

はじめに

AWSのEC2(仮想サーバ)の作成から、LAMP環境+phpMyAdminを構築する手順を、簡単にご紹介させていただきます。すべて無料枠を使用して構築しています。

①AWS仮想マシンの作成

はじめにEC2(仮想サーバ)の作成を行います。
AWSマネジメントコンソールからEC2サービスにアクセスします。

リージョンを「アジアパシフィック (東京)ap-northeast-1」に変更し、「インスタンスを起動」をクリック後下記1~6を設定します。

  • 1. AMI の選択
  • Amazonマシンイメージ(AMI)は無料枠の中から「Amazon Linux 2 AMI (HVM), SSD Volume Type」を使用します。

  • 2. インスタンスタイプの選択
  • 無料枠の「t2.micro」を使用します。

  • 3. インスタンスの設定
  • 変更はせず、デフォルトのまま

  • 4. ストレージの追加
  • 変更はせず、デフォルトのまま

  • 5. タグの追加
  • 変更はせず、デフォルトのまま

  • 6.セキュリティグループの設定
  • 「ルールの追加」タイプ「HTTP」を選択します。その他の設定は今回はデフォルトのままとします。

  • 7.確認
  • 「起動」⇒「新しいキーペアの作成」を選択し、「キーペア名」を任意に設定します。「キーペアのダウンロード」を押下し、保存します。※再ダウンロードができないため注意してください。

    キーペアのダウンロードが完了したら、「インスタンスの作成」を押下します。「インスタンスの表示」から作成した可能マシンが確認できます。

②仮想マシンへのアクセス

ターミナルから作成した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サービスが複数あるので試してみてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

前の記事

Amazon Cognitoの簡単な使い方

次の記事

【AWS】 LambdaとRedisについて