Helper::Lighttpd #4

MIME::Types が入ってたらそっからがーって mimetype.assign をはくようにした。

てけとう。

でも、mime-typeが指定されてなくて困るのは、FirefoxでCSSが適用されないってぐらいな気がするというかそんな感じなのでとりあえずこれで。

by typester / at 2006-09-09T16:19:00 / perl · catalyst · lighttpd / Comment

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 するとき以外は。

by typester / at 2006-09-09T15:49:00 / perl · catalyst · lighttpd / Comment

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を返す正しい方法が何かあるのだろうか?

by typester / at 2006-09-09T15:00:00 / perl · lighttpd / Comment

Helper::Lighttpd #2

昨日のやつ、

Fixes Engine::CGI for Lighttpd - typester's vox

このパッチ当てないとうまく動かんよ、って書くの忘れてた。

あと、myapp_lighttpd.pl に -p オプションつけるとlighttpdの設定を標準出力に出すようにしてみた。

これで、lighttpd.confで

include_shell "/path/to/myapp_lighttpd.pl -p -approot /myapp/"

とか書くだけで設定完了みたいな。

まだオプション足りなくて設定きめうちで微妙だけど、なんかいいアイデアな気がする。

by typester / at 2006-09-09T11:39:00 / perl · catalyst / Comment

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で。

by typester / at 2006-09-08T18:34:00 / perl · catalyst / Comment

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のログのほうに吐き出されてしまうのでびみょい。

なんとかなんないかなぁと、田中さんに相談中。

by typester / at 2006-09-08T13:08:00 / perl · catalyst / Comment

Larryのフィギュア

Charsbar::Note - Larry Wallのフィギュア

おー、ingyとかaudreyとかのフィギュアもあわせてsubtech入りたいを再現したい。

by typester / at 2006-09-04T17:03:00 / perl / Comment

Chained

Chainedアクションを使って、/ユーザー名/... だとそのユーザーのエントリを表示。

/... だと全員のエントリを表示するアプリケーションの例。

最後にはてなっぽく /ユーザー名/profile もつけてある。

package MyApp::Controller::UserView;

use strict;
use warnings;
use base 'Catalyst::Controller';

sub user_detect :Chained('/') :PathPart('') :CaptureArgs(1) {
    my ($self, $c, $user) = @_;
    $c->stash->{user} = $c->model('DBIC::User')->find({ username => $user })
        or $c->detach('/default');
}

sub user_root :Chained('user_detect') :PathPart('') :Args(0) {
    my ($self, $c) = @_;
    $c->forward('/view/index');
}

sub user_tag :Chained('user_detect') :PathPart('tag') :Args(1) {
    my ($self, $c, $tags) = @_;
    $c->forward('/view/tag');
}

sub user_year :Chained('user_detect') :PathPart('') :Args(1) {
    my ($self, $c, $year) = @_;
    $c->forward('/view/year');
}

sub user_month :Chained('user_detect') :PathPart('') :Args(2) {
    my ($self, $c, $year, $month) = @_;
    $c->forward('/view/month');
}

sub user_day :Chained('user_detect') :PathPart('') :Args(3) {
    my ($self, $c, $year, $month, $day) = @_;
    $c->forward('/view/day');
}

sub user_permalink :Chained('user_detect') :PathPart('') :Args(4) {
    my ($self, $c, $year, $month, $day, $id) = @_;
    $c->forward('/view/permalink');
}

sub user_profile :Chained('user_detect') :PathPart('profile') :Args(0) {
    my ($self, $c) = @_;

    $c->stash->{template} = 'user/profile.tt';
}

1;

うーん、微妙w

:Chained('/') :PathPart('')

はあんまりやらないほうがよさげ。

by typester / at 2006-09-02T22:13:00 / perl · catalyst / Comment

Chainedアクションを覚えた

便利ねー。これで Plugin::Flavour の半分はいらなくなったから削ってシンプルにしようかと思う。

CaptureArgsやArgsをRegexで指定できたらもっとあついなぁ。

引数の数は同じだけど振り分けられる的な。

by typester / at 2006-09-02T16:29:00 / perl · catalyst / Comment

Text::Tags::Parser

いつも名前忘れるなぁ。

by typester / at 2006-09-02T12:42:00 / perl / Comment

12 13 14 15 16 17 18 19 20 21

(Page 16 of 30)