CGIについて

CGI設置の手順

CGI設置の手順は以下のようである。ただし、セキュリティ上の問題があるため、詳細について省いている部分があるので、ノートや配付資料などで確認すること。

  1. 秀丸エディタで、perlのスクリプトを作成し、拡張子をcgiにする。
  2. FFFTPで、WWWサーバの~/public_html/以下のディレクトリにアップロードする。
  3. FFFTPで、アップロードしてperlのCGIスクリプトのパーミッションを755にする。
  4. ブラウザを起動し、アップロードしたperlのCGIスクリプトのURLにアクセスして、動作をチェックする。

"Internal Server Error"になる場合のチェック事項

"Internal Server Error"は、WWWサーバでCGIスクリプトを実行しようとしたときにエラーが発生する場合に表示されるメッセージである。以下のようにして、エラーの原因を探って、修正しよう。

  1. パーミッションの設定がまちがっていないか
  2. そもそもPerlのプログラムに間違いはないか
    1. Perlのサーバでのパス#! ○○○/perlが間違っていないかチェックする。
      • #! ○○○/perlがperlスクリプトの1行目に書かれている必要がある。#! ○○○/perlの前に空行があると、エラーとなる。
      • 正しいパス○○○/perlは、Tera Term Proでサーバにログインして、which perlを実行して表示されるものである。
    2. コマンド・プロンプトを起動して、perl -wc ○○○.cgi を実行して、syntax ok と表示されるかチェックする。
    3. ローカルのWindowsでエラーがなくても、サーバでエラーになる場合がある。Tera Term Proでサーバにログインして、CGIスクリプトのあるディレクトリにカレント・ディレクトリを移動し、perl -wc ○○○.cgi を実行して、syntax ok と表示されるかチェックする。エラーになる原因は以下のものが考えられる。
      • 改行コードが正しくない場合。Windowsの改行コードはCR(0D)LF(0A)の2バイトだが、UnixではLF(0A)の1バイトであるため、改行コードがWindowsのままだとエラーになる。FFFTPを使えば、自動的に改行コードは修正される。
      • 1行目に書く#! .../perlのパスが間違っている場合。サーバにログインして、which perlを実行してperlのパスを確認して、それに合わせて...の部分を書き換える。
      • jcode.plなどのライブラリがない場合。必要なライブラリ等を入手して、アップロードすれば良い。

ホームへ戻る

Last update: