7
5

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 5 years have passed since last update.

AWS EC2のチュートリアルに従い、LAMPウェブサーバーを構築してみた

Posted at

はじめに

LAMPウェブサーバーとは、
L(Linuxシステム)・・・サーバーでよく利用されるOS
A(Apache)・・・・・・WEBサーバー
M(Mysql)・・・・・・データベースソフト
P(PHP)・・・・・・・・プログラミング言語
の頭文字から名付けられています。
WEBサービスを提供する際のプラットホームとして、現在よく利用されています。
今回はAWSの無料枠範囲内で、LAMPウェブサーバーを構築する手順を紹介します。

仕様環境

OS:Windows10
ソフト:Teraterm

前提条件

1.AWSのEC2にてインスタンスの作成済み

今回のインスタンス構成内容
OS:Amazon Linux
プラン:t2.micro
セキュリティグループ:
HTTP80、HTTPS443、SSH22を開放
キーペア作成

2.teratermで接続出来ていること

AmazonLinuxにLAMPウェブサーバーをインストールして起動する手順

1.ルート権限を得る

sudo -s
先にやっておくと毎回入力しなくて済みます

2.ソフトウェアパッケージを最新にする

yum update -y

3.Apache,Mysql,PHPのインストール

yum install -y httpd24 php56 mysql55-server php56-mysqlnd

4.Apacheの起動

service httpd start

5.Apache自動起動設定

chkconfig httpd on

6.WEBサーバーのテスト

ブラウザでインスタンスのパブリックDNSアドレス(またはパブリックIPアドレス)を入力しテストページを表示します。
testpage1.jpg

グループの作成と、パーミッション設定

・ec2-userがファイルを操作できるようにする
・wwwグループを作成
・wwwグループに/var/wwwディレクトリの所有権を付与し、書き込みを許可
wwwグループの任意のメンバーはウェブサーバーに対してファイルの追加削除変更が可能となる。

1.wwwグループをインスタンスに追加

groupadd www

2.ec2-userをwwwグループに追加

usermod -a -G www ec2-user

3.新しいグループ取得のため、1回ログアウトし、再ログイン

exit

4.wwwグループでメンバーシップの検証

groups

5./var/とそのコンテンツの所有権をwwwグループに変更

chown -R root:www /var/www

6./var/wwwおよびそのサブディレクトリ許可を変更し、グループの書き込みの許可を設定し、将来のサブディレクトリにグループIDを設定する

chmod 2775 /var/www
find /var/www -type d -exec chmod 2775 {} \;

7./var/www およびそのサブディレクトリのファイル許可を繰り返し変更してグループの書き込み許可を追加します。

find /var/www -type f -exec chmod 0664 {} \;

補足:findコマンド・・・type fで通常ファイル指定 dでディレクトリを指定
  -exec [コマンド] ;でコマンドを実行する。{}をつけると検索結果をそこに適応させることができる

ここで主にやってきたのは、ec2-userや将来開発に携わるメンバーも含めて、Apache ドキュメントルートでファイルを追加、削除、編集できるようにすることです。これで、静的なウェブサイトや PHP アプリケーションなどのコンテンツを追加できるようになりました。

LAMPウェブサーバーのテスト

サーバーがインストールおよび実行されており、ファイルの許可が正しく設定されている場合、ec2-user アカウントはインターネットから使用できる /var/www/html ディレクトリにシンプルな PHP ファイルを作成できます。

1.ApacheドキュメントルートでシンプルなPHPファイルを作成する

echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php

2.ウェブブラウザで、作成したファイルの URL を入力します。この URL は、インスタンスのパブリック DNS アドレスにスラッシュとファイル名を追加したものです。

testpagephp2.jpg

3.phpinfo.php ファイルを削除する。セキュリティ上の理由から、インターネットにブロードキャストするべきではないようです。

rm /var/www/html/phpinfo.php

Mysqlサーバーのセキュリティ保護

MySQL サーバーのデフォルトのインストールには、テストおよび開発に役立ついくつかの機能がありますが、実稼働サーバーでは無効にするか削除する必要があるようです。mysql_secure_installation コマンドを使用すると、ルートパスワードを設定し、安全でない機能をインストールから削除する手順が案内されます。MySQL サーバーを使用する予定がない場合でも、この手順を実行しておくのがよいでしょう。

1.Mysqlの起動

service mysqld start

2.mysql_secure_installation を実行する

mysql_secure_installation

プロンプトが表示されたら、root アカウントのパスワードを入力します。

現在の root パスワードを入力します。デフォルトでは、root アカウントにはパスワードが設定されていないので、Enter を押します。
Enter current password for root (enter for none):

「Y」と入力してパスワードを設定し、安全なパスワードを 2 回入力します。安全なパスワード作成の詳細については、http://www.pctools.com/guides/password/ を参照してください。このパスワードは必ず安全な場所に保管します。

Set root password? [Y/n] Y
New password:
Re-enter new password:

「Y」と入力して匿名ユーザーアカウントを削除します。

Remove anonymous users? [Y/n] Y
 ... Success!

「Y」と入力して root ログインを無効にします。

Disallow root login remotely? [Y/n] Y
 ... Success!

「Y」と入力してテストデータベースを削除します。

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

「Y」と入力して権限テーブルを再ロードし、変更を保存します。

Reload privilege tables now? [Y/n] Y
 ... Success!

3.Mysqlの自動起動設定

chkconfig mysqld on

終わりに

以上で構築は終了になります。お疲れ様でした。
より詳しい解説はAWS公式のチュートリアルを参考にしてください。

「チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール」
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/install-LAMP.html

その他参考サイト
findコマンドの詳細
http://www.k4.dion.ne.jp/~mms/unix/linux_com/find.html

7
5
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
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?