久々にAmazon EC2のAmazon LinuxにApacheをセットアップしようとしたところ、手順を忘れかけていたのでメモを残しておく。ちょっと、ハマったりもしたのでその辺りも含めて。
Apacheのセットアップ手順
Amazon LinuxへApacheをセットアップするには、以下の手順に沿って行う。
- yumコマンドでApacheをインストールする
- chkconfigコマンドで起動設定を行う
- DocumentRootを確認する
- 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
に設定されていることが分かる。
Apacheを起動する
以下のコマンドを実行し、Apacheを起動する。
sudo /etc/init.d/httpd start
EC2インスタンスに割り当てたElastic IPをブラウザから叩くことでApacheが起動したことを確認することができる。
設定が上手くいかないとき
ここまでの手順を踏んでも上手く設定できていない場合は、見落としがちな以下の3点を確認する。
- インスタンスのSecurity Groupは適切に設定しているか
- インスタンスにElastic IPを適切に割り当てているか
- 管理者権限(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をインストールしなければならない。