しがないPGの自衛記録

基本ずっと寝てる

Apacheの設定ファイルを確認する

f:id:ashitaka1963:20200813130910p:plain

はじめに

前回、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

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

おわりに

一旦、やる気もなくなってきたので今回はここまでにしたいと思います。 ★がついてるのは個人的に重要そうor今後確認するであろう項目につけています。

今回の調査で、なんでファイル名指定してないのに、index.htmlが呼ばれるんだ~とか、なんでhtmlファイルは/var/www/htmlに置くんだー っていうのは、納得することが出来てよかった!

だけど、全部の項目を確認するのは、時間的にも厳しいと思うので必要なものを都度確認してまとめる方針に変えようかな~と考え中。(だれてしまうので。。。)

参考