いつき over TCP / TimePlant

HTTP

Apacheのインストール
・インストールする物
Apache 1.3.22(1.3シリーズ)

・Apache
インストールしたのは、Apache 1.3.22です。

展開した後、./configure;make;make installでおしまいです。
起動時に/usr/local/apache/bin/apachectl startをするようにしておくと良いでしょう。

なぜか1.3.22からはhttpd.confの標準がGroup #-1になっています(^^;
適当なグループを指定しないと起動しない場合があるので注意。

さてさて、特に比較的大規模なサイト(含むエロサイト)の場合、以上にアクセスログが大きくなります。
予想外に巨大なログが作られることがあります(予想できないし)

そこで、(私作の)rdfifoというプログラムとmultilogを使って勝手にログ取り&ローテートとしてくれるようにします。

最初にApacheを止めます(笑)
次に、ログファイルの名前でFIFOを作ります。
(標準インストールなら、mkfifo /usr/local/apache/logs/access_log)
あ、いままで使っていたログファイルを消すのを忘れないで下さい(笑)
で、rdfifo /usr/local/apache/logs/access_logとしてApacheを起動すると、アクセスログが標準出力に吐き出されます。
で、標準出力に吐いてもしょうがないので、どこかにログ用のディレクトリーを作って(/var/log/httpd/accessとします)、ログ取り用のユーザー(apachelogとします)を追加します。
で、Apacheを起動する「前に」(特に、ブートスクリプトを書くときは要注意。逆にすると起動できなくなります)
/usr/local/bin/setuidgid apachelog /usr/local/bin/rdfifo /usr/local/apache/logs/access_log | /usr/local/bin/setuidgid apachelog /usr/local/bin/multilog /var/log/httpd/access &
とすると、/var/log/httpd/accessの中にmultilogでログが取れます。(/var/log/httpd/accessのオーナーとパーミッションに注意。)
自分は、multilog t s1024000として、Apacheのログ形式を変更して(Apache側では時間を出力しないようにして)tai64形式でログを取るのが趣味です。(アクセス解析とか使うときはtの指定をしない方が良いです)
error_logとかsuexec_logとかその他諸々のファイルもこの方法で取れます。
が!rdfifoが死んだとき、Apacheが巻き込まれるので(苦笑)daemontools等で監視しておくと良いかもしれません。
あと、今まで使っていたログローテート用のプログラムからApacheのログをローテートしないようにしておきましょう。
これをやり忘れるとひどい目に遭うことがあります。
(rdfifoでファイルがFIFOかどうかのチェックしていないので、普通のファイルだと、その内容を永遠に吐き出し続ける……ローテートすると普通のログファイルになるので。)


[ 6.lukemftpdのインストールへ戻る | UnixInstallへ戻る | トップページへ戻る ]


ITUKI over TCP / TimePlant


このページ及びそれ以下のページに関するすべての著作権は桐原樹/NIにあります
画像、文章などのデータの全て、または一部の無断転載、複製、配布などは禁止です

(c)Copyright 1999-2001 Ituki Kirihara/NI
All rights reserved.