プロバイダのサーバにCGI(特にperlという言語を用いて作成したCGI)を設置する手順を説明します。
CGIの設置を始めるまでに、プロバイダが用意している「CGI設置の手順」があれば必ずこれを読んでください。CGIの設置方法はプロバイダによって異なるので、これを読んで置かないと非常に悩むことになります。中にはCGIを全くサポートしていないプロバイダもあります。よく見かけるプロバイダ固有の注意事項として次のものがあります。
- プロバイダがCGIをサポートしていない。
- プロバイダが用意したCGIしか利用できない。
- CGIスクリプトの拡張子(ファイル名の後ろ部分)は .cgi でなくてはならない。
- CGIスクリプトを置いたディレクトリ(フォルダ)に .htaccess を設置しなくてはならない。
- CGIスクリプトを設置するディレクトリが決められている。
- 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 BGCOLOR=\"#FFCCCC\">\n"; print "これはCGIのテストです。\n"; print "</BODY>\n"; print "</HTML>\n";1行目の #! の後にはperlのパス名を記述します。#! の前には空行や空白文字を入れないようにしてください。
print "..."; というperlの構文の中なので、<BODY>タグなどで使用するダブルクォーテーション(")は、\" と記述する必要があります。
Windowsの[メモ帳]で test1.cgi を保存する場合は、ファイル名が test1.cgi.txt となってしまうことがあります。この場合は、一度 test1.cgi.txt で保存して、エクスプローラー(Internet Explorerではない)から[ファイル]-[名前の変更]などの機能を用いてファイル名を test1.cgi.txt から test1.cgi に変更してください。
RIMNETなど一部のプロバイダ(NCSA httpdやApacheを利用しているサーバ)では、CGIを動作させるために CGIスクリプトと同じディレクトリ(フォルダ)に .htaccess というファイルを用意しなくてはなりません。 .htaccessの中身は次のように記述します。すでに .htaccess というファイルが設置されている場合は、そのファイルに次の行を追加するようにしてください。(すでに追加されている場合もあります。)
AddType application/x-httpd-cgi .cgi.htaccessの最後の行の後ろで改行しておくのを忘れないようにしてください。この改行を忘れると、.htaccess ファイルが正常に機能しません。
Windowsの[メモ帳]で .htaccess を作成しようとすると .htaccess.txt になってしまう、エクスプローラーで .htaccess.txt を .htaccess にファイル名変更しようとすると「ファイル名を入力してください」というエラーになるという問題があるようです。この場合、一度、.htaccess.txt という名前でサーバーに転送し、FTPソフト(FFFTPやFetchなど)の機能で、サーバー側にアップしたファイルの名前を直接変更してみてください。(DOSプロンプトのRENコマンドでファイル名変更する方法もあります。)
CGIスクリプトを、FFFTP や WS_FTP や Fetch などのFTPソフトでサーバーに転送します。 .htaccess が必要な場合は、これもあわせて転送します。この時、改行コードが適切なものになるように、[テキストモード]や[ASCIIモード]で転送するようにしてください。(→「改行コードについて」)
サーバーがUNIXの場合は(現在は多くのサーバーがUNIXです。)、CGIスクリプトのファイルのパーミッションを変更する必要があります。「パーミッションを変更するには」を参照して、CGIスクリプトのパーミッションを 755 (rwxr-xr-x) に変更してください。
サーバーに転送したCGIスクリプトを、通常のHTMLファイルと同様に、例えば次のようなURLを指定してブラウザから呼び出してください。「これはCGIのテストです。」と表示されれば、設置は完了です。http://www2e.biglobe.ne.jp/~s-hasei/test1.cgi#!/usr/local/bin/perl や、print "..." などのCGIスクリプトがそのまま見えてしまう場合は、サーバーがCGIをサポートしていないか、.htaccess ファイルの設置が必要であるなどを意味しています。
サーバー上に設置して、http://〜 で始まるURLで呼び出さないとCGIは動作しませんので注意してください。動作しない時は「CGIスクリプト作成時の注意」を参照してください。