ディレクティブとは、Apacheの動作をコントロールする命令のこと。
Apacheのインストール
- インストーラの入手
- http://httpd.apache.org/
- Apache HTTP Server 2.2.11のWin32 Binary including OpenSSL 0.9.8i(MSI Installer)を選択
- インストーラ
- apache_2.2.11-win32-x86-openssl-0.9.8i.msi
- インストール
Network Domain localhost Server Domain localhost Administrator's Address 適当アドレス Port 80 ディレクトリ C:\Program Files\Apache Software Foundation\Apache2.2
- Apacheへの接続
- 最近の(?)は、「It works!」と表示されるんですね。
Apacheの起動
Apache2.2系のドキュメント
http://httpd.apache.org/docs/2.2/
MPM(Multi-Processing Module)について
Apache2.2
APR(Apache Portable Module)
- プラットフォーム依存部分を吸収し、一貫したAPIを提供するために利用されているライブラリ。OSとソフトウェアの間でOSなどの環境の違いを吸収するAPIを提供する。真のクロスプラットフォームなプログラムを作成できる。
http://www.atmarkit.co.jp/flinux/rensai/apache16/apache16b.html
http://www.atmarkit.co.jp/flinux/rensai/apache2_03/apache03b.html
apachectlコマンド
# apachectl -v バージョン表示
Server version: Apache/2.2.3 Server built: Sep 3 2009 17:37:31
# apachectl -V コンパイル設定の表示
Server version: Apache/2.2.3 Server built: Sep 3 2009 17:37:31 Server's Module Magic Number: 20051115:3 Server loaded: APR 1.2.7, APR-Util 1.2.7 Complie Using: APR 1.2.7, APR-Util 1.2.7 Architecture: 64-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APACHE_MPM_DIR="server/mpm/prefork" -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT="/etc/httpd" -D SERVER_CONFIG_FILE="conf/httpd.conf"
(一部省略してます。)
- MPMとは
- マルチプロセッシングモジュール。
- Apache2.0以降で、Apacheの中心部分がMPMとしてモジュール化された。いくつかのMPMを選択することが出来る。
- MPMの選択は、Webサイトの規模やOSなどによって異なる。Linuxの既定は、prefork。
- MPMの種類
- prefork
- あらかじめ複数のプロセスを用意しておいて、クライアントからのリクエストを待つ。
- 用意したプロセス数を超えるリクエストが来た場合は、新たなプロセスを生成する。
- worker
- クライアントのリクエストに対して、プロセスではなくスレッドで対応する動作モデル。
- 複数のプロセス内に複数のスレッドを待機させる。
- コンテキストスイッチの発生を抑えるので、preforkより高いパフォーマンスを期待できる。
- 一方で、1つのスレッドの不具合が同じプロセスの他のスレッドに影響するために、perforkよりも安定性に欠ける。
- prefork
ネタ元