感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

Apacheの概要と、設定ファイルのこと。

スポンサーリンク

Apacheとは

Apache HTTP Serverは世界中で最も多く利用されているWWW(World Wide Web)サーバソフトウェアである。
世界中で稼働する約半分以上のWWWサイトで、Apacheが使われているという。

ApacheApacheライセンスの下でソースコードが公開/配布されている。
ApacheライセンスはGNUライセンスと異なり、ソースコードを使用していても、ソフトウェア全体を公開する必要はない。

Apacheサーバはプラットフォームごとに最適化されたモジュールとなっていて、プラットフォームに合わせて交換することができる。
この仕組をMPM(Multi-Processing Modules:っマルチプロセッシングモジュール)という。

WWWサーバとしても最小限の機能はコアモジュールと呼ばれるモジュールに実装されている。
コアモジュール以外のモジュールは以下のようなものがある。

■mod_auth_XXXX
modo_auto_〜は、認証に関する処理を行う。

■mod_cgi
mod_cgiはCGIを実行する処理を行う。

mod_rewrite
URLの書き換え処理を行う。

■mod_ssl
SSL通信の処理を行う。

Apacheサーバの設定ファイル

設定ファイルはconfとconf.dにある。Apacheサーバのほとんどの設定ファイルがここにインストールされている。

CentOSではデフォルトでは以下のディレクトリに、confやconf.dがある。
/etc/httpd

>ls -1
conf
conf.d
logs
modules
run

httpd.conf
メインとなる設定ファイル。
httpd.confからさらに他の設定ファイルを読み込むことができる。

.htaccess
.htaccessApacheをディレクトリ単位で制御するための特別なファイルのこと。
新人のときは.htaccessのことがよくわからなくて悩んだものだ。懐かしい。
こんな基本的なこともわからなかったのかと思いつつ、一方でこんな基本的なことを知ってるくらいでドヤ顔すんな、と当時の課長を思い出す。

Apacheサーバの設定ファイルは、1行につき1つのディレクティブと呼ばれる項目から成り立っている。
ディレクティブとは、指示子とも呼ばれ、Apacheサーバの動作を指定するコマンド項目のこと。

ディレクティブ 引数

ディレクティブと引数の間はスペースまたはタブで区切る。
ディレクティブ自体には大文字と小文字の区別がない。
また、メインの設定ファイルに記述されたディレクティブは、Apacheサーバ全体に適用されるため、サーバの一部分だけの設定を変更したい場合はコンテナ指示子と呼ばれる特別なディレクティブを使う。

<コンテナ指示子 引数>
設定内容
</コンテナ指示子>

この構文はたしか、Subversionで複数のリポジトリを管理するときにも目にしたことがある。
要はApacheで制御してたってわけだ。

コンテナ指示子のまとめ

コンテナ指示子 概要
Directory 特定のディレクトリとその配下のサブディレクトリすべてに適用する指示子を設定。
DirectoryMatch 引数に正規表現を指定。
Files 指定したファイルに適用される指示子を設定。
FilesMatch 正規表現で指定したファイルに適用される指示子を設定。
Location 特定のURLとその配下のサブディレクトリすべてに適用される指示子を設定。
LocationMatch 引数にはURLではなく正規表現を指定。
VirtualHost 仮想ホストを設定。
Limit 各コンテナ指示子の中で、さらにアクセスを限定。

参考文献

Apacheポケットリファレンス (POCKET REFERENCE)

Apacheポケットリファレンス (POCKET REFERENCE)


この本が最もコンパクトにわかりやすくまとまっている。
他の本もほとんど買ったけど、これが一番いい。