ニフティホームページでCGIを(3)

前回の記事: なおさん亭::別館: ニフティホームページでCGIを(2).

CGIを作るための情報は集まったので、まずはテストをしてみよう。手持ちの適当なテキストエディタ(Windows標準の「メモ帳」でもOK)で、以下のようなCGIスクリプトを作ってみる。この内容をコピー・ペーストして、test.cgiという名前で保存する。

#!/usr/local/bin/perl
print "Content-type: text/html;\n\n";
print "Hello, World.\n";

ものすごくシンプルなものだが、基本となる形なので、これが動くことをまず確認しておかなければならない。

CGIスクリプトを作成したら、それを@Hompageのサーバに転送する。手持ちの適当なFTPクライアントを使い、/cgi-binへアップロードする。ホームページを開設しているような人であれば、FTPクライアントのひとつやふたつは持っていて、かつ使いこなしているだろうから詳細は省略するが、アップロードの際の注意点としては、コード変換は行わない、改行コードの変換は行う、すなわちテキストモード(ASCIIモード)を指定することだ。多くのFTPクライアントソフトでは、拡張子が.cgiである場合には、自動的にテキストモードを選択してくれる。

Windowsでは改行はCR/LFという2文字で構成されるのだが、UNIX系ではLFという1文字のみで構成されるので、そのままだとCGIの実行時にエラーとなってしまう。

/cgi-binへのアップロードが終了したら、アップロードしたファイル(test.cgi)のパーミッションを変更する。パーミッションとは、UNIX系OSに特有の概念で、文字どおり許可のことだ。ファイルをアップロードすると、普通のファイルとして保存されるので、CGIとして実行できるように、「実行可能」という許可を与える必要がある。これは、FTPクライアントソフトの「属性の設定」や「パーミッションの設定」などの機能を使って行う。ちなみに、「FFFTP」というFTPクライアントソフトでは、「属性変更」である。この機能を使って、実行を許可するように設定を行う。

パーミッションは、オーナー、グループ、その他、という3つの階層に分けて指定できるが、とりあえずすべてに対して実行を許可してしまってよい。ただし実際には、「その他」のみがCGIの実行時に影響する。

パーミッションを変更したら、とりあえずCGIを実行してみよう。CGIを呼び出すときのURLは、http://hpcgi?.nifty.com/user/test.cgiだ。?とuserは、自分のものに置き換えること。

Nifty_cgi_test_01 クリックすれば拡大します。

このとおり、CGIが実行され、「Hello, World.」というメッセージがWebブラウザの画面に表示される。ここで、実行したCGIスクリプトの内容を検証してみよう(うむうむ。何となくプログラミングのネタらしくなってきた)。

#!/usr/local/bin/perl

これは、前回も書いたが「シェバング」というPerlを使うための指定である。このCGIを実行するときには、Perlの本体である/usr/local/bin/perlが使われる。

print "Content-type: text/html;\n\n";

これは、CGI独特のおまじないのようなもので、ほかの何かを書き始める前に、必ず記述しておかなければならない。要はこれから送るのがHTMLだぞ、と教えるためのものだ。このような指定は、MIMEタイプと呼ばれる。

print "Hello, World.\n";

最後のこれが、Webブラウザに表示される本体のようなものだ。「Hello, World.」をprintしろ、という意味になるのだが、CGIとは基本的にこのように「何かを書き出す」ことをひたすら繰り返すものと思っていればよろしい。書き出す何かというのは、CGIプログラムの目的によって変わるわけだ。これをプログラムすることが、CGIを作るということに他ならない。

テストがうまく行くようなら、オリジナルのCGIを作って動かしてみることができる。それについてはまた次回。

コメント