CGIについて
CGI設置の手順
CGI設置の手順は以下のようである。ただし、セキュリティ上の問題があるため、詳細について省いている部分があるので、ノートや配付資料などで確認すること。
- 秀丸エディタで、perlのスクリプトを作成し、拡張子をcgiにする。
- FFFTPで、WWWサーバの~/public_html/以下のディレクトリにアップロードする。
- FFFTPで、アップロードしてperlのCGIスクリプトのパーミッションを755にする。
- ブラウザを起動し、アップロードしたperlのCGIスクリプトのURLにアクセスして、動作をチェックする。
"Internal Server Error"になる場合のチェック事項
"Internal Server Error"は、WWWサーバでCGIスクリプトを実行しようとしたときにエラーが発生する場合に表示されるメッセージである。以下のようにして、エラーの原因を探って、修正しよう。
- パーミッションの設定がまちがっていないか
- FFFTPで、CGIスクリプトのパーミッションが755であるかチェックする。
- 或いは、Tera Term Proでサーバにログインして、CGIスクリプトのあるディレクトリにカレント・ディレクトリを移動し、ls -lで-rwx-r-xr-xとなっているか、チェックする。
- そもそもPerlのプログラムに間違いはないか
- Perlのサーバでのパス#! ○○○/perlが間違っていないかチェックする。
- #! ○○○/perlがperlスクリプトの1行目に書かれている必要がある。#! ○○○/perlの前に空行があると、エラーとなる。
- 正しいパス○○○/perlは、Tera Term Proでサーバにログインして、which perlを実行して表示されるものである。
- コマンド・プロンプトを起動して、perl -wc ○○○.cgi を実行して、syntax ok と表示されるかチェックする。
- ローカルの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: