tag:crieit.net,2005:https://crieit.net/tags/POST/feed 「POST」の記事 - Crieit Crieitでタグ「POST」に投稿された最近の記事 2021-01-14T23:46:32+09:00 https://crieit.net/tags/POST/feed tag:crieit.net,2005:PublicArticle/16600 2021-01-14T23:46:32+09:00 2021-01-14T23:46:32+09:00 https://crieit.net/posts/apache-logging-input-of-post-and-output-20210114 Apache でフォームの入力内容などをロギングする <p>フォームの検証などで Apache に送信される <code>POST</code> の内容を確認したい、ということになり、その際の方法をメモ。ちなみに、テスト環境なのでHTTPSではなくHTTP通信です。</p> <h2 id="設定変更"><a href="#%E8%A8%AD%E5%AE%9A%E5%A4%89%E6%9B%B4">設定変更</a></h2> <p>Apache の設定を変更することで <code>POST</code> の内容をロギングすることができました。</p> <pre><code class="bash"># less /etc/httpd/conf.modules.d/00-base.conf ## 略 LoadModule dumpio_module modules/mod_dumpio.so ## 略 </code></pre> <p><code>dumpio_module</code> が読み込まれていることを確認。</p> <pre><code class="bash"># vi /ect/httpd/conf/httpd.conf ## 略 #LogLevel warn DumpIOInput On DumpIOOutput On LogLevel debug dumpio:trace7 ## 略 </code></pre> <p>デフォルトの <code>LogLevel</code> である <code>warn</code> をコメントアウトして、 <code>LogLevel debug dumpio:trace7</code> に変更。古いサーバならば <code>dumpio:trace7</code> の部分がなくても行ける(むしろ <code>dumpio:trace7</code> を付けるとエラーになる)ようです。</p> <p>また、今回は入出力両方を見るために <code>DumpIOInput</code>, <code>DumpIOOutput</code> の両方を <code>On</code> にしました。</p> <pre><code class="bash"># systemctl reload httpd </code></pre> <p>これで Apache の設定再読み込み。</p> <pre><code class="bash"># 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 ## 略 </code></pre> <p>これで <code>error_log</code> に入出力が記録されていることを確認(上の例は WordPress の投稿編集画面で「更新」したものの一部)。大丈夫そうです。</p> <p>なお、 <code>error_log</code> が凄い勢いで増えてくので検証が終わったら設定をすぐに戻した方が良いですね。</p> <h2 id="参考"><a href="#%E5%8F%82%E8%80%83">参考</a></h2> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://qiita.com/whywaita/items/fa6f83f4f62fc431bf55">Apache 2.4でPOSTの内容をログに出力するときは"LogLevel debug"だけじゃ出てこない - Qiita</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://qiita.com/shyamahira/items/417234d169e331138c2c">ApacheでPOSTデータをログに記録したい - Qiita</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://qiita.com/edapo/items/61589f496e7c7169c9d0">HTTP POST でデータを送って中身を確認したい - Qiita</a></li> </ul> arm-band