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かどうかのチェックしていないので、普通のファイルだと、その内容を永遠に吐き出し続ける……ローテートすると普通のログファイルになるので。) |