令和の時代にPerlでCGIの開発環境をPlackで構築する方法
令和の時代にPerl/CGIでwebアプリを作りたくなったので、まずは開発環境を構築していく。
開発環境について
- Perl 5.40.2
- cpm
個人的にはmodule installerとしてはcpm
を使っているが、cpanでもcpanmでも
何でも良い。
また、Perlのバージョンは5系であれば何でも良い。
1.必要なモジュールのインストール
今回はPlack
を使うことでCGIの開発環境を整えていく。(厳密にはCGI Serverに特化したPlack::App::CGIBin
だが)
必要なモジュールをインストールしよう。
cpm install -g Plack Plack::App::CGIBin CGI::Compile
Plack
だけインストールすれば良いかと思えばそうではなく、他にも色々なモジュールを
インストールする必要があった。
僕の場合はCGI::Compile
のインストールが必要だった。
2.必要なスクリプトを作成する。
まずはapp.psgi
を作成する。
#!/usr/bin/env perl
# app.psgi
use strict;
use warnings;
use Plack::App::CGIBin;
sub {
my $env = shift;
# 全てのアクセスをindex.cgiに転送
$env->{PATH_INFO} = '/index.cgi';
return Plack::App::CGIBin->new(root => ".")->to_app->($env);
};
次に同じディレクトリにindex.cgi
を作成する。
#!/usr/bin/perl
# index.cgi
use strict;
use warnings;
use utf8;
# 標準出力をUTF-8に設定
binmode STDOUT, ":utf8";
print "Content-Type: text/html; charset=UTF-8\n\n";
print "<html><head>";
print "<meta charset=\"UTF-8\">";
print "</head><body>";
print "<h1>Hello from Perl CGI!</h1>";
print "<p>現在時刻: " . localtime() . "</p>";
print "</body></html>";
そして、index.cgi
の権限を変更しよう。
chmod +x index.cgi
そして、以下のコマンドを実行すれば上手くCGI Serverが立ち上がる!
plackup -o 127.0.0.1 -p 8000 -R . app.psgi
これでhttp://127.0.0.1:8000/
でアクセスできる。
もしモジュールがインストールされていない系のエラーが出た場合は、そのモジュールを入れること。