apacheをインストール

EC2インスタンスにログインし、
今からapacheを使ってサイトを表示するための流れを書いていきます。


サーバーの準備

apachをインストールする前に、linuxをアップデートしておきます。

$ sudo yum -y update

※「-y」オプションをつけると、確認メッセージを表示せずにインストールすることができる。


apache(Webサーバ)をインストール

$ sudo yum -y install httpd


apacheを起動

$ sudo service httpd start

ここで、

Starting httpd:                                            [  OK  ]
という風に表示されない場合は接続が完了していません。
今回はEC2のコンソールのインスタンス→セキュリティグループ(launch-wizard-2)→インバウンド→編集と進むと
「ソース」の横の通常「0.0.0.0/0」となっているところの表示が変になっていたので、
「0.0.0.0/0」に直すと接続ができました!

次に以下のコマンドで、linux仮想マシンが起動するたびにapacheも同時に起動するようにしてやります。

sudo chkconfig httpd on

これで準備完了。ブラウザにパブリックIPアドレスを入力して、apacheのページが表示されたら完了です。


Webサーバー上のHTMLを表示する

簡単なwebページを表示してみます。
まず以下のコマンドでファイルがあるか調べます。

$ ls /var/www/html

何も表示されなければ、まだHTMLファイルは存在していないということになる。

viを使って簡単なhtmlファイルを作成してみる。

$ sudo vi /var/www/html/index.html
テキストエディタが起動したら「i」で文字入力モードにし、htmlタグで囲った文字列を入力する。

再度パブリックIPアドレスにアクセスすると、viに打ち込んだHTMLが表示されるはず。
→webサーバー上のHTMLファイルを表示したことになる。


ローカルで作ったファイルを転送する

linuxサーバーではなくローカルで下記のSCPコマンドを使用します。
SCPコマンドとはコンピューター間で安全にファイルのやり取りをするためのコマンド。
まずは先ほどサーバー上に作ったhtmlファイルをローカルに転送する。

$ scp -i ~/.ssh/(キーペアファイル名).pem ec2-user@(パブリックIP):/var/www/html/index.html ~/Desktop
このコマンドで、さっき作ったhtmlファイルがデスクトップに転送されます。

このhtmlファイルを編集してlinuxサーバー上に戻すのですが、
今回は「テキストエディット」で開きます。
「環境設定」から「HTMLファイルをフォーマットしたテキストではなくHTMLコードとして表示」に設定し
先ほどのファイルを開くと、タグがそのまま表示されます。
ここで編集し、保存。

$ scp -i ~/.ssh/(キーペアファイル名).pem ~/Desktop/index.html ec2-user@(パブリックIP):~
先ほどとは逆で、デスクトップの送信したいファイルの後に、送信先を記載する。

EC2にログインし、$ ls -a -l コマンドで見てみると、送信されたファイルがあるはず。

ただこれだとホームディレクトリに保存されてしまっているため、
先ほどhtmlファイルを保存した場所に移動してやりたい。

$ sudo mv ~/index.html /var/www/html

これは移動するのめんどくさい。。。
ので、権限を変更して直接希望の場所にファイルを転送できるようにする。


任意のディレクトリにファイル転送できるよう権限を変更

結構コマンドが多いけど、最初の1回だけやればOKみたいです。

$ sudo groupadd www

$ sudo usermod -a -G www ec2-user

そして一旦ログアウト→再度ログイン

これで「www」というグループの権限が有効になった状態。
自分のユーザー名が上記で作成したグループに登録されているか確認するため下記コマンドを実行。

$ groups

続いて、htmlを保存するディレクトリのグループ所有権を変更。

$ sudo chown -R root:www /var/www

次に、var/www以下のファイルに書き込み許可を与える。

$ sudo chmod 2775 /var/www

将来のサブディレクトリにグループIDを設定しておく。

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

/var/www以下のファイル許可を繰り返し、グループのファイル許可を追加する。

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

下記コマンドで転送。今回は最後に転送先ディレクトリを指定。

scp -i ~/.ssh/(キーペアファイル名).pem ~/Desktop/index.html ec2-user@(パブリックIP):/var/www/html

vi上で変更が反映されていればOK!