扶凯

取势 明道 优术

作者为 扶 凯 发表

Plack 的应用在 Plack::App 的名字空间下,CPAN 附带了非常多现成并且非常好用的 PSGI 的现成的应用.他们非常的方便和实用.这次的例子主要讲的是 Plack::App::File 和 Plack::App::Directory 这二个应用.
Plack::App::File 它的应用是转换一个请求象 /foo/bar.html 到本地的文件 /path/to/htdocs/foo/bar.html ,然后打开这个文件句柄,返回给 PSGI 来做响应. 所以这个有点象 lighttpd,nginx和Apache 之类的静态服务器.
Plack::App::Directory 是帮对 Plack::App::File 进行扩展的一个功能,给目录来自动生成 index 文件来列出目录下的内容,就象 Apache 的 mod_autoindex .
使用这个应用是极为简单的,只要写一个象下面一样的 .psgi 的文件:

use Plack::App::File;
my $app = Plack::App::File->new(root => "$ENV{HOME}/public_html");

然后使用 plackup 来运行

$ plackup file.psgi

现在你能测试一下,打开 ~/public_html 目录中的文件 http://localhost:5000/somefile.html .
你也能使用 Plack::App::Directory 这样,可以在打开目录时,显示目录内的文件列表,这次我们是使用的 plackup 的单行命令.没使用 .psgi 的文件.

$ plackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root => "$ENV{HOME}/Sites");'
HTTP::Server::PSGI: Accepting connections at http://0:5000/

plackup 的命令,使用方法很象普通的 Perl 单行命令,可以使用 -I (include path), -M (加载模块) 和 -e (执行后面的代码到 eval).也容易的加载Plack::App::* 的应用,如果没有必要,可以不需要写 .psgi 的文件.

 以上为我的译文,原文:

http://advent.plackperl.org/2009/12/day-5-run-a-static-file-web-server-with-plack.html

 

来了就留个评论吧! 2个评论



    chonglinsun 2012年01月31日 的 12:41

    您好,我用这种方法显示网页出现乱码, 怎么能够解决呢?