Amazon Linux (EC2)  1

本ハンズオンは3部構成となっています。
[Amazon Linux (EC2) 1](https://qiita.com/leomaro7/items/efd059559ce4551b4324)
[Amazon Linux (RDB) 2](https://qiita.com/leomaro7/items/5978ed2e709aa19c8ee0)
[Amazon Linux (WordPress) 3](https://qiita.com/leomaro7/items/987d35d6e4cd9a0b10e9)


AWS EC2 のセキュリティグループでインバウンド80番ポートがを空けておいてください。
詳細は [Amazon EC2 セキュリティグループ](https://qiita.com/leomaro7/items/42967c080814dfc82139) をご覧ください。


---
###1.Apacheなどをインストールする###

yum で色々アップデートしておきましょう。（Windows アップデートみたいなものです）
`yum update -y`
![スクリーンショット 2018-10-28 18.00.34.png](https://qiita-image-store.s3.amazonaws.com/0/280929/f23a0b56-9eca-3348-0e32-c26e3676278f.png)

whois コマンドと、データベース接続時に必要なmysql クライアントを入れておきます。
`yum install -y jwhois mysql`
![スクリーンショット 2018-10-28 18.02.08.png](https://qiita-image-store.s3.amazonaws.com/0/280929/e6c2a104-dc50-782c-9db7-69082f27b24b.png)

Amazon Linux の yum では「PHP はApache のモジュール（部品）」という扱いなので、PHP をインストールしようとするとyum が気を利かせてApacheも入れてくれます。
ちなみにこれは、Amazon Linuxの場合で、Amazon Linux2の場合は上手く行きませんでした。
`yum install -y php72 php72-mbstring php72-mysqlnd`
![スクリーンショット 2018-10-28 18.06.04.png](https://qiita-image-store.s3.amazonaws.com/0/280929/65ad4423-a694-31a5-4064-d6fa0e237cf9.png)
ちなみにバージョンを確認してみると、↓
![スクリーンショット 2018-10-28 18.07.22.png](https://qiita-image-store.s3.amazonaws.com/0/280929/ddf157fc-e893-a774-7ba5-fc3c973d5a2a.png)

次に、Apacheが自動起動してくるようにしておきましょう。
`chkconfig --add httpd`
`chkconfig httpd on`
![スクリーンショット 2018-10-28 18.10.41.png](https://qiita-image-store.s3.amazonaws.com/0/280929/cb53710b-86c6-74e4-449d-81c9c38a21bd.png)
自動起動になっているか確認してみましょう。3:onになっていればOK。
`chkconfig --list httpd`
![スクリーンショット 2018-10-28 18.11.37.png](https://qiita-image-store.s3.amazonaws.com/0/280929/ac687a2a-c7a1-63a3-3763-abfa27f13fff.png)


###2.WEBブラウザで表示してみよう###

「http://自分のドメイン/」を開いてみましょう。

あれ、表示されない。

リブートしてみよう。
`reboot`
![スクリーンショット 2018-10-28 18.29.44.png](https://qiita-image-store.s3.amazonaws.com/0/280929/358912a4-6937-1679-94f5-1e9035064e0b.png)

表示された！
![スクリーンショット 2018-10-28 18.28.12.png](https://qiita-image-store.s3.amazonaws.com/0/280929/2026abaa-960e-2950-1286-e14a5076be7f.png)


###3.バーチャルホストを作ってみよう##

**1.バーチャルホストとは？**
1 台のサーバ上で2 つ以上のウェブサイトを扱う運用方法のことです。

サーバ1 台にウェブサイト1 つだけであればバーチャルホストにする必要はあまりないのですが、バーチャルホストの作り方を覚えておけば後で「サブドメインで別のサイトを作ってみよう」と思ったときに役立つはずです。

**2.設定**
Apache の大本となる設定ファイルは「/etc/httpd/conf/httpd.conf」です。
350 行以上あるのでtail コマンドを使って最後の5 行だけ確認してみましょう。
`tail -5 /etc/httpd/conf/httpd.conf`
![スクリーンショット 2018-10-28 18.33.42.png](https://qiita-image-store.s3.amazonaws.com/0/280929/f6bdd9f9-e588-c50f-31fc-cf09715c0e61.png)
IncludeOptional conf.d/*.conf 
とあるため大本の設定ファイルの中で、
さらに「conf.d」というディレクトリ内の「*.conf」というファイルをインクルード（取り込み）していることが分かります。
でもいきなり「conf.d/*.conf」と書かれてもどこの「conf.d/*.conf」を指しているのかよく分かりませんよね。

「conf.d」より上のディレクトリはどこで指定しているのか、grep で探してみましょう。
`grep "^ServerRoot" /etc/httpd/conf/httpd.conf`
![スクリーンショット 2018-10-28 18.36.07.png](https://qiita-image-store.s3.amazonaws.com/0/280929/5d60bbdd-0ebd-837e-9874-a7d92900ed3b.png)
ServerRoot "/etc/httpd"
ServerRootではベースとなるディレクトリを指定しています。
これで「conf.d/*.conf」が実際は「/etc/httpd/conf.d/*.conf」であることが分かりました。

では自分のドメインのサイト用にバーチャルホストを「/etc/httpd/conf.d」の下で作成してみましょう。
vi コマンドで新しい設定ファイルを作ります。
`vi /etc/httpd/conf.d/start-aws-virtualhost.conf`
![スクリーンショット 2018-10-28 18.50.51.png](https://qiita-image-store.s3.amazonaws.com/0/280929/b0b2cc7f-31b9-5ce2-f665-064cd60ff26e.png)

↓のファイルを書き込みます。

```ruby:
<VirtualHost *:80>
DocumentRoot "/var/www/start-aws-documentroot"
ServerName www.自分のドメイン
ErrorLog "logs/start-aws-error.log"
CustomLog "logs/start-aws-access.log" combined
<Directory "/var/www/start-aws-documentroot">
AllowOverride All
</Directory>
</VirtualHost>
```

catコマンドで中身を確認しましょう。
`cat /etc/httpd/conf.d/start-aws-virtualhost.conf`

**3.構文チェック**

apachectlコマンドで、構文チェックをします。
`apachectl configtest`
![スクリーンショット 2018-10-28 18.57.04.png](https://qiita-image-store.s3.amazonaws.com/0/280929/ddd187a2-d57a-841b-83e3-042aeb0d4532.png)

ディレクトリが存在しない？
ということで、↓4.へ。

###4.ドキュメントルートを作成###

ドキュメントルートとは？
「サイトにアクセスしたらここに置いたファイルが表示されるよ」というディレクトリのことです。

mkdir コマンドでディレクトリを作成します。
`mkdir /var/www/start-aws-documentroot`
![スクリーンショット 2018-10-28 18.59.28.png](https://qiita-image-store.s3.amazonaws.com/0/280929/0c9e15eb-8179-3d05-8c1d-f3d5c2c7945b.png)

lsコマンドでも作成されたか確認してみましょう。
`ls -l /var/www/`

改めて、apachectlコマンドで構文チェックをしましょう。
`apachectl configtest`
![スクリーンショット 2018-10-28 19.01.17.png](https://qiita-image-store.s3.amazonaws.com/0/280929/696bf078-c5d3-243e-e8a6-a99d4435b27b.png)

###5.index.htmlをおく###

ドキュメントルートを用意しましたが、何かしらコンテンツを置いておかないと「404 Not Found」になってしまいアクセスできません。
vi コマンドでドキュメントルートの下にindex.html のファイルを作成します。中身は適当に書いて保存してください。
`vi /var/www/start-aws-documentroot/index.html`
![スクリーンショット 2018-10-28 19.07.17.png](https://qiita-image-store.s3.amazonaws.com/0/280929/5c53d92b-5eff-d583-a271-f36be6328978.png)

バーチャルホストの設定を有効にするため、apachectlコマンドでApache を再起動しておきましょう。
`apachectl restart`
![スクリーンショット 2018-10-28 19.08.41.png](https://qiita-image-store.s3.amazonaws.com/0/280929/68c4782f-3346-6de4-34ba-9dd7996c366b.png)

###6.curlコマンドで確認する###

curl：「ターミナルにおけるブラウザ」のようなコマンドです。
`curl "http://自分のドメイン"`
![スクリーンショット 2018-10-28 19.22.48.png](https://qiita-image-store.s3.amazonaws.com/0/280929/acccf60f-56e8-89a0-81f2-8bbe8dde1f06.png)