Apache(2.0.39) を起動するメモ(2002/07/07) 
 

Apacheとは

ホームページをインターネットで公開するとき、ftp で ISP で指定された場所に html 文章などのファイルを置くとと簡単に公開することができますが、それは裏で Web Server と言うプログラムが動いているからなのです。世の中には商用として Web Server は数ありますが、この Apache は GNU版として無償なのです。しかもよくできている!  「この本」 「ここで買う」

HTTPとは

Hyper Text Transfer Protocol = HTTPといい、例えば IE(クライアント) から http://www.hoge.com と打った場合、Web Server はアクセス要求のあったクライアントに対し、"index.htm" ファイルを送るよぉ〜っていい、クライアントはその "indexhtml."を受け取り表示手順のことを乱暴ですがプロトコル=手順といいます。実際のところ普通の人は、HTTPの手順など知らず気ままにネットサーフィンなんかしていますが、この方法さえ判れば簡単に、あるサイトが更新されたとか、動画のファイルが存在しているなどわかります。他のメール(SMTP)や、ファイル転送(FTP)なども手順は違いますが、プロトコルに従ってアクセスすれば簡単に相手とお話することができるのです。

設定方法

1.Apache2本体のダウンロードと、そのファイルを展開します。 

% cd /opt/local/src
% wget http://www.apache.jp/dist/httpd/httpd-2.0.39.tar.gz
% gzip -cd httpd-2.0.39.tar.gz | tar xf -
% cd httpd-2.0.39

2.DSO化を行うべきコンパイルオプションと、インストール先ディレクトリを指定します。

% env CFLAGS=-O3 \
    ./configure --prefix=/opt/local/apache2 \
       --enable-module=so \
       --with-mpm=worker \ 
       --enable-cache \
       --enable-disk-cache \
       --enable-mem-cache \
       --enable-file-cache
% make

.MPM(マルチ・プロセッシング・モジュール)は、Apache2 からの実装でプロセス制御を、スレッド化、リクエストの細分化等の処理を行ってくれます。但し、デフォルト値は prefork(非スレッド)となっており、旧Apache と同じ動作を行う様にコンパイルされます。私の環境では prechild のコンパイルがエラー(socket.h の互換性)となってしまいました。

MPM名 意味
prefork デフォルト:安定性や古いソフトウェアとの互換性を必要とするオプション(スレッド非対応)
perchild 異なるホストを異なるユーザ IDで動作させるオプション(スレッド対応)
worker 非常に大きなスケーラビリティを必要とした場合のオプション(スレッド対応)

3.インストールを行います。インストールに失敗した場合は、問題点を指摘してくれますので指示通り最初から進めてください

% su
# make install

4.Apache の httpd.conf 内容を設定する。

# vi /opt/local/apache/conf/httpd.conf
  Listen 80
  ServerName www
  User nobody
  Group #-1 → nobody

.MPM の動作は httpd.conf 中の <IfModule MPM名.c>セクションパラメタ値によって動作を変える事ができます。

パラメタ 意味
StartServers Apache起動時のサーバプロセス数
MaxClients クライアントからの最大同時接続数
MinSpareThreads スペアとして待機しているスレッドの最小数
MaxSpareThreads スペアとして待機しているスレッドの最大数
ThreadsPerChild 各サーバプロセスがコンスタントに起動するスレッド数
MaxRequestsPerChild サーバプロセスが処理するリクエストの最大数

5.Apache の起動を行います。

# /opt/local/apache2/bin/apachectl start

6.マシン起動時に自動的に Apache を起動する。

# cd /etc/init.d
# vi apache2
# chmod +x apache2
# ln -s /etc/init.d/apache2 /etc/rc3.d/S50apache2
# ln -s /etc/init.d/apache2 /etc/rc3.d/K98apache2

7.Apache のコンパイル情報を見る方法・・・

# /opt/local/apache2/bin/httpd -l
   core.c
   mod_access.c
   mod_auth.c
   mod_file_cache.c
   mod_cache.c
   mod_disk_cache.c
   mod_mem_cache.c
   mod_include.c
   mod_log_config.c
   mod_env.c
   mod_setenvif.c
   worker.c
   http_core.c
   mod_mime.c
   mod_status.c
   mod_autoindex.c
   mod_asis.c
   mod_cgid.c
   mod_negotiation.c
   mod_dir.c
   mod_imap.c
   mod_actions.c
   mod_userdir.c
   mod_alias.c
   mod_so.c