Contenu connexe
Similaire à PSGIへの誘い (20)
Plus de azuma satoshi (20)
PSGIへの誘い
- 3. PSGIとは?
● Webサーバレイヤを抽象化するための仕様。
● http://d.hatena.ne.jp/keyword/PSGI
● Plack
● PerlでのPSGIリファレンス実装
● 類似品(というか大体は兄貴分みたいなの)
● Ruby
– Rack
● Python
– WSGI
- 8. PSGIならこうなる
● 下記ファイルをapp.psgiとして保存。
use strict;
my $body = <<EOF;
<html>
<body>
<h1>Hello, world!</h1>
</body>
</html>
EOF
sub {
[
200,
[ 'Content-Type' => 'text/html' ],
[ $body ]
]
};
- 9. PSGI-appの基本
use strict; ← shebang(#!/usr/bin/env perl)は無し。
my $body = <<EOF;
<html>
<body>
<h1>Hello, world!</h1>
</body>
</html>
EOF
sub {
[
200,
[ 'Content-Type' => 'text/html' ],
[ $body ]
]
};
- 10. PSGI-appの基本
use strict;
my $body = <<EOF;
<html>
<body>
<h1>Hello, world!</h1>
</body>
</html>
EOF
sub {
[
200,
[ 'Content-Type' => 'text/html' ],
[ $body ]
]
};← PSGI-appは、コードリファレンス(sub {...})を返す。
- 11. PSGI-appの基本
use strict;
my $body = <<EOF;
<html>
<body>
<h1>Hello, world!</h1>
</body>
</html>
EOF
sub {
[
200,
[ 'Content-Type' => 'text/html' ],
[ $body ]
] ← コードリファレンスは、配列リファレンスを返す。
};
- 12. PSGI-appの基本
use strict;
my $body = <<EOF;
<html>
<body>
<h1>Hello, world!</h1>
</body>
</html>
EOF
sub {
[
200, ← レスポンスコード。
[ 'Content-Type' => 'text/html' ], ← HTTPレスポンスヘッダ
[ $body ] ← HTTPボディ
]
};
- 13. CGIのデプロイ(?)
● httpデーモン(Apacheとか)側での設定
● 特定のパス以下にリクエストが来た場合にCGIを実行
する指定
● 上記で指定されたパスに相当するディレクトリにプログ
ラムを設置
● プログラムに実行権限を与える(パーミッションの設定)
- 14. PSGI-appのデプロイ
● あらかじめサーバにPlackをインストールしておく
● cpanm Plack
● plackupコマンドでアプリケーションサーバを起動
● plackup ./app.psgi
- 15. デプロイの相違点
● app.psgiに実行権限を与える必要はない
● apacheなどのhttpデーモンを必要としない
- 17. PSGIを導入できる条件
● SSHなどでシェルを実行できる環境であること
– いわゆるレンタルwebスペースだと、この点はクリアできない
●
プロセスを常駐させても怒られないこと
– いわゆるレンタルwebスペースだと(ry
● (必須じゃないけど推奨)perlbrew+cpanmが使えること
– いわゆるレン(ry
- 18. オススメのデプロイ先
● VPS
● さくらVPS
● WebARENA
●
などなど。。。
● お手持ちのMac
●
自宅サーバ
● 各種LinuxやBSDなど
● PaaS
● DotCloud
– 但しデプロイ方法が独特。慣れると楽。
- 19. まとめ
● PSGIは難しくない
● CGIより簡単
● デプロイするにはそれなりの環境が必要。
● CGIみたいにレンタルスペースじゃ動かせない
● VPS/自宅サーバ/MacBookあたりがあれば楽々。
● 今から学習するなら、断然PSGI
● CGIについて学習するのがダメなんじゃなくて、先に
PSGIを触っておいたほうが、動くものを手早く作れる。
● PSGIならWAFも色々あるよ!
● まずは恐れずにPSGIを触ろうよ!
- 20. さいごに
Twitterで #perl 付けて
「教えてください」っていうと、
意外と教えてくれる人がいるかもしれないので
やってみるといいんじゃないでしょうか。