
Plack は、RubyのRackとPythonのWSGIに触発されたPerl のWeb アプリケーション プログラミング フレームワークです。 [ 1 ] [ 2 ]また、 CatalystやDancerなどの他のフレームワークで使用されているPSGI仕様の背後にあるプロジェクトでもあります。[ 3 ] Plack を使用すると、ライブ Web サーバーなしで Perl Web アプリケーションをテストできます。[ 4 ]
Plackupは、コマンドラインからPSGIアプリケーションを実行するためのコマンドラインユーティリティです。 [ 5 ]
PSGI(Perl Web Server Gateway Interface)は、 Perlプログラミング言語で記述されたWebサーバーとWebアプリケーションおよびフレームワーク間のインターフェースであり、スタンドアロンサーバーとして、またはCGI、FastCGI、mod_perlなどを使用して実行できる移植可能なアプリケーションを作成できます。 [ 6 ]これは、PythonのWeb Server Gateway Interface、RubyのRack、JavaScriptのJSGIに触発されています。PSGIアプリケーションは、単一のハッシュ参照として引数を受け取り、 HTTPステータスコード、HTTPヘッダーの配列への参照、HTTPボディラインの配列(通常は生成されたHTMLドキュメント)またはファイルハンドルライクなオブジェクトへの参照の3つの要素の配列への参照を返すPerlサブルーチンです。
2023年5月現在 [ 7 ] Plack は以下のサーバーバックエンドをサポートしています:
デフォルトのスタンドアロンHTTPサーバーを使用する:
$ plackup app.psgi HTTP::Server::PSGI: http://0:5000/ で接続を受け付けていますFastCGIデーモンとしてUnixソケット上で動作し、 FastCGIをサポートするあらゆるWebサーバーで使用可能です。
$ plackup -s FCGI -listen /tmp/fcgi.sock app.psgi FastCGI: マネージャー (pid 3336): 初期化完了FastCGI: マネージャー (pid 3336): サーバー (pid 3337) 起動完了FastCGI: サーバー (pid 3337): 初期化完了1行で実行できる、動作する「Hello World」アプリケーション:
$ plackup -e 'sub { [200, ["Content-Type" => "text/plain"], ["Hello, world!"]] }' HTTP::Server::PSGI: http://0:5000/ で接続を受け付けています上記のコマンドは、すべてのローカルインターフェース(IPアドレス)のポート5000でリッスンするHTTPサーバーを起動し、すべてのHTTPリクエストに対して200 OKレスポンスを返します。
HTTP / 1.0 200 OK Date : Fri, 19 Mar 2010 23:34:10 GMT Server : HTTP::Server::PSGI Content-Type : text/plain Content-Length : 13 こんにちは世界! plackupマニュアル