トラブルシューティングトラブルシューティングCGIの設置について技術的なことで、お客様がお困りになられたときの対処法を紹介しています。私どもに寄せられたトラブル、お問い合わせなどから多数寄せられた内容をまとめたものです。原因特定は難しいですが、以下のような原因が考えられます。FTP転送した際に、転送モードが間違っているFTPソフトの転送には『アスキーモード(テキストモード)』と『バイナリモード』の2種類があります。アスキーモードはテキストファイルなどを転送するときに、バイナリモードは画像ファイルや音声ファイルなどを転送するときに使用します。CGIスクリプトはテキストファイルなので、このファイルを転送するときはアスキーモードで転送します。CGIスクリプトをバイナリモードで転送してしまった場合にはこのエラーメッセージになるので、FTPクライアントの転送モードをもう一度確認してみましょう。スクリプトを修正する際に誤った記述をして文法エラーが発生しているCGIスクリプトの設定部分をエディタで修正する際に、誤った修正をしてしまいCGIスクリプトが文法エラーを起こしている場合があります。行の最後のセミコロン(;)をとってしまっていないか、等スクリプト先頭行のPerlのパスの記述が正しくないPerlスクリプトの先頭行には、"/usr/local/bin/perl"などという「Perlのパス」が記述されています。これは大変重要な一行です。この記述を誤ると、そのCGIはまったく動きません。この一行の前に空白や改行があっても動きませんのでご注意ください。シーサイドネットでは、以下のパスが有効になっています。一度確認してみましょう。"/usr/local/bin/perl""/usr/bin/perl""/usr/sbin/perl"パーミッションが正しく設定されていないFTPソフトを利用してパーミッションを確認してください。・・・701・CGIが格納されているディレクトリ・・701・データアイル・・・600・HTMLファイルなどはそのまま従来どおり644でご利用下さい。CGIファイルで、ファイル内にパスの指定が無いものは、「604」と設定してください。ページトップへ戻るForbiddenが表示されるこのエラーが表示される時は、指定されたパーミッションに問題がある可能性があります。この場合には、以下のような原因が考えられます。CGIスクリプトの「実行権」CGIスクリプトのパーミッションが「755」か「705」になっているかどうか確認してみましょう。CGIとして実行可能なパーミッションは通常「755」か「705」とされています。CGIファイルを置く場所を間違っているプロバイダーによっては、CGIファイルを置く場所を専用ディレクトリなどを設けたりという場合があります。この場合、CGIファイルを本来置いてはいけないディレクトリに置いてしまうとCGIの実行権がない為に、このエラーが表示されます。私どものサーバーでは「public_html」内であれば、どこにCGIスクリプトを置いても動作させることができます。例外として、「cgi-bin」や「admin」といった数種類のディレクトリ名はサーバー側で利用されているため、「public_html」ディレクトリ直下に置くと、CGIが動かないなどの不具合が生じる恐れがあります。ページトップへ戻る中身(ソース)が表示されるまたは、CGIスクリプトがそのままダウンロード状態になってしまう。この場合、サーバー側が対象ファイルをCGIファイルとして認識していないことが考えられます。以下のようなことが考えられます。CGIを実行するディレクトリ内に所定の「.htaccessファイル」を設置していないプロバイダーでは、「.CGI」を置くディレクトリの中に「.htaccessファイル」を置かなければならない場合があります。「.htaccessファイル」とは、UNIXサーバー上に置く「設定ファイル」のようなものです。「.htaccess」という名前のファイルをCGIを設置するディレクトリに置かなければならない。「.CGI」という拡張子のファイルをCGIファイルと認識させるために以下のように記述します。最後に必ず「改行」をして保存してください。その後、「アスキーモード」でFTP転送し、所定のディレクトリ内に置きます。ファイル名がピリオドで始まっているので、エディタで保存する時や、FTP転送できないなどの場合は、「htaccess.txt」という名前等で保存し転送後にディレクトリ内でファイル名を変更してください。CGIを実行するように、そのサーバー自体、またはそのディレクトリ内が設定されていない場合は、CGIの使用はできません。CGIを実行するディレクトリが決められている場合は定められたディレクトリ内にCGIスクリプトを置く必要があります。CGIスクリプトの拡張子(.CGIなど)が、CGIファイルとして設定されていない。この場合、ファイル名を所定の拡張子(.plなど)に変更する必要があります。プロバイダーのサーバーがWindowsNT(サーバソフトがIISの場合)サーバの場合に多く見られます。拡張子を変更する場合CGIファイルを右クリックし、[名前の変更]で「CGI」を「pl」に。次にファイルをエディタで開き、[スクリプト名]を「xxx.cgi」から「xxx.pj」に変更します。SSIが動きませんhtmlファイルにSSIを記述する場合、ファイルの拡張子を「shtml」にする必要があります。参照することができなくなるといった不具合がありますのでご注意ください。