jigen studylog » lighttpd

jigen, Hirotomo Kunimatsu
Tokyo, Japan
mailto: microformat hcard
top

lighttpd のログ設定

lighttpd のログ設定以前、lighttpdでURLをrewriteというエントリーで、lighttpdヴァーチャルホストの設定とURLリライトルールに関して書いたけど、アクセスログエラーログの設定が微妙に調べ切れなかったので、ちょっと調べてみた。

結局、設定名がエラーログと、アクセスログとで違う所が分かりにくくしている原因だった。

ここら辺に書いてあるんだけど、「accesslog.filename」をそのまま「error.filename」とかにするとエラーが出る。んで色々調べた結果「server.errorlog」という名前で設定すれば良かった。

以下に一応設定を書いておく、カスタムログの形式もここに書けるみたい。

$HTTP["host"] =~ "host\.example\.com" {
    accesslog.format = "%h %l %u %t \"%r\" %b %>s \"%{Referer}i\" \"%{User-Agent}i\" \"%{X-LIGHTTPD-SID}o\"",
    server.document-root = "/path/to/document-root/",
    server.errorlog = "/path/to/error.log",
    accesslog.filename = "/path/to/access.log",
    url.rewrite-once = (
        "^/css/(.+)?$" => "$0",
        "^/img/(.+)?$" => "$0",
        "^/(.+)?$" => "/index.php/$1"
    )
}

整理しておこう

アクセスログ
accesslog.filename = “/path/to/access.log” の形式で書く
エラーログ
server.errorlog = “/path/to/error.log” の形式で書く

というか、命名ルールをもうちょっと考えて欲しかったなぁ・・・。これバージョンアップとかで変わったりするとドヨーンとした気分になるぞ orz


2008/06/17 16:34:51200816:34

lighttpdのlogrotate設定

lighttpdのlogrotate設定elanbeat’s wiki経由。lighttpdを入れてログをlogrotateしてたんですが、ちゃんと再起動してくれないみたいで、困ったなと思ってた時に見つけた物。

ま、要するにpidを保存してあるファイルを指定してあげた方が良いでっせ。という事らしい。

/path/to/lighttpd/*log {
    missingok
    notifempty
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /path/to/lighttpd.pid 2>/dev/null` 2> /dev/null || true
    endscript
}

上のようにlogrotate.dの中に置いてある設定ファイルを書く感じ。もちろんpidのファイルの場所と、ログの場所は変更する必要アリ。


2007/12/06 18:45:16200718:45

lighttpdでURLをrewrite

lighttpdでURLをrewriteちょと、サーバーの負荷が高くなってきたのでlighttpdはどうだろうかと思って色々試している(まだ公開してないけど)。rhacoでもなんか作りたいので、rhacoがlighttpdで動作するのかとかも含めてやっとります。

今回は自分でも忘れそうな部分だけですが、設定でApacheでいうmod_rewriteのようなURL書き換え機能の設定をメモ。

何をしたいかと言えば、「http://example.com?id=1&name=hoge」とかを「http://example.com/1/hoge/」とかで処理したいわけでやんす。逆にいうと「1/hoge/」の部分をgetで渡しちゃった方がいいかなという事で以下のような設定になるそうです。

lighttpdはApacheのようなディレクトリ毎の「.htaccess」のような設定ファイルは使えないので、lighttpd.confなどのlighttpdを設定するファイルの方に書く必要があります。

$HTTP["host"] =~ "sub.example.com" {
  server.document-root  = "/path/to/document/root/"
  url.rewrite-once = ( "^/(.+)$" => "/index.php?pathinfo=$1" )
}

ちなみに、上はVirtualHostを設定していて「sub.example.com」というホストでアクセスしてきたらで、ドキュメントルートの設定とRwriteルールを設定している。また、index.phpにgetパラメータでpathinfoという名前で上記「1/hoge/」に当たる値を取れるようにしてる。

server.modules              = (
                               "mod_rewrite",
                               "mod_evhost")

また、上記のmoduleの部分でmod_rewriteの部分がデフォルトだとコメントアウトしてあるのでこれを外さないとダメ。モジュールの名前はmod_rewriteでApacheと同じでやんすね。

ちょと情報が錯綜しますがrhacoはlighttpdでもちゃんと動作しました(当たり前か)。メデタシメデタシ。


2007/11/09 17:16:11200717:16
ネズミ「ここからメニューだすよ」
ネズミ「ごちそういっぱーい」
ネズミ「腹へったー」
ネズミ「働けー働けー♪」