■1.インストール
 yum -y install httpd
ただ、Linuxをインストールすると、デオフォルトでWebサーバが起動していることが多いだろう。入れ方にもよるが。(AWSは入っていないので、入れる必要がある)

・サービスを開始する
systemctl start httpd

・サービスの状態確認 (CentOS7)
systemctl status httpd→緑色で、active (running) になっていれば起動している。

・(おまけ)プロセスを、以下で見てみよう。
# ps -auwx | grep httpd
するとapacheユーザでたくさんのプロセスが起動している。これは、Webサーバに複数のアクセスがるので、それに対応するだめである。他のサービスではこれほどでない

・Webサーバが起動しているか、となりのPCから見てみよう。http://WebサーバのIPアドレス

→赤っぽい色のバーがついたApacheのTest Pageが見えれば動作している。

もしかすると、見えないかもしれない。
原因は、SELinuxが有効になっているのと、サーバのFirewallなどの設定などが入っているからだろう。($system-config-firewallで設定を解除すればいいだろう)

Firewallを開けるには、以下。
・httpを許可する
firewall-cmd --add-service=http --zone=public --permanent      
 ※--permanent によって、永続的にHTTPを開ける
・再起動
firewall-cmd --reload  
・確認
iptables -L -n | grep 80

※AWSの場合、インバウンドルールにhttp(80)を追加する。

■2.コンテンツ
コンテンツは/var/www/htmlに入れる

・デフォルトのTest Page
htmlコンテンツのありかは、/var/www/html である。
ただ、デフォルトのTest Pageだけは特別。
以下のconfファイルに設定が記載されている。
/etc/httpd/conf.d/welcome.conf
実際のコンテンツはこれ
/usr/share/httpd/noindex/index.html

■3.設定ファイル  httpd.conf
基本的には何も設定変更をしなくても動作する。なので、触る必要はない。

何点かコメント
・ServerRoot "/etc/httpd"  ←デフォルトのフォルダ。相対パスで記載されるの場合はこちらの配下
・Listen 80  ←接続を待ち受けるポート番号
・DocumentRoot "/var/www/html"  ←コンテンツを配置するフォルダ。なので、たとえば、http://www.example.com/の直下がこのフォルダになる。
・ファイルじゃなくてディレクトリが指定された場合には、以下のディレクティブのDirectoryIndexで指定されたページを開く。列挙することで、複数指定できる→このあとにも記載
 <IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
※mod_dirというモジュールが、ここに書かれたファイルへリダイレクトする。なので、IfModule dir_moduleというディレクティブに記載がある。
https://httpd.apache.org/docs/2.2/ja/mod/mod_dir.html
・Directoryのディレクティブ
 いくつものDirectoryのディレクティブがある。Directoryで指定されたフォルダに関して(サブフォルダを含む)オプションの設定ができる。たとえば、一覧表示をするindexesを指定すると、一覧表示がされる。FollowSymLinksはシンボリックリンクを設定すると、そのフォルダにリンクされる。どちらも、セキュリティ的にあまりいいオプションとはいえない。
<Directory "/var/www/html">
   #  Possible values for the Options directive are "None", "All",
 ・・・
     Options Indexes FollowSymLinks
    
</Directory>
<Directory "/var/www/cgi-bin">
     AllowOverride None
     Options None
     Require all granted
</Directory>

■4.httpsにする場合
設定ファイルは以下
/etc/httpd/conf.d/ssl.conf  

■5.Webサーバのログ
(1)アクセスログ
/var/log/httpd/access_logに保存されている。
ログとしてはこんな感じ。
192.168.1.3 - - [08/Sep/2018:23:36:16 +0900] "GET /  HTTP/1.1" 403 4961 "-" "Mozilla/5.0 (Windows NT 6.3;・・・
先頭がアクセス元のIPアドレス
 
(2)エラーログ
同じフォルダのerror_log
※また、このフォルダはシンボリックリンクで/etc/httpd/logs/access_logからも見ることができる

■6.Basic認証とDigest認証の設定
以下に記載しました。
http://sm.seeeko.com/archives/22724259.html

■7.その他
(1)バージョンの確認
httpd -version
または、
rpm -qa | grep httpd でもいいだろう。

(2)ファイルの一覧表示/etc/httpd/conf/httpd.confの
Options Indexes FollowSymLinks で設定する
上記の場合は該当ディレクトリのファイル一覧が表示される
一覧表示されないようにする方法は、
①Indexesを消す
Options FollowSymLinks
②「-」を付ける
Options -Indexes FollowSymLinks 
※設定変更する場合は、もとの設定は#によるコメントアウトで残しておきましょう。
※基本は/var/www/htmlディレクトリの設定が関係しているはず
※デフォルトでは有効になっていたと思う。

(3)Apacheで日本語表記
文字コードを入れないと文字化けする場合、HTMLファイルの冒頭に、以下を入れましょう。→でも、入れなくても文字化けしないと思いますが・・・
<head>
  <meta charset="UTF-8">
</head>

(4)テストページ
①ファイル
index.htmlなどのファイルがないと、以下のテストページが表示される。
/usr/share/httpd/noindex/index.html
※もちろん変えることもできる。

②非表示にする
/etc/httpd/conf.d/welcome.conf.orgを設定する方法もあるだろうが、単純に名前を変えるか消してしまえばいい。
systemctl restart httpd