既にApache2.0が動いている状態で,できるだけ楽に2.2に移行する.

なおここに記述している内容は,以下のOSで試したものです.

  • RedHat Linux 7.1
  • CentOS 4.4

httpd.conf

2.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
という風にして組み込めばよい.しかし問題はmod_encodingである.

今回は,パソコンおやじさんのサイトで公開されていたパッチを利用した.

用意するもの

mod_encoding-20021209.tar.gz (WebDAV Resources JP)
http://webdav.todo.gr.jp/download/mod_encoding-20021209.tar.gz
mod_encoding.c.apache2.20020611a-2 (WebDAV Resources JP)
http://webdav.todo.gr.jp/download/experimental/mod_encoding.c.apache2.20020611a-2
mod_encoding.c-apache2.2-20060520.patch (パソコンおやじさん)
http://www.aconus.com/~oyaji/faq/mod_encoding.c-apache2.2-20060520.patch

コンパイル手順

以下の手順を,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


© 2024 KMIソフトウェア