apacheのバージョンアップ
HOME BACK

 サーバーソフトの代表的な存在であるapacheにセキュリティーホールが発見された。よりによってFreeBSDを対象としたワームも出現したようである。うかうかしていると大変なことになりそうなので、セキュリティー対策済みのものにバージョンアップする必要がある。

最新はApache 1.3.42

最新はApache 1.3.42です。しかし、これが最後の1.3系となったようです。
The Apache Software Foundation and the Apache HTTP Server Project are pleased to announce the release of version 1.3.42 of the Apache HTTP Server ("Apache"). This release is intended as the final release of version 1.3 of the Apache HTTP Server, which has reached end of life status

portsからのバージョンアップ

OSをFreeBSD 6.2に変更した際、portsから最新のApacheをインストールした。しかし、security fix releaseが出てバージョンアップしなければならなくなった。そのため、最新portsを取得してバージョンアップすることにした。この方法であればファイル配置が変わらないので便利である。
詳細は別項にまとめてある。

apache1.3.32へのバージョンアップ

OSをFreeBSD 4.10へ変更した結果、ファイル配置が変わってしまったので、メモを作ることにした。
apacheのサイトからapache_1.3.32.tar.gzをダウンロードして適当な場所に置く。
ダウンロードしたファイルが適正なものかどうかチェックする。
%md5 apache_1.3.32.tar.gz
MD5 (apache_1.3.32.tar.gz) = 45164531fb57bfa18af4b9efd0850dd3
apacheのサイトにあるapache_1_3_32_tar_gz_md5を調べて同じであればOKである。
tarballを解凍する。
%tar zxvf apache_1.3.32.tar.gz
apache_1.3.32へ移動する。
%cd apache_1.3.32
apacheがインストールされているパスを探す。
%locate httpd
/usr/local/libexec/bin/httpd
httpd本体は/usr/local/libexec/bin/httpdであることがわかったので
%./configure --prefix=/usr/local/libexec
とする。
%make
でインストールの準備が整った。
%su root
httpdを停止する。
#/usr/local/libexec/bin/apachectl stop
#make install
でインストール終了である。念のため、リブートしておく。

apache1.3.27へのバージョンアップ

前回の1.3.26へのバージョンアップから数ヶ月しか経過していないがまたもやapacheにセキュリティバグが発見された。 apacheのサイトから最新バージョンの1.3.27をダウンロードしてサーバー・マシンに格納した。念のため、コンテンツ類をftpでWinPCへバックアップし、
$cp httpd.conf httpd.conf.bk
としてhttpd.confのバックアップをとった。
$su root
#/usr/local/etc/apache/bin/apachectl stop
でapacheを停止した。
apache_1.3.27.tar.gzを格納したディレクトリーへ移動し
$tar -zvxf apache_1.3.27.tar.gz
で解凍して
$cd apache_1.3.27
へ移動して
$./configure --prefix=/usr/local/etc/apache
$make
$su root
#make install
で終了である。サーバーをリブートしWinPCからサーバーにアクセスすると無事デフォルトのindex.htmlが閲覧できた。今回は1.3.26へ上書きしたのでhttpd.confも現有のものがそのままなので手直しの必要はない。コンテンツ類もそのままでOKである。
http://www.searchengineworld.com/cgi-bin/servercheck.cgi
で確認すると無事1.3.27と表示された。

apache1.3.26

 apacheのサイトで確認するとセキュリティー対策済みのapacheがリリースされていた。tarballをとりあえずダウンロードしてサーバー・マシンに格納した。
$tar -zvxf apche1.3.26.tar.gz
で解凍して
$cd apche1.3.26
で移動して
$ls
として、中身を確認した。
$less README.configure
でインストール方法を確認する。インストール自体は
$configure
$make
#make install
でOKであるが、現在のapacheはportsからインストールした1.3.20なのでデフォルトでインストールするとファイル配置が違ってしまうのでconfigureにオプションを設定する必要がある。
 現在のapacheへのパスをオプションにすればよいことがわかったので、パスを探した。
$find /usr -name apache
とすると、/usr/local/etc/apacheであることがわかった。このディレクトリーにconfファイルもあるので、念のためディレクトリー丸ごとバックアップした。
#cp -R apache apache1.3.20

インストールその1

 現用サーバーでバージョンアップに失敗すると困るので、ddでフルコピーしたHDDを開発用マシンに装着して試してみることにした。このようにするとオリジナルは確保されているので失敗しても安心である。準備が完了したので実際にインストールしてみる。
$./configure --pfrefix=/usr/local/etc/apache
$make
$su root
#make install
で問題なくインストールが完了した。
しかし、portsからインストールした1.3.20に置き換わらなかったので、再チャレンジと相成った。

インストールその2

 portsからインストールした1.3.20のディレクトリー配置はかなりデフォルトと違っており、1.3.26のconfigureのオプションで対処できそうもなかったので、1.3.20をアンインストールすることにした。
$pkg_info
でインストール状況を確認した後
#pkg_delete apache-1.3.20
でアンインストールした。
ついでにportsから入れたカウンターソフトもアンインストールした。
#pkg_delete wwwcount-2.5
コンテンツ類はWinPCにオリジナルを置いてあり、FTPでサーバーへアップしているので特にバックアップをとる必要はない。
 FreeBSD4.4Rでは追加ソフト類は/usr/local/etcに置かれるので1.3.26でもそこに置くことにした。
#make clean
とした後、
$./configure --prefix=/usr/local/etc/apache
$make
$su root
#make install
で終了である。WinPCからサーバーにアクセスすると無事デフォルトのindex.htmlが閲覧できた。DocumentRootも/usr/local/etc/apache/htdocsに変わっているのでコンテンツをWinPCからFTPでアップし直した。サーバーへアクセスすると見慣れた自宅サーバーWeb画面が出てきたが、カウンターは表示されていない。

httpd.confの修正

 デフォルトのhttpd.confでもWebへはアクセスできるが、ログファイル等の配置が変わっているので修正する。FreeBSD4.4Rでportsからインストールした1.3.20のhttpd.confと比べながら修正した。
 以下が主な修正点である。pidファイル、logファイルの配置を1.3.20の時と同じにしないとログがローテートされなくなる。
PidFile /var/run/httpd.pid
ScoreBoardFile /var/run/httpd.scoreboard
ServerAdmin info@hogehoge.net
ServerName www.hogehoge.net
HostnameLookups On
ErrorLog /var/log/httpd-error.log
CustomLog /var/log/httpd-access.log combined
ServerSignature Off

apacheの起動

 apacheの起動は
#/usr/local/etc/apache/bin/apachectl start
で止める場合は
#/usr/local/etc/apache/bin/apachectl stop
である。4.4Rでportsからインストールすると自動起動するので起動ファイルを書き換えようと探したがわからなかったので、/usr/local/etc/rc.dにスプリクトファイルを置いた。
#vi httpdstart.sh
#!/bin/sh

if [ -x /var/run/httpd.pid ]; then
/usr/local/etc/apache/bin/apachectl stop > /dev/null && echo -n ' apache'
else
/usr/local/etc/apache/bin/apachectl start > /dev/null && echo -n ' apache'
fi

exit 0
# chmod +httpdstart.sh
で実行ファイルにすれば、OS起動時にapacheも自動起動するようになる。

wwwカウンターのインストール

 portsからインストールしたときは何もしなくてもすぐにカウンターが動き始めたが、今回はtarballからのインストールとなる。wwwカウンターはportsでもインストールしたwwwcount2.5を使用した。下記のサイトからダウンロードできる。
http://www.muquit.com/muquit/software/Count/Count.html
$tar -zxvf wwwcount2.5.tar.gz
$cd wwwcount2.5
として、デフォルトインストールの場合、
$make all
$su root
#make install
と進むが、cgi-binへのパスが違うのでこのままでは正常動作しない。make installの途中でConfig.tmplのパス記述を変更せよと出てくる。
#vi Config.tmpl
として
CGIBIN_DIR="/usr/local/etc/apache/cgi-bin"
へと変更する。
再度、
#make install
として進めれば無事インストール完了となる。
 当初カウンターの枠だけで数字が表示しなかったので/usr/local/etc/Counter/data/sample.datを#chown nobody:nogroup sample.dat
としたら表示するようになった。
設定は/usr/local/etc/Counter/conf/count.cfgファイルを編集する。

その他

 バージョンアップ情報を求めてWeb検索中に下記のサイトへたどり着いた。
http://www.searchengineworld.com/cgi-bin/servercheck.cgi
ここでは、Webソフトの種類やバージョンを表示してくれる。我が自宅サーバーもApache/1.3.26 (Unix)と表示されたが、随分とお節介なサイトのようである。

HOME BACK

Last Updated 17/Mar/2010