apache のインストール

1:ソースコードのダウンロード
# cd /usr/local/src
# wget http://www.apache.org/dist/httpd/httpd-2.2.4.tar.gz

2:解凍
# tar zvxf httpd-2.2.4.tar.gz

3:httpdのバイナリをおくためのフォルダを作成
# mkdir /opt/www

4:組み込むMPMモジュールの指定とバイナリをインストールするフォルダの指定.MPMモジュールの選択によって動作の最適化ができるらしい?
# cd httpd-2.2.4
# ./configure --with-mpm=worker --prefix=/opt/www

5:コンパイルしてインストール
# make
# make install

6:/opt/www/conf/httpd.conf の最低限の設定
ServerTokensProd   // サーバ情報を送らないようにする
ServerRoot/opt/www   // apacheの設定ファイルやログファイルの置き場所
ServerAdminyou@example.com   // エラーが発生したときに表示されるメールアドレス
ServerNamewww.example.com:80   // サーバの自己参照URLとポート番号
Listen80   // リクエストを受け付けるIP番号(NICが複数の場合)とポート番号.
DocumentRoot/opt/www/htdocs   // HTMLページを保存するディレクト
DirectoryIndex/index.html   // 「/」で終わるリクエストを受けたときに表示するファイル

とりあえずこれで表示はできる.
セキュリティに関しては 「玄箱 - apacheをインストール」を参照.

7:プロセス所有者の設定
ユーザ:www、グループwwwを作成して、他のユーザのファイルへのアクセス権を持たないようにする.ユーザwwwは既に作成しているので、グループwwwを作成してユーザwwwを追加する
# groupadd www
# usermod -g www www

リクエストに応答するときに起動する子プロセスの所有者を設定
# vim /opt/www/conf/httpd.conf
User www
Group www

www:wwwのアクセス権を下げる.やり方は勉強中.

8:rcスクリプトの作成

# cd /etc/init.d
# vim httpd
-----------------
#!/bin/bash
start() {
echo -n "Starting Apache: "
/opt/www/bin/apachectl -k start
return 0
}
stop() {
/opt/www/bin/apachectl -k graceful-stop
return 0
}
restart() {
/opt/www/bin/apachectl -k graceful
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
esac
-----------------

起動時に実行するように init.d に登録.
# ln -s /opt/www/bin/httpd /etc/rc3.d/S91httpd
# ln -s /etc/rc2.d/S91httpd /etc/rc3.d/S91httpd