DEV Community

kaede
kaede

Posted on • Updated on

AWS 基礎 Part 7 -- EC2 で Apache を動かす

why

EC2 を外部から確認するために、最もメジャーな手段だから。


Apache とは?

指定のフォルダを外部アクセス可能なサーバーにするツール

https://www.winserver.ne.jp/column/about_apache/

CGI を使った処理が早いらしい。

https://www.infraexpert.com/study/tcpip16.5.html

CGI とは、サーバーサイド言語が動くことと解釈した。
つまり、ngnix よりサーバー再度アプリを動かすのに向いているらしい。


Apache (httpd) をインストール

EC2 の A サーバーで動かす。

https://zenn.dev/sway/articles/aws_publish_apache

sway さんの記事を参考に進める。

sudo yum install httpd -y
Enter fullscreen mode Exit fullscreen mode

Apache ではなく httpd を入れているように見える。

https://goworkship.com/magazine/apache-aruaru/

だが Linux でのパッケージ名が httpd なだけなので大丈夫。

https://uxmilk.jp/9899

また、-y オプションは「~kb 使うけど良いですか?」のようなインストール時の質問に全て y と答えてくれるものだった。

Installed:
  httpd.x86_64 0:2.4.54-1.amzn2

Complete!
Enter fullscreen mode Exit fullscreen mode

無事に Apache がインストールできた。


Apache の起動

sudo systemctl start httpd
Enter fullscreen mode Exit fullscreen mode

systemclt start で httpd (Apache) を起動する。
これをするとローカルホストで動き出すらしい。


Apache で起動したサーバーへの curl

curl http://localhost | head

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
        <head>
                <title>Test Page for the Apache HTTP Server</title>
                <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
                <style type="text/css">
                        /*<![CDATA[*/
                        body {
                                background-color: #fff;
Enter fullscreen mode Exit fullscreen mode

curl で localhost を叩いてみる。
すると Apache のテストページが返ってきた。

これで、Apache の起動が完了した。
localhost 指定は localhost:80 と同じ。
デフォルトが 80 ポートなので。

systemctl {restart,stop} で再起動 or 停止ができる。


Apache の表示 HTML の変更

https://youtu.be/Y-Mc2OenReA?t=2168

設定を見るとサーバーが使う HTML が書いてある。

vi /etc/httpd/conf/httpd.conf
Enter fullscreen mode Exit fullscreen mode

/ect の httpd モジュールの
conf/ の httpd.conf をひらく。

<Directory "/var/www/html">
Enter fullscreen mode Exit fullscreen mode

するとサーバーの欄にこのディレクトリが指定されている。

ll /var/www/html/
total 0
Enter fullscreen mode Exit fullscreen mode

対象ディレクトリには何も入っていない。
先ほどの Apache Test Page は何も入っていない場合に表示されるページだと解釈する。

<!DOCTYPE html>
<html>
<head>
  <title>KLEIN PRIVATE A</title>
</head>
<body>
<h1>KLEIN PRIVATE A</h1>

</body>
</html>
Enter fullscreen mode Exit fullscreen mode

ここに index.html で上記の内容の html を作る
ここは index じゃなくても大丈夫らしい


A サーバーで再度 curl して変更が反映されているのを確認

現状のサーバー内部で再度 localhost に curl してみる。

curl -v localhost | head 

> GET / HTTP/1.1                                                                         
> Host: localhost                                                                        
> User-Agent: curl/7.79.1
> Accept: */*

<!DOCTYPE html>
<html>
<head>
  <title>KLEIN PRIVATE A</title>
</head>
<body>
<h1>KLEIN PRIVATE A</h1>

</body>
</html>
Enter fullscreen mode Exit fullscreen mode

このように、変更後の HTML が返ってきた。
これで外部からアクセスしたときに
A サーバーにアクセスしていることがわかる。


まとめ

EC2 で Apache を動かすためにはこれらが必要。

  1. httpd をインストール
  2. httpd を起動
  3. curl で localhost(:80) を叩く

Apache の表示 HTML を変えるためには下記に HTML ファイルをおく。

/var/www/html/
Enter fullscreen mode Exit fullscreen mode

以上。

Top comments (0)