apache 2.2系がリリースされて、そろそろ入れてもいいかなと思い、
2.0.58からアップグレードすることにした。
現在の最新バージョン2.2.2のソースをダウンロード
http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.2.tar.gz
解凍後以下のオプションでconfigure
$ ./configure --enable-dav --enable-headers --enable-so --enable-ssl --enable-auth-digest --with-mpm=worker --enable-cache --enable-disk-cache --enable-mem-cache
そうするとエラーメッセージでconfigureが完了できない。
configure: error: APR version 1.2.0 or later is required
APRってなんだろう?
知らなかったのだが、調べてみるとすぐに見つかった。
Apache Portable Runtime
http://apr.apache.org/
とりあえずインストールしてみる。
ソースをダウンロード
http://ftp.kddilabs.jp/infosystems/apache/apr/apr-1.2.7.tar.gz
解凍後、
$ ./buildconf
$ ./configure
$ make
$ make test
# make install
ライブラリが追加されたので、/etc/ld.so.conf に以下の行を追加。
/usr/local/apr/lib
追加後 ldconfig を実行
再度ソースを解凍したディレクトリに戻ってconfigure
今度はこんなエラーが
configure: error: APR-util version 1.2.0 or later is required
apr-util 1.2.7 をインストールする。
ここからソースをダウンロード
http://ftp.kddilabs.jp/infosystems/apache/apr/apr-util-1.2.7.tar.gz
$ ./buildconf --with-apr=../apr-1.2.7(aprのソースディレクトリ)
$ ./configure --with-apr=/usr/local/apr/(aprのインストールディレクトリ)
$ make
$ make test
# make install
httpdのソースディレクトリに戻って再度configure
今度は問題なく通った。
$ make
# make install
インストール完了後
/etc/init.d/httpd start
で起動しようとすると、こんなエラーメッセージが。
The startssl option is no longer supported.
Please edit httpd.conf to include the SSL configuration settings
and then use apachectl start.
/etc/init.d/httpdを編集して、startsslをstartに変更改めて起動
/etc/init.d/httpd start
またエラーメッセージ
module' in file /usr/local/apache2/modules/mod_encoding.so is garbled - perhaps this is not an Apache module DSO?
mod_encodingを再コンパイルしないといけないようだ。
2.0系に対応しているものだとそのままではコンパイルエラーになってしまうので、
こちらにあるパッチを適用してコンパイル。--- mod_encoding.c.2 Sat Dec 24 12:32:09 2005
+++ mod_encoding.c Sat Dec 24 12:34:24 2005
@@ -75,8 +75,8 @@
#include %3chttp_protocol.h%3e
#include %3chttp_request.h%3e
/* #include %3cap_compat.h%3e */
-
-#include %3ciconv_hook/iconv.h%3e
+#include %3cregex.h%3e
+#include %3ciconv.h%3e
/**
* Core part of the module.phpも再コンパイルしないといけなかったので、
コンパイルしてインストールした。これで無事起動が出来るようになった。
apache2.2の新機能の一つである、ドキュメントキャッシュ機能の設定をする。
@IT : Apache 2.2でWebサイトをパフォーマンスアップ!(2/3)
ここを参考にhttpd.confを編集
#ディスクキャッシュを用いる場合
CacheRoot /usr/local/apache2/cache #キャッシュデータの保管先
CacheEnable disk / #キャッシュ対象URL
CacheDirLevels 5 #キャッシュデータを保管するディレクトリ階層の深さ
CacheDirLength 3 #キャッシュデータを保管するディレクトリ名の文字数
#メモリキャッシュを用いる場合
CacheEnable mem / #キャッシュ対象URL
MCacheSize 4096 #キャッシュメモリの最大値(bytes)
MCacheMaxObjectCount 100 #キャッシュに保管するドキュメントの最大数
MCacheMinObjectSize 1 #キャッシュに保管するドキュメントの最小サイズ(bytes)
MCacheMaxObjectSize 2048 #キャッシュに保管するドキュメント1つ当たりの最大値(bytes)
実際にはサイトでキャッシュさせたいディレクトリに設定したのだが、
これでキャッシュ機能も使えるようになった。
効果のほどはよく分からないけど…思ったよりも手こずってしまい、3時間ぐらいかかってしまった。
Posted by Jay at 2006年05月14日 11:21 | コメント (0) | トラックバック (0) | | Clip!!
この記事に対するコメント