Perl-CGIを使用する

Perl-CGIを使用するApacheの設定

CGIは、WEBページを見たユーザーの入力を受け付けたり、その結果で変わるコンテンツを表示したりするなど、いわば「動くページ」を作る技術です。
このWordPressなども動くコンテンツになりますが、最近の動くコンテンツはPHPが主流で、perlのcgiはあまり見かけなくなりました。
もし、こうしてVPSで構築したWEBサイト上で、CGIも動かす必要があるなら、幾つか変更する箇所があります。
これもVPS提供会社により、若干の違いはありますが、さくらVPSでは、インストール段階でCGIを動かすためのperlというプログラムが標準でインストールされています。
そのperlの実行ファイルは、/usr/bin/perl にあります。

# /usr/bin/perl -v

This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi

一方、CGIの多くは、プログラムの先頭に

#!/usr/local/bin/perl

と、記載されている事が多いようです。
この場合、/usr/local/bin/perl でプログラムを実行してね という意味なのですが、先ほどのように、perlは /usr/bin/perl にあり、このままでは、

# /usr/local/bin/perl -v
bash: /usr/local/bin/perl: No such file or directory

実行しようとすると、「そんなファイルもディレクトリもないよ」と叱られてしまいます。
そこで

# ln /usr/bin/perl /usr/local/bin/perl

/usr/bin/perl へのリンクを、/usr/local/bin/perl に作成するという、シンボリックリンクの作成コマンドを与えます。
すると、

# /usr/local/bin/perl -v

This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi

と、/usr/local/bin/perl でも perlが実行できるようになりました。

vi /var/www/html/test.cgi

#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n";
print "<title>test</title>\n";
print "</head>\n";
print "<body>\n";
print "CGI-test\n";
print "</body>\n";
print "</html>\n";

上記のCGIファイルをviエディタで作成し、http://[サーバーのipかドメイン名]/test.cgi で接続すると、cgiが実行できます。

古い掲示板などを自分のサイトで再現する時などに、お役立てください。

前の記事

WordPressのセキュリティ

次の記事

OP25bとは