Helper::Lighttpd #3
-d
オプションもつけた。-Debug
してなくてもデバッグ出力できるやつ。まぁserver.pl
と同じ。
$ ./script/myapp_lighttpd.pl -l /usr/sbin/lighttpd -d
2006-09-09 15:45:39: (log.c.75) server started
[debug] Debug messages enabled
[debug] Loaded plugins:
.----------------------------------------------------------------------------.
| Catalyst::Plugin::ConfigLoader 0.13 |
| Catalyst::Plugin::Static::Simple 0.14 |
'----------------------------------------------------------------------------'
[debug] Loaded dispatcher "Catalyst::Dispatcher"
[debug] Loaded engine "Catalyst::Engine::FastCGI"
[debug] Found home "/home/typester/tmp/MyApp"
[debug] Loaded Config "/home/typester/tmp/MyApp/myapp.yml"
[debug] Loaded components:
.-----------------------------------------------------------------+----------.
| Class | Type |
+-----------------------------------------------------------------+----------+
| MyApp::Controller::Root | instance |
'-----------------------------------------------------------------+----------'
[debug] Loaded Private actions:
.----------------------+--------------------------------------+--------------.
| Private | Class | Method |
+----------------------+--------------------------------------+--------------+
| /default | MyApp::Controller::Root | default |
| /end | MyApp::Controller::Root | end |
'----------------------+--------------------------------------+--------------'
[info] MyApp powered by Catalyst 5.7001
Yes! YEs!
あとは静的ファイルの mime-types をちゃんとサポートすれば、server.plいらない気がする。
perl -d するとき以外は。
error-handler-404 で指定したスクリプトで 404 返すと
2006-09-09 14:58:36: (connections.c.1422) Warning: Either the error-handler returned status 404 or the error-handler itself was not found: /script/myapp_fastcgi.pl 2006-09-09 14:58:36: (connections.c.1424) returning the original status 404 2006-09-09 14:58:36: (connections.c.1426) If this is a rails app: check your production.log
とか言われるわけだが、404を返す正しい方法が何かあるのだろうか?
Helper::Lighttpd #2
昨日のやつ、
このパッチ当てないとうまく動かんよ、って書くの忘れてた。
あと、myapp_lighttpd.pl に -p オプションつけるとlighttpdの設定を標準出力に出すようにしてみた。
これで、lighttpd.confで
include_shell "/path/to/myapp_lighttpd.pl -p -approot /myapp/"
とか書くだけで設定完了みたいな。
まだオプション足りなくて設定きめうちで微妙だけど、なんかいいアイデアな気がする。
vox のブログをplaget catalystに追加してもらえばとか言われたけど、あの面子にはいるとかこわすぎるので断ったりたかったんだけど、柔らかく断るフレーズが出てこなかったので軽く無視しておいた。
恐れ多いのでいいです
とかって英語でなんていう?
- 恐れ多いのでいいです
- いいです、恐れ多いし
- No thank you, 恐れ多いし
あとだれk!
Catalyst::Helper::Lighttpd
とか作った。
http://svn.unknownplace.org/public/library/perl/trunk/Catalyst-Helper-Lighttpd/
これいれると、
./script/myapp_create.pl Lighttpd
でscriptディレクトリにmyapp_lighttpd.plができる。これがlighty使ったテストサーバー。
lighttpdにPath通ってれば
./script/myapp_lighttpd.pl
叩くだけでOK。デフォポートは3000。他オプションは-h
で。
FastCGIでテストサーバーしたい!
$ CATALYST_DEBUG=1 ./script/myapp_fastcgi.pl -l :3001 [debug] Debug messages enabled [debug] Loaded plugins: .----------------------------------------------------------------------------. | Catalyst::Plugin::ConfigLoader 0.13 | | Catalyst::Plugin::Static::Simple 0.14 | '----------------------------------------------------------------------------'
[debug] Loaded dispatcher "Catalyst::Dispatcher"
[debug] Loaded engine "Catalyst::Engine::FastCGI"
[debug] Found home "/home/typester/tmp/MyApp"
[debug] Loaded Config "/home/typester/tmp/MyApp/myapp.yml"
[debug] Loaded components:
.-----------------------------------------------------------------+----------.
| Class | Type |
+-----------------------------------------------------------------+----------+
| MyApp::Controller::Root | instance |
'-----------------------------------------------------------------+----------'
[debug] Loaded Private actions:
.----------------------+--------------------------------------+--------------.
| Private | Class | Method |
+----------------------+--------------------------------------+--------------+
| /default | MyApp::Controller::Root | default |
| /end | MyApp::Controller::Root | end |
'----------------------+--------------------------------------+--------------'
[info] MyApp powered by Catalyst 5.7001
FastCGI: manager (pid 3003): initialized
FastCGI: server (pid 3004): initialized
FastCGI: manager (pid 3003): server (pid 3004) started
こんな感じで、CatalystのFastCGIプロセスをDebugモードでかつデーモンじゃなく起動して、組み込みのテストサーバー代わりにしたいのだけど、上記以降の出力は全部lighttpdのログのほうに吐き出されてしまうのでびみょい。
なんとかなんないかなぁと、田中さんに相談中。