LoginSignup
24
34

More than 5 years have passed since last update.

ApacheでPOSTデータをログに記録したい

Posted at

ApacheでPOSTデータをログに記録したい

はじめに

Apacheのデフォルトの設定ではaccessログにはPOSTデータの
内容は表示されません。
というか、ユーザの機密情報をログに残さないことが目的の一つで
POSTメソッドを使っているので、それで正しい思います。

ただ、開発中の検証などで、POSTデータをログに記録したいことが
あると思いますので、その方法を説明します。

もっとも、自分はPOSTするようなWEBアプリケーションを作るときはWEBフレームワークを
使っていて、だいたいのフレームワークはdebugモードにすると、POSTのデータを
見ることができるので、めったに使うことはないと思いますが、、、

環境について

下記の環境で設定をしました。

  • OS: CentOS6.4 x86_64

  • Apache: Apache 2.2.25 (ソースからインストールしたもの)

mod_dumpioインストール

POSTデータをログに残すためには、mod_dumpioというモジュールが必要になります。

まず、これがインストールされているかチェックします。

インストールされている場合:

# httpd -M |grep dumpio
dumpio_module (shared)
Syntax OK

インストールされていない場合:

# httpd -M |grep dumpio
Syntax OK

mod_dumpioがインストールされていない場合は、インストールします。
下記は拡張モジュールをソースからインストールする方法です。

mod_dumpioモジュールがある、Apacheのソースアーカイブに移動:

# cd /..Apacheのソース../modules/debug/

apxsコマンドを使ってモジュールをインストール:

# apxs -i -a -c mod_dumpio.c

Apacheの設定ファイルhttpd.confを編集

apxsコマンドの-aオプションで、httpd.confに下記が追記されていることを確認:

LoadModule dumpio_module      modules/mod_dumpio.so

サーバ設定ファイルにDumpIOInputディレクティブを追記:

これにより、HTTPリクエストのヘッダやボディの内容がerrorログに表示されるようになります

DumpIOInput On

サーバ設定ファイルにDumpIOOutputディレクティブを追記:

これにより、HTTPレスポンスのヘッダとボディの内容がerrorログに表示されるようになります

DumpIOOutput On

ログレベルをdubugにする:

LogLevel debug

以上でApacheのerrorログにPOSTの内容が表示されるようになります。

私は最初勘違いしてaccessログ見てました、、、

24
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
24
34