とりあえず環境をば。
- Ubuntu 12.04.4
- Apache 2.2.22
どこのサイトを探しても/etc/httpd/httpd.conf
を編集すると書いてあったりしたけど、自分の環境ではhttpd.conf
が空だったので、自分の環境でのメモ。
まずググって出てきたのが、
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(JPG)|(ico)$" nolog
CustomLog /var/log/httpd/access_log combined env=!no_log
これが正規表現として間違ってるよ! という記事。
あーたしかに、これじゃ拡張子として認識されるのは.gif
だけだなぁと。
正しくは
SetEnvIf Request_URI “\.(gif|jpg|png|JPG|ico)$” nolog
CustomLog /var/log/httpd/access_log combined env=!no_log
なんですね、フムフム。
んで、こっちの環境に合わせたり、他にも除外したいものがあったので追加して
SetEnvIf Remote_Addr 192.168.11. nolog
SetEnvIf Request_URI "\.(gif|jpg|png|JPG|ico|js|css|woff)|(\?)$" nolog
CustomLog ${APACHE_LOG_DIR}/access.log combined env=!nolog
こうなりました。
まず、ローカルからのアクセスのログは要らないので192.168.11.*
は除外します。
拡張子は、追加でJavaScript、CSSファイル、フォントのwoffを除外。
あと、WordPress使ってて~?var=x.x
とかも気になったので?
も除外。
${APACHE_LOG_DIR}
はデフォルトで/var/log/apache2
だと思うのでそのまま。
それで、迷ったのが、書く場所。
まず書いたのが/etc/apache2/apache2.conf
うーん、やっぱり変わらない。分からん!
次、/etc/apache2/httpd.conf
いつからか分かりませんがhttpd.conf
は空ファイルになりましたね。。
とりあえずそのまま書いた。変わらん。分からない!!
次、/etc/apache2/conf.d/httpd.conf
こう解説しているサイトもあったので試す。やっぱり分からん。
どうしようかー、と迷っていたら、とあるサイトに
<VirtualHost *:80>
SetEnvIf ~
CostomLog ~
</VirtualHost>
と書いてあるのを発見。そういやこのエントリどこだと探したら、見つけた。
/etc/apache2/sites-available/default
開くと、アクセスログとかエラーログがなんとかって書いてあるじゃないですかー、やだー。
おもむろに
<VirtualHost *:80>
(略)
# アクセスログの整形
SetEnvIf Remote_Addr 192.168.11. nolog
SetEnvIf Request_URI "\.(gif|jpg|png|JPG|ico|js|css|woff)|(\?=)$" nolog
CustomLog ${APACHE_LOG_DIR}/access.log combined env=!nolog
(略)
</VirtualHost>
そして適用させるためApache2の再起動。
$ sudo service apache2 restart
$ tail -f /var/log/apache2/access.log
で表示させながらアクセス。
キタ━━━━(゚∀゚)━━━━!! ログに残らない!!
以上です、おわり。
書いてから気付いたけど、これどこのファイルにしろ、
<VirtualHost *:80> </VirtualHost>
を作ってあげればちゃんと出来たのかな。
あ、でも書き込む場所をデフォルトの設定よりも下に書かないといけないのかな。
とりあえず、出来たからいいよね。