Apache 2.0.52 に入れ替えついでにいくつか変更

あ、2.0.51 が出てる、入れ替えなきゃ…とか思ってるうちにまた新しいバージョンが出たのでこれを機に入れ替え(それでも微妙に遅いという話もある)。
基本的には、前に Apache 2.0.50 のRPM ファイルを作って入れ替え でやった方法をそのまま踏襲。
2.0.52 に含まれるhttpd.spec では、必要なパッケージの中でdb4-devel がデフォルトになってるので、ここの部分の書き換えが不要になりました。あと、PHP コンパイル対策として、httpd.spec の240行目あたりを以下のように、2行コメントアウトして後ろの方に移動(太字部分が変更点)。


# Remove unpackaged files
rm -rf $RPM_BUILD_ROOT%{_libdir}/libapr{,util}.{a,la} \
$RPM_BUILD_ROOT%{_libdir}/APRVARS $RPM_BUILD_ROOT%{_libdir}/*.exp \
$RPM_BUILD_ROOT%{_libdir}/httpd/modules/*.exp \
$RPM_BUILD_ROOT%{contentdir}/htdocs/* \
$RPM_BUILD_ROOT%{contentdir}/cgi-bin/*

# $RPM_BUILD_ROOT%{_bindir}/ap?-config \ # $RPM_BUILD_ROOT%{_sbindir}/{checkgid,dbmmanage,envvars*} \

お次は、325行目あたりに以下の2行を追加(太字部分が追加点)。


%{_libdir}/libapr-0.so.*
%{_libdir}/libaprutil-0.so.*

%{_bindir}/ap?-config %{_sbindir}/envvars

あと、オプションをかえたい場合はお好みで。編集が終わったらいつものごとくビルド開始。
今回は"--target i686" というオプションを追加してみた。劇的に性能が向上するわけでもないらしいですが、なんとなく。


# rpmbuild -bp --target i686 /usr/src/redhat/SPECS/httpd.spec # パッチをあてる
# rpmbuild -bc --target i686 /usr/src/redhat/SPECS/httpd.spec # コンパイルを行う
# rpmbuild -bi --target i686 /usr/src/redhat/SPECS/httpd.spec # インストールテスト
# rpmbuild -ba --target i686 /usr/src/redhat/SPECS/httpd.spec # パッケージを作成する

で、あとはお定まりのインストール。


/etc/rc.d/init.d/httpd stop

Apache 本体をインストール。


rpm -Uvh httpd-2.0.52-1.i686.rpm

もともとRPM でApache を入れていた場合、以下のようなメッセージが出るので適当に編集します。


/etc/httpd/conf/httpd.conf created as /etc/httpd/conf/httpd.conf.rpmnew

今回、mod_deflate を使って、いわゆるgzip 圧縮転送を仕込んでみました。転送量を気にするほどのアクセスもないわけですが、なんとなく。
httpd.conf とかの編集が終わったら、Apache を起動します。


/etc/rc.d/init.d/httpd start

無事入れ替え完了。お疲れ様でした。


(2004/10/04 22:48 追記)
Web-Sniffer を使うとHTTP レスポンスヘッダなども見られますので、gzip 圧縮がちゃんとかかっているかとか確認できます。自分が管理するのでないサーバに対してこれを使うのはちょっと黒っぽい行為かもしれません。

ついでに分かったのですが、"X-Powered-By:" というフィールドでPHP のバージョンが丸見えになってしまっていたので、"/etc/php.ini" の中のexpose_php = On" を"expose_php = Off" に変更しました。