Amazon LinuxにApacheをセットアップする方法

久々にAmazon EC2のAmazon LinuxにApacheをセットアップしようとしたところ、手順を忘れかけていたのでメモを残しておく。ちょっと、ハマったりもしたのでその辺りも含めて。

Apacheのセットアップ手順

Amazon LinuxへApacheをセットアップするには、以下の手順に沿って行う。

  1. yumコマンドでApacheをインストールする
  2. chkconfigコマンドで起動設定を行う
  3. DocumentRootを確認する
  4. Apacheを起動する

以下より、手順ごとに解説する。

yumコマンドでApacheをインストールする

以下のコマンドを実行し、Apacheをインストールする。

sudo yum install httpd

chkconfigコマンドで起動設定を行う

以下のコマンドを実行し、Apacheの起動設定を行う。

sudo chkconfig httpd on

chkconfigコマンドで起動設定が成功しているかを確認することができる。

chkconfig

以下のように表示されれば設定が成功している。

httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

DocumentRootを確認する

DocumentRootを確認するにはhttpd.confファイルを見る必要がある。以下のコマンドを実行することでhttpd.confファイルの中身を見ることができる。

sudo cat /etc/httpd/conf/httpd.conf | less

以下のように入力すると設定項目に飛ぶことができる。

/DocumentRoot

デフォルトでは、DocumentRootは/var/www/htmlに設定されていることが分かる。

cathttpdconf

Apacheを起動する

以下のコマンドを実行し、Apacheを起動する。

sudo /etc/init.d/httpd start

EC2インスタンスに割り当てたElastic IPをブラウザから叩くことでApacheが起動したことを確認することができる。

Apache_Test_Page

設定が上手くいかないとき

ここまでの手順を踏んでも上手く設定できていない場合は、見落としがちな以下の3点を確認する。

  1. インスタンスのSecurity Groupは適切に設定しているか
  2. インスタンスにElastic IPを適切に割り当てているか
  3. 管理者権限(sudo)でApacheをインストールしているか

インスタンスのSecurity Groupは適切に設定しているか

Amazon EC2で作成したインスタンスにはSecurity Groupを割り当てる必要があるが、Security Groupには、80番ポート(HTTP)からのアクセスを許可する設定をしなければ、ブラウザから確認するときにアクセスが拒否されてしまう。

インスタンスにElastic IPを適切に割り当てているか

Amazon EC2で作成したインスタンスにはElastic IPを割り当てる必要があるが、Elastic IPを割り当てていない場合、時間が経つとPublic IPが自動的に変更されてしまう。

管理者権限(sudo)でApacheをインストールしているか

Apacheのインストールは管理者権限で行う必要がある為、Apacheをインストールする際はsudoコマンドを用いるか、もしくはsudo su -コマンドで管理者権限を得た後にApacheをインストールしなければならない。

参考
Amazon EC2のMicro InstancesにApacheをセットアップする