CGIの実行がうまくいかない場合

うまくいかない場合は、次の3点を確認して下さい。

  • AN HTTPDの設定を確認する
  • CGIの設定を確認する
  • 必要なPerlモジュールが不足していないか確認する

■AN HTTPDの設定を確認する

「AN HTTPD」でCGIの実行が許可されているかどうかを確認します。

「AN HTTPD」のメニューから「オプション一般」を選択して「一般」タブの中にある「CGIを実行する」にチェックが入っていることを確認します。 もし入っていなければチェックを入れます。
「CGIを実行する」にチェック

また、拡張子「.pl」や「.cgi」に対して、Perlを実行するように設定されていることを確認します。
拡張子「.pl/.cgi」をクリックして選択した状態で「編集」ボタンをクリックすると、拡張子「.pl」や「.cgi」のファイルを何で実行するかが選択できるようになります。 そこに「Perl」が指定されていることを確認して下さい。異なっていれば修正します。
拡張子.cgiでPerlが実行されるようにする

特に以下の現象の場合は、上記のことを確認してみて下さい。

  • CGIのソースコードがそのまま表示される
  • CGIのファイルをダウンロードする形になってしまう
  • エラー「500 Internal Server Error」が表示される

■CGIの設定を確認する

CGIの中には、ソースをテキストエディタで開いて、設定を行わなければならないものがあります。 忘れずに設定できているかどうかを確認して下さい。

設定を記述した結果、文法的におかしくなってしまって実行できなくなってしまうことがあります。 特に「500 Internal Server Error」が表示されてしまった場合は、その可能性があります。もう一度最初から設定し直してみて下さい。

文法的にミスがあるかどうかは、コマンドプロンプトからCGIを実行してみればよく分かります。
syntax error at test.cgi line 8...
コマンドプロンプトを開いて、CGIを設置したディレクトリへ移動し、「perl (CGI名)」と入力してEnterを押せば、コマンドプロンプト上でCGIを実行できます。 このとき、上図のようなエラーメッセージが表示されれば、CGIソース中のどこにエラーがあるのかが分かります。
文法的なミスを知るには便利な方法ですので、試してみて下さい。

特に以下の現象の場合は、上記のことを確認してみて下さい。

  • エラー「500 Internal Server Error」が表示される
  • 何も表示されない

■必要なPerlモジュールが不足していないか確認する

CGIの配布元ページなどを参照して、動作に必至なPerlモジュールがないか確認して下さい。 そして、「Perl Package Manager」でインストール済みのPerlモジュール一覧を表示させ、必要とされているモジュールがなければ追加インストールします。

たとえば、ブログツールである「Movable Type」を動作させるためには、「DB_File」モジュールが必要です。 このモジュールは標準ではインストールされないので、後から自分で追加インストールする必要があります。

この場合も、コマンドプロンプトからCGIを実行してみればよく分かります。
Can't locate Xbase.pm in @INC at test.cgi line 5.
上記の場合は、「Xbase.pmが見つからない」と言っていますので、「Xbase」というモジュールを追加する必要があることが分かります。

特に以下の現象の場合は、上記のことを確認してみて下さい。

  • エラー「500 Internal Server Error」が表示される
  • CGI独自のエラーが表示される

戻る



※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。