プロバイダが用意している「CGI設置の手順」があれば必ずこれを読んでください。CGI の設置方法はプロバイダによって異なるので、これを読んで置かないと非常に悩むことになります。CGI を全くサポートしていないプロバイダもあります。プロバイダ固有の注意事項の例として次のものがあります。
ここでは、perl を用いたCGIの設置方法について述べますので、まず、perl のパス名(置かれている場所)を調べてください。私が加入している BIGLOBE では /usr/local/bin/perl となっています。他のプロバイダでは /usr/bin/perl だったり、/usr/local/bin/perl だったりするようです。CGI をサポートしているプロバイダであれば、perl のパス名くらいは説明していると思いますので、プロバイダ提供の説明書を参照してください。
[メモ帳] などのテキストエディタで次のようなテキストファイルを作成し、test1.cgi というファイル名で保存してください。これが CGI スクリプトと呼ばれるプログラムとなります。
#!/usr/local/bin/perl print "Content-type: text/html\n"; print "\n"; print "<html>\n"; print "<head>\n"; print "<title>テスト</title>\n"; print "</head>\n"; print "<body>\n"; print "これはCGIのテストです。\n"; print "</body>\n"; print "</html>\n";
1行目の #! の後にはperlのパス名を記述します。#! の前には空行や空白文字を入れないようにしてください。
print "..."; というperlの構文の中なので、<body>タグなどで使用するダブルクォーテーション(")は、\" と記述する必要があります。
Windowsの[メモ帳]で test1.cgi を保存しようとすると、test1.cgi.txt となってしまう場合は、[ファイル]-[名前をつけて保存] で test1.cgi ではなく、"test1.cgi" のように、ダブルクォーテーションで囲って保存してみてください。
ファイルを編集する際に、test1.cgi ファイルをダブルクリックしても駄目なときは、メモ帳の [ファイル]-[開く] で [ファイルの種類] を [すべてのファイル(*.*)] にして test1.cgi を選択するか、test1.cgi ファイルを [メモ帳] のアイコンにドラッグドロップしてみてください。
RIMNETなど一部のプロバイダ(NCSA httpdやApacheを利用しているサーバ)では、CGIを動作させるために CGIスクリプトと同じディレクトリ(フォルダ)に .htaccess というファイルを用意しなくてはなりません。 .htaccessの中身は次のように記述します。すでに .htaccess というファイルが設置されている場合は、そのファイルに次の行を追加するようにしてください。(すでに追加されている場合もあります。)
AddType application/x-httpd-cgi .cgi
.htaccessの最後の行の後ろで改行しておくのを忘れないようにしてください。この改行を忘れると、.htaccess ファイルが正常に機能しません。
.htaccess.txt になってしまう場合は、前述同様、".htaccess" で保存してください。
CGIスクリプトを、FFFTP や WS_FTP や Fetch などのFTPソフトでサーバーに転送します。 .htaccess が必要な場合は、これもあわせて転送します。この時、改行コードが適切なものになるように、[テキストモード]や[ASCIIモード]で転送するようにしてください。(→「改行コードについて」)
サーバーがUNIXの場合は(現在は多くのサーバーがUNIXです。)、CGIスクリプトのファイルのパーミッションを変更する必要があります。「パーミッションを変更するには」を参照して、CGIスクリプトのパーミッションを 755 (rwxr-xr-x) に変更してください。
サーバーに転送したCGIスクリプトを、通常のHTMLファイルと同様に、例えば次のようなURLを指定してブラウザから呼び出してください。「これはCGIのテストです。」と表示されれば、設置は完了です。
#!/usr/local/bin/perl や、print "..." などのCGIスクリプトがそのまま見えてしまう場合は、サーバーがCGIをサポートしていないか、.htaccess ファイルの設置が必要であるなどを意味しています。
サーバー上に設置して、http://~ で始まるURLで呼び出さないとCGIは動作しませんので注意してください。動作しない時は「CGIスクリプト作成時の注意」を参照してください。