読者です 読者をやめる 読者になる 読者になる

AWS / PHP / Python ちょいメモ

amazon web service , PHP, Python を使ったときのメモ。日本語でググってもわからなかった事を中心に。

Apache2.4.x on Ubuntu12.04 で、mod_rewriteのログを取得

Apache2.4.x on Ubuntu12.04でmod_rewriteのログを取得したいときの設定。

2.2と2.4は、大きく違うんですね。追いかけてなかったから全然知らなかった。読めば、ちゃんとconfファイルにコメントされてるけど。。。


例)デフォルトサイト設定を変更する:

  • /etc/apache2/sites-available/000-default.conf
 # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
 # error, crit, alert, emerg.
 # It is also possible to configure the loglevel for particular
 # modules, e.g.
 #LogLevel info ssl:warn
 LogLevel rewrite:trace8

trace8が一番詳しく、trace1まで段階的に絞れます。ログをみれば、毎行 traceN と表記があるので欲しいレベルに合わせるのが良さそう。

なおパフォーマンスが著しく落ちるので、trace2より大きいい値は、デバッグのみで使うようにとマニュアルに注意書きがありました。

そもそも & バージョンの違い

Rewriteモジュールが上手く動いてない気がしたのでログをとろうと思ったのですが、ちょとGoogleさんに聞いた情報が上手くいかない。どうやらバージョン番号を指定しないでRewriteだけで探してたのが原因のもよう。

Rewriteモジュールの動作を検証したかったのに、そのログを取得する方が時間がかかった。。。

参考

とりあえず .htaccess に test とか書いてみて、500エラーが発生するかどうか見てみようというところ、目からウロコな発想でした!感謝。

ちゃんとCore Enhancementsにのってますね

Per-module and per-directory LogLevel configuration
    The LogLevel can now be configured per module and per directory. 
New levels trace1 to trace8 have been added above the debug log level.

その他

mod_rewrite系だと、こんなのもありました。詳細しらないので、発見しただけレベル。

  • RewriteRule に [QSD] (Query String Discard) と [END] フラグが加わった
  • RewriteCond で complex boolean expressions が使えるようになった
  • RewriteMap の関数として the use of SQL queries が許可されるようになった
  • RewriteLock ディレクティブというのも、2.4ではないようです。