既にApache2.0が動いている状態で,できるだけ楽に2.2に移行する. なおここに記述している内容は,以下のOSで試したものです.
httpd.conf2.2の標準では,設定内容毎に別ファイルに分かれている.しかし現状2.0で動いている設定をそんな風な構成に書き直すのは,面倒でやってられない.2.0で使っていたhttpd.confを,極力直さずにそのまま使う方針とする.
Apache実行ユーザの設定2.2の標準のhttpd.confでは,以下のようにApacheをdaemonなどというユーザが動かす,という設定になっているのが気になる.何か特別な意味があるのだろうか?User daemon Group daemon しかしうちの場合は,CGIで書き込むディレクトリのオーナーがnobodyになっている関係で,特にdaemonに直すということは行わなかった. 今さらdaemonに直すのは面倒だ. ...という状態でも普通に動いているので,おそらく大丈夫なのだろう.
モジュール:mod_deflateの設定以下のようにOutputFilterの設定箇所が2.2では変わっていた. 2.0の場合 SetEnv gzip-only-text/html 1 SetOutputFilter DEFLATE 2.2ではこう直す AddOutputFilterByType DEFLATE text/html text/plain text/xml 2.0の時の設定のままだと2.2では効かないので,cssや画像まで圧縮されてしまい,ブラウザで正しくページを表示できない羽目になる.
モジュール:その他カモランドでは他に,mod_rewrite,mod_alias,mod_dav,mod_sslを使っているが,これらの設定は特に変えなくてもそのまま動作した.まぁ大したことをやっていないだけなのかも知れないが,これらのモジュールの設定は直さなくて済む可能性が高そうだ.
外部モジュールその他使っているモジュールは,Apache2.2のソースを使って再コンパイルする必要があるらしい.(ドキュメントにそう書いていた)
WebDAV (mod_dav,mod_encoding)mod_davは普通にバンドルされているので,例えば./configure --enable-dav 今回は,パソコンおやじさんのサイトで公開されていたパッチを利用した.
用意するもの
コンパイル手順以下の手順を,rootで連続して行った.1. 展開 tar zxf mod_encoding-20021209.tar.gz cd mod_encoding-20021209 ./configure --with-apxs=/usr/local/apache2/bin/apxs cp ../mod_encoding.c.apache2.20020611a-2 mod_encoding.c patch -p0 < ../mod_encoding.c-apache2.2-20060520.patch 2. iconv_hook cd lib ./configure make make install 3. mod_encoding cd .. make gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook cp mod_encoding.so /usr/local/apache2/modules/ ln -s /usr/local/lib/libiconv_hook.so /usr/local/apache2/lib/libiconv_hook.so.1 |