1. TOPTOP
  2. Webサービス
  3. Apache
  4. CentOS7でApache2.4の初期設定。サーバー情報の制御、HTTPセッションの保存、404 not foundの設定など

CentOS7でApache2.4の初期設定。サーバー情報の制御、HTTPセッションの保存、404 not foundの設定など

|

centos7

apache2_4

CentOS7で、WebサーバーソフトウェアであるApacheをダウンロードすると、バージョンが2.2から2.4へ、アップデートされていることに気がつきました。

Apache(httpd)のインストールと設定

CentOS6.xのときは、ドットインストールのレッスン動画のとおりにやっていましたが、今回は自分で必要そうなところを調べながら設定しました。

1.Apache(httpd)のインストール

$ sudo -s
# yum install httpd
# systemctl start httpd
# systemctl enable httpd

作業用ユーザーからroot権限に昇格後、Apacheをインストール。インストールしただけでは、inactive (dead)ですが、startするとactive (running)になります。あと、enableでサービスの自動起動もお忘れなく。

2.設定ファイルのコピー

#cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
#vi /etc/httpd/conf/httpd.conf

設定ファイルを編集する前に、あらかじめファイルをコピーしておきましょう。

3.サーバー情報の制御

ServerTokens ProductOnly
ServerSignature Off

server応答ヘッダとサーバーが生成するドキュメントのフッターと、HTTPレスポンスヘッダに出力されるサーバ情報の制御を行います。

4.HTTPセッションの保存

KeepAlive On 
KeepAliveTimeout 5

クライアントからの接続要求時にHTTPセッションを即座に閉じずに、一定時間保つための設定です。前のリクエストから次のリクエストまでのタイムアウト時間を5秒に設定します。

5.ディレクトリ名のみでアクセスできるファイルを追記

# index.phpを追記
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

ディレクトリ名のみでアクセスできるファイルに、index.phpを追記。

6.404 not foundの設定

<IfModule alias_module>
# 追記
<If "-n %{PATH_INFO}">
        Redirect 404 /
</If>
</IfModule alias_module>

存在しないディレクトリにアクセスがあった場合、404 not foundを返す。

7.ディレクトリに対して使用可能な機能を限定する

<Directory "/var/www/html">
#デフォルトで記述されているIndexesを削除する
Options FollowSymLinks

8.設定ファイルの更新

#systemctl start httpd

最後に設定ファイルの更新をおわすれなく。

注意点

上記、3と4の記述はデフォルトの状態では、記述されていなかったので、ファイルの最終行に追記しています。

apache2_4_2

ただ、3の設定については、わざわざ記述する必要があるかどうか分かりません。上の画像は、設定ファイルの編集前に存在しないファイルにアクセスしたときの画像です。すでにこの時点で、サーバー情報は表示されていません。

まとめ

もちろん、以上の作業はあくまで個人的な考えに基づいています。人によっては、別のところをチューニングする必要があるかと思います。

その場合、Qiitaの記事が参考になりそうです。〔参考サイト〕としてリンクを貼っておきますので、よろしければどうぞ。

〔参考サイト〕