セブではたらく(インターン)
セブではたらく(インターン)
2015.12.16

これで読める!Apache設定ファイルの中身をディレクティブで把握しよう

ヤスタカ

ディレクティブの適用範囲を指定できるディレクティブ

  • <Directory ディレクトリパス></Directory> 指定したディレクトリ内だけ
  • <Files ファイル名></Files> 指定したファイル内だけ
  • <Location URLパス></Location> 指定したURL内だけ
  • <Virtualhost ホスト名></Virtualhost> 指定したホスト名やIPアドレスだけ

この辺りのディレクティブは範囲を指定してその設定を適用できるもので、こんな感じで、

<Directory /var/hoge>
deny from all
</Directory>

/var/hogeのディレクトリの中とそのサブディレクトリの中だけ deny from allの設定を適用したいときに使用します。

条件判定のディレクティブ

<ifmodule mod_ssl.c></ifmodule>

指定したモジュールがインストールされていたら、その中に書いた設定を適用するというものです。上記の例だとmod_ssl.cというモジュールが「インストールされていたら」という条件になります。
<!ifmodule>と先頭に!を付けると、「インストールされていなかったら」というように条件を反転させることもできます。

アクセス権限を設定するディレクティブ

Allow, Deny

このディレクティブはアクセス権限を設定できるもので、ホスト名、IP アドレス、IP アドレスの範囲や、環境変数でアクセスできる(できない)を変更できます。使い方は以下の通りです。

Allow(Deny) from 10.1.2.3 ←アクセスを許可(拒否)するIPアドレスをfromの後に指定します。

Order

デフォルトのアクセスの状態と Allow ディレクティブと Deny ディレクティブが評価される順番を制御します。使い方は以下の通りです。

Order allow, deny

こんな風に書くとAllow ディレクティブが Deny ディレクティブの前に評価されます。アクセスはデフォルトで拒否状態です。Allow ディレクティブに指定したアクセス設定に一致もしくは、Deny ディレクティブに指定したアクセス設定に一致したクライアントはアクセスを拒否されます。逆もまた然り。

外部設定ファイルを取り込む

Include conf.d/*.conf

という記述がhttpd.confファイルにあったりすると、conf.dディレクトリの中にある、☓☓☓.confというファイルを読み込んでくれるので、モジュールごとの設定などはこのディレクトリに別ファイルとして記述しておくことも可能です。

おわりに

いかがでしたか。今までは「もともと使っていた設定ファイルをそのままコピーして使っていた」なんて方も、ちょっと読み方を覚えるだけでだいぶその中身を把握できるようになったのではないでしょうか。

設定ファイルを変更した後は、変更を適用するためにサーバーの再起動をお忘れなく。

  • 1
  • 2