ホーム > 詳細

ApacheのログにPHPで認証したユーザーIDを書き込む

固定リンク:#0000000132   投稿者: ZiSTA 日付:2011-05-13 10:27:11   コメント( 0

ユーザーが何をしたか調べたい。

ApacheのログにユーザーIDを記録する

apacheのログに好きな情報を出す方法(PHP編)にズバリ書いてる。
apacheのログにHTTP認証のユーザ IDを記録する代わりに、PHPで認証したユーザーIDを記録させます。

  • アプリケーション側でapache_note関数を使う
  • Apacheのログフォーマットを変更する

PHPからApacheにユーザーIDを伝える

<?php
//$user_idに認証済みユーザーIDが入っている
if($user_id){
    apache_note ( 'AuthUserId',$user_id); 
}
?>

ApacheのログにユーザーIDを加える

Apacheのログフォーマットの「%u」がHTTP認証のユーザ IDです。今回HTTP認証を使わないので、その代わりにPHPから出力した値を「%{AuthUserId}n」で書き込むように指定する。最後の「n」も忘れずに。

//LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
LogFormat "%h %l %{AuthUserId}n %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined

認証されていいときは"-"になります。

 

コメント

↑ ページトップ