はじめに
前回、Apacheのインストールが完了したので今回はApacheの設定ファイルであるhttp.confの中身を確認したいと思います。
本記事のゴール
Apacheの設定ファイル(http.conf)のコマンドであるディレクティブについてやる気が出る限り確認する。
環境
- Apaceh 2.4.37
httpd.conf
設定ファイルの場所
Apacheの設定ファイルは、/etc/httpd/conf
配下のhttpd.conf
に記載されています。
34行目:ServerRootディレクティブ
ServerRoot "/etc/httpd"
- Apacheサーバが存在するディレクトリを設定。
- Apacheをインストールした場所に応じて適宜変更する。
45行目:Listenディレクティブ
Listen 80
- Apacheで使用するポート番号を指定する。
- 80番ポートを他で使っていないならデフォルト80のままでよさそう。
59行目:Includeディレクティブ
Include conf.modules.d/*.conf
- サーバ設定ファイルから他の設定ファイルを読み込む。
- /etc/httpd/conf.modules.d内のconfファイルをすべて読み込んでいる。
69,70行目:User,Groupディレクティブ
User apache Group apache
- User :サーバーがリクエストに応答する際に用いるユーザーID
- Group:サーバーがリクエストに応答する際に所属するグループ
89行目:ServerAdminディレクティブ
ServerAdmin root@localhost
- サーバがクライアントに送るエラーメッセージに含める電子メールアドレス
- メール機能が使わないなら特にいじらなくてよさそう。
105行目:Directoryディレクティブ
<Directory /> ・・・ </Directory>
- 指定のファイルシステムのディレクトリとサブディレクトリのみに 適用されるディレクティブを囲む
- 上記だと
ルートディレクトリ(/)
以下のすべてに適用されるディレクティブを内部に記載する。 - なお、Directory ディレクティブは下位のディレクトリに対する設定によって上書きされる。
- なので、全体としては拒否しておいて、あるディレクトリにおいては許可するといった記載になる。
106行目:AllowOverrideディレクティブ
AllowOverride none
- .htaccessで許可されるディレクティブの種類を設定する。
- .htaccessとは
- ディレクトリ毎に設定を変更するためのファイル。
- ファイルを読み込むことでそのディレクトリとそのサブディレクトリすべてにディレクティブを適用できる。
none
が設定されているので、.htaccessは無視される(読み込まれない。)
107行目:Requireディレクティブ
Require all denied
- アクセス制御に関する設定を行う。
all denied
なので、全てのアクセスを拒否している。all granted
が設定されていれば、全てのアクセスが許可される。
★122行目:DocumentRootディレクティブ
DocumentRoot "/var/www/html"
- Webから見えるメインのドキュメントツリーになるディレクトリ
- クライアントからコンテンツリクエスト(httpリクエスト)した場合に、レスポンスとして返すファイルを配置する場所。
- 絶対パスでない場合は、ServerRootからの相対パスとなる。
例えば/var/www/html/HelloWorld.html
といったファイルを配置すれば、クライアント側からはhttp://localhost/HelloWorld.html
でコンテンツを取得することができる。
147行目:Optionsディレクティブ
Options Indexes FollowSymLinks
- 特定のディレクトリに対して使用可能な機能を設定する。
FollowSymLinks
は、サーバがこのディレクトリ内でシンボリックリンクをたどれるようになる。
166行目:IfModuleディレクティブ
<IfModule dir_module> ・・・ </IfModule>
- IFがついてるからわかるように、指定したモジュールが存在する場合に処理されるディレクティブを設定することができる。
★167行目:DirectoryIndexディレクティブ
DirectoryIndex index.html
- クライアントがファイル名を指定せずにサーバにリクエストを送った場合に、返されるデフォルトのファイルを設定する。
- この設定だと、
http://localhost/
でリクエストを送った場合にindex.html
が返される。
174行目:Filesディレクティブ
<Files ".ht*"> ・・・ </Files>
- Directoryディレクティブと似たようなもので、マッチするファイル名に適用されるディレクティブを設定する。
.htから始まる
ファイルが対象になる。
★185行目:ErrorLogディレクティブ
ErrorLog "logs/error_log"
- エラーログを出力する場所を設定する。
logs
は/var/log/httpd
へのシンボリックリンクなので、/var/log/httpd
配下に出力される。
★192行目:LogLevelディレクティブ
LogLevel warn
- 名前の通り、ログレベルを設定する。
★220行目:CustomLogディレクティブ
CustomLog "logs/access_log" combined
- アクセスログを出力する場所を設定する。
logs
は/var/log/httpd
へのシンボリックリンクなので、/var/log/httpd
配下に出力される。combined
はログのフォーマットを示す。
おわりに
一旦、やる気もなくなってきたので今回はここまでにしたいと思います。
★がついてるのは個人的に重要そうor今後確認するであろう項目につけています。
今回の調査で、なんでファイル名指定してないのに、index.htmlが呼ばれるんだ~とか、なんでhtmlファイルは/var/www/html
に置くんだー
っていうのは、納得することが出来てよかった!
だけど、全部の項目を確認するのは、時間的にも厳しいと思うので必要なものを都度確認してまとめる方針に変えようかな~と考え中。(だれてしまうので。。。)