Apache Software Foundationは7月18日、オープンソースのWebサーバ「Apache」の新バージョンを公開した。今回アップデートされたのは1.3系列だ。 新たにリリースされたApache 1.3.28では、新機能の追加やバグフィックスに加え、3つのセキュリティ問題が修正されている。
Apache 1.3.28 がリリースされました。1.3.27 からの変更に関しては module.jp の 'Apache 1.3.28がでちゃいそう' なんかが参考になります。
ということで我が家のウェブサーバもアップデートしておきました。
以下、アップデート作業メモ。
1.3.26 → 1.3.27 から Linux のパッケージを使うのを止めて、ソースからビルドしているので、今回も手順はほぼ同じ。本体のバージョンが変更に合わせて、モジュールも交換。mod_ssl と mod_perl を入れなおす。ついでなので OpenSSL と mm も上げておく。
mod_jk2, mod_fastcgi, mod_php はインストールしてあったものの、特に使用してないので必要になったらそのとき再度入れることとする。
ソースはすべて /usr/local/src に展開。
■ MM $ cd /usr/local/src $ tar zxvf mm-1.3.0.tar.gz $ cd mm-1.3.0 $ ./configure --disable-shared $ make $ make test $ sudo make install ■ OpenSSL $ cd - $ tar zxvf openssl-0.9.7b.tar.gz $ cd openssl-0.9.7b $ ./config shared -fPIC no-threads $ make $ make test $ sudo make install ■ Apache ソース展開 $ cd - $ tar zxvf apache-1.3.28.tar.gz ■ mod_ssl $ cd - $ tar zxvf mod_ssl-2.8.15-1.3.28.tar.gz $ cd mod_ssl-2.8.15-1.3.28 $ CFLAGS=-O2 ./configure --with-apache=/usr/local/src/apache_1.3.28 \ > --with-ssl=/usr/local/ssl \ > --with-mm=/usr/local/lib \ > --prefix=/usr/local/apache \ > --enable-shared=ssl ■ Apache $ cd ../apache_1.3.28 $ make $ make certificate TYPE=dummy $ sudo make install ■ mod_perl $ cd - $ tar zxvf mod_perl-1.0-current.tar.gz $ cd mod_perl-1.28 $ perl Makefile.PL \ > USE_APXS=1 \ > WITH_APXS=/usr/local/apache/bin/apxs \ > EVERYTHING=1 $ make $ sudo make install
済んだら httpd.conf の mod_jk、mod_php、mod_fastcgi に関係する項目をコメントアウトし、サーバ再起動。
* mm の --disable-shared について
4. Apache/EAPIで共有メモリを使いたい場合、オプションのMM Shared Memory libraryを使用できる。これはmod_sslをディスクキャッシュを使うかわりに高パフォーマンスなRAMベースのセッションキャッシュで使うことができる。 (略) NOTE: When your system already has MM installed in system locations NOTE: MMが既にインストールされていたら下記の`EAPI_MM=../mm-1.0.x' を'SYSTEM'と置き換えて使うことNOTE: 上記の --disable-shared オプションを忘れないこと。もしくはLD_LIBRARY_PATHに/path/to/mm-1.0.x/.libs/を明示的に指定すること。さもなくば共有ライブラリが見つからずに、Apacheのコンパイルが失敗する。
* mod_ssl の config は Apache の make よりも先にやる必要があるが、Apache のソースが展開されている必要あり。
* OpenSSL は mod_ssl を DSO で作る場合は -fPIC オプションが必要。また、Apache 1.3 はマルチスレッドに対応していないので SSL ライブラリのそれも無効化した方がよいとドキュメントにあり。
* mod_ssl。--enable-shared=ssl により DSO としてビルドできる。--with-mm はオプションだが一応指定。mod_ssl を configure すると、一緒に Apache の configure も済む。(DSO有効、EAPI有効とかそんな具合。)
* Apache の make の後 SSL の鍵を生成するために make certificate を実行する。SSL の鍵は以前から利用しているものを流用するので、ダミーで作って後で入れ替えた。
* SERVER_SOFTWARE: Apache/1.3.28 (Unix) mod_perl/1.28 mod_ssl/2.8.15 OpenSSL/0.9.7b