差分表示


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

なおここに記述している内容は,以下の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では変わっていた.

&ltitle(2.0の場合);
--(
SetEnv gzip-only-text/html 1
SetOutputFilter DEFLATE
--)

&ltitle(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
--(
./configure --enable-dav
--)
という風にして組み込めばよい.しかし問題はmod_encodingである.

今回は,&link(パソコンおやじさん,http://www.aconus.com/~oyaji/index.htm)のサイトで公開されていたパッチを利用した.

**用意するもの
: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 -zxof 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
--(
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
--(
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
--(
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
--)


© 2020 KMIソフトウェア