いつも Apache のログは logrotate でローテーションさせてるんですが PostgreSQL のように単体?でできないかなと思っていたら ちゃんとそういうコマンドがあるようです。
さっそく設定してみます。 Ubuntu10.04 では rotatelogs は /usr/sbin に入っていました。
$ which rotatelogs
/usr/sbin/rotatelogs
自分でコンパイルした場合は prefix の指定配下の bin に入ります。 私は Apache2.4.2 を /usr/local/apache242 に入れたので rotatelogs は /usr/local/apache242/bin になります。
$ vi /usr/local/apache242/conf/httpd.conf
CustomLog の設定を参考サイトに合わせて変更します。
【変更前】 CustomLog "logs/access_log" common ↓ 【変更後】 CustomLog "|/usr/local/apache242/bin/rotatelogs logs/access_log.%Y%m%d 86400 540" common
Apache を再起動。
$ sudo /usr/local/apache242/bin/apachectl restart
アクセスするとログが出力されます。
$ ls -1 /usr/local/apache242/logs access_log access_log.20120428 error_log httpd.pid
これで Apache だけでログのローテーションが設定できるようになりました。