Apacheにはモジュールを動的に追加するDSO(Dynamic Shared Object)という機能が組み込まれている。これを使うと例えばPHPのバージョンアップなど、Apacheを再コンパイルしなくてもモジュールを組み込めるので便利である。ほんの少し動作が遅くなるデメリットがあるらしいが、別にサイトを運用するわけじゃないので私は気にしない。以下は、DSOを使ったコンパイル方法を紹介する。
とりあえずrootになっておこう。
/usr/local/srcなどにApacheのソース・ファイルをコピーし、次のように展開する。
$ cd /usr/local/src
$ tar zxvf apache_1.3.26.tar.gz
展開してできたソース・ディレクトリに移動し、DSOモジュールを有効にするオプションをつけてconfigureスクリプトを実行。
$ cd /usr/local/src/apache_1.3.26
$ env OPTIM="-O2" ./configure --enable-module=so
configureが無事終了したら、コンパイル、インストールを行う。
$ make
$ make install
インストールが終わったら、環境設定を行う。ソースからインストールした場合、Apacheの環境設定ファイル
httpd.confは/usr/local/apache/confの中にある。
ServerRootなどを設定しておく。
/etc/rc.d/init.d/にApacheの起動スクリプトを作成する。
$ vi /etc/rc.d/init.d/httpd 以下のスクリプトを入力し、保存する。
#!/bin/sh # chkconfig: 345 95 16 # description: Apache httpd # Source function library. . /etc/rc.d/init.d/functions [ -x /usr/local/apache/bin/httpd ] || exit 0 RETVAL=0 # See how we were called. case "$1" in start) echo -n "Starting httpd: " daemon /usr/local/apache/bin/httpd RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/httpd ;; stop) echo -n "Shutting down httpd: " killproc httpd RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/httpd ;; status) status httpd RETVAL=$? ;; *) echo "Usage: $0 {start|stop|status}" exit 1 esac exit $RETVAL作成したスクリプトに実行権をつける。
$ chmod 755 /etc/rc.d/init.d/httpd ランレベルごとのシンボリック・リンクを作成する。
$ chkconfig --add httpd
Apacheを起動する。
$ /etc/rc.d/init.d/httpd startApacheを停止する。
$ /etc/rc.d/init.d/httpd stop
Linuxサーバを再起動し、クライアントからブラウザで
http://LinuxサーバのIPアドレス/を入力し、Apacheの画面が出るかどうか確かめよう。
インストール時にコピーされるドキュメント、CGIファイルなどを削除する。
$ rm -f /usr/local/apache/cgi-bin/*
$ rm -rf /usr/local/apache/htdocs/manual
$ rm -f /usr/local/apache/htdocs/*