CGI設置の例として、私が BIGLOBE(NECのプロバイダ)に、perl を用いた CGIを設置した時の手順を説明します。他のプロバイダや自分でサーバーを構築している場合のメモも追記してあります。
プロバイダが用意している「CGI設置の手順」などがあれば、これを読みます。プロバイダ毎に設置方法は微妙に異なりますので、まず最初に目を通しておきます。そもそも、CGIをサポートしていないプロバイダもあります。以下のような注意書きもよく見かけます。
- CGIスクリプトのファイル名は .cgi で終わらなくてはならない。
- CGIスクリプトを置いたディレクトリに .htaccess という名前のファイルを置かなくてはならない。
- CGIスクリプトを設置するディレクトリ(フォルダ)が決められている。
- CGIスクリプトは別のサーバーに設置しなくてはならない。
- CGIスクリプト設置後、プロバイダにメールを送らなくてはならない。
perlのパス名(置かれている場所)を調べます。BIGLOBEの場合は /usr/mesh/bin/perl であると説明書に記述してありました。他のプロバイダでは /usr/bin/perl だったり、/usr/local/bin/perl だったりするようです。
[メモ帳]などのテキストエディタで次のようなテキストファイルを作成し、test1.cgi というファイル名で保存します。これが CGIスクリプトと呼ばれるプログラムです。
#!/usr/local/bin/perl print "Content-type: text/html\n"; print "\n"; print "<HTML>\n"; print "<HEAD>\n"; print "<TITLE>CGIのテスト</TITLE>\n"; print "</HEAD>\n"; print "<BODY BGCOLOR='#FFFFFF' TEXT='#000000'>\n"; print "これはCGIのテストです。\n"; print "</BODY>\n"; print "</HTML>\n";1行目の #! の後にはperlのパス名を記述します。BIGLOBEの場合は #!/usr/mesh/bin/perl となります。#! の前には空行や空白文字を入れないようにしてください。
ファイル名が test1.cgi.txt となってしまう場合は、一度 test1.cgi.txt で保存した後、ファイル名変更してください。
CGIスクリプトを、FFFTP や WS_FTP や Fetch などのFTPソフトでサーバーに転送します。この時、改行コードが適切なものになるように、[テキストモード]や[ASCIIモード]で転送するようにしてください。(→「改行コードについて」)
サーバーがUNIXの場合は(現在は多くのサーバーがUNIXです。一部 Windows NT やその他のサーバーがあります)、CGIスクリプトのファイルのパーミッションを変更する必要があります。「パーミッションを変更するには」を参照して、CGIスクリプトのパーミッションを 755 (rwxr-xr-x) に変更してください。
サーバーに転送したCGIスクリプトを、通常のHTMLファイルと同様に、次のようなURLを指定してブラウザから呼び出してください。「これはCGIのテストです。」と表示されれば、設置は完了です。http://www2e.biglobe.ne.jp/~s-hasei/test1.cgiサーバー上に設置して、http://〜 で始まるURLで呼び出さないとCGIは動作しませんので注意してください。動作しない時は「CGIスクリプト作成時の」を参照してください。