NTTドコモ様_dカーシェア
NTTドコモ様_dカーシェア
2015.12.16

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

ヤスタカ

こんにちは。バックエンドエンジニアのヤスタカです。先月、東京から長野県野尻湖オフィスへ引っ越しました。

野尻湖はクルマがないとどこにも行けないので、僕も初の自家用車を購入しようと引っ越し前の週末に中古車屋さん通いをしていたのですが、四駆のクルマって高いんですよね……。

デザイン的にちょっと前のジムニーとかラシーンとかが好きなんですが、ジムニーなんて20年前のモデルで走行距離10万キロ超えてるのに、定年退職して趣味に走るおじさんたちに人気だったりして、割といいお値段するんですよ。

しかも中古車屋に行くたびに、車種のモデルやら年式やらいろんな情報がインプットされて、逆にもう何がいいんだかよくわからなくなってきてます。

よくわからないといえばApacheの設定ファイルも同じなんです。(強引ですね)

プログラミング言語じゃないくせにやたらと書き方が難しくて、正直よくわかってないけれど、なんとなく前と同じように書いとけば動くし……とかやってると、思わぬ落とし穴にハマって抜けれなくなるときがあります。なのでこの機会に、基本的なことを抑えるべく記事まとめました。

Apache設定ファイルのそもそものお話

Apacheを設定するファイルには

  • httpd.conf
  • .htaccess
  • httpd.d/ ☓☓☓.conf

などいくつかあると思いますが、それぞれどんな役割なのかというと、

  • httpd.conf → サーバー全体に関する設定
  • .htaccess → ディレクトリ単位での設定
  • httpd.d/ ☓☓☓.conf → モジュール単位での設定等

といった感じです。

ディレクティブってなに?

それでは、実際に設定ファイルの中をちょっと見てみましょう。

AuthUserFile /home/test/.htpasswd
AuthGroupFile /dev/null
AuthName "Secret Area"
AuthType Basic

require valid-user

<Files ~ "^.(htpasswd|htaccess)$">
deny from all
</Files>

これはbasic認証をかける時の.htaccessファイルの中身です。
この中でディレクティブと呼ばれるものが、AuthUserFileや<Files></Files>です。

イメージとしては、CSSの属性と値のようにディレクティブと値をそれぞれ設定して、記述していくというのが基本です。
また、ディレクティブには範囲を指定できるものもあり、次のようなものはhtmlの開始タグと閉じタグのように<Files><Files>で囲い、その中に個々のディレクティブと値を書きます。

Filesの横に書いてあるは正規表現です。範囲指定できるディレクティブは、「どこまでをその範囲に含めるか」を正規表現を使って指定できます。

どんなディレクティブがあるの?

では、どんなディレクティブがあってどんな値が設定できるのって話になりますが、これはもういっぱいあり過ぎるので、下記を参考にしていただければと思います。

Apache HTTP サーバ バージョン 2.0 ディレクティブ一覧
http://httpd.apache.org/docs/2.0/ja/mod/directives.html

今回はその中でもよく使いそうなものをいくつか紹介したいと思います。

  • 1
  • 2