Apache でフォームの入力内容などをロギングする

フォームの検証などで Apache に送信される POST の内容を確認したい、ということになり、その際の方法をメモ。ちなみに、テスト環境なのでHTTPSではなくHTTP通信です。

設定変更

Apache の設定を変更することで POST の内容をロギングすることができました。

# less /etc/httpd/conf.modules.d/00-base.conf

## 略

LoadModule dumpio_module modules/mod_dumpio.so

## 略

dumpio_module が読み込まれていることを確認。

# vi /ect/httpd/conf/httpd.conf

## 略

#LogLevel warn
DumpIOInput On
DumpIOOutput On
LogLevel debug dumpio:trace7

## 略

デフォルトの LogLevel である warn をコメントアウトして、 LogLevel debug dumpio:trace7 に変更。古いサーバならば dumpio:trace7 の部分がなくても行ける(むしろ dumpio:trace7 を付けるとエラーになる)ようです。

また、今回は入出力両方を見るために DumpIOInput, DumpIOOutput の両方を On にしました。

# systemctl reload httpd

これで Apache の設定再読み込み。

# less /var/log/error_log

## 略

[DDD mmm dd hh:ii:ss.mmmmmm yyyy] [dumpio:trace7] [pid 0000:tid 000000000000000] mod_dumpio.c(000): [client 192.0.2.1:55555] mod_dumpio:  dumpio_in (data-HEAP): data%5Bwp-check-locked-posts%5D%5B%5D=post-8964&data%5Bwp-check-locked-posts%5D%5B%5D=post-8959&data%5Bwp-check-locked-posts%5D%5B%5D=post-8941&data%5Bwp-check-locked-posts%5D%5B%5D=post-8911&data%5Bwp-check-locked-posts%5D%5B%5D=post-8896&data%5Bwp-check-locked-posts%5D%5B%5D=post-8858&data%5Bwp-check-locked-posts%5D%5B%5D=post-8852&data%5Bwp-check-locked-posts%5D%5B%5D=post-8836&data%5Bwp-check-locked-posts%5D%5B%5D=post-8814&data%5Bwp-check-locked-posts%5D%5B%5D=post-8800&data%5Bwp-check-locked-posts%5D%5B%5D=post-8789&data%5Bwp-check-locked-posts%5D%5B%5D=post-8783&data%5Bwp-check-locked-posts%5D%5B%5D=post-8777&data%5Bwp-check-locked-posts%5D%5B%5D=post-8768&data%5Bwp-check-locked-posts%5D%5B%5D=post-8765&data%5Bwp-check-locked-posts%5D%5B%5D=post-8762&data%5Bwp-check-locked-posts%5D%5B%5D=post-8740&data%5Bwp-check-locked-posts%5D%5B%5D=post-8713&data%5Bwp-check-locked-posts%5D%5B%5D=post-8697&data%5Bwp-check-locked-posts%5D%5B%5D=post-8673&interval=15&_nonce=340f139c5d&action=heartbeat&screen_id=edit-post&has_focus=true

## 略

これで error_log に入出力が記録されていることを確認(上の例は WordPress の投稿編集画面で「更新」したものの一部)。大丈夫そうです。

なお、 error_log が凄い勢いで増えてくので検証が終わったら設定をすぐに戻した方が良いですね。

参考

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。