Smaintitle2.gif (4650 バイト)         

webseries.gif (3075 バイト)

[bar.html]
問題を解決するには?

 

エラー "Not Found"
サーバー上にファイルが正しく転送できていますか?
指定したURLは正しいですか?
このメッセージはファイル自体がサーバーに上がっていないという意味のエラーメッセージです。
ファイルがちゃんと転送されているか?
ブラウザで指定したURL、スクリプト/環境設定内で指定のURLが間違っていないか?
確認してください。

 

エラー CGIプログラムそのものが表示された
または
ブラウザで保存するかどうか確認ダイアログが表示された
サーバーの設定はCGIプログラムに対応していますか?
これはCGIプログラムを使うための設定がされていないときに起こる現象です。
あなたのアカウントがある、プロバイダがCGI利用可ならば設定されているはずですが、
されていないようならば、

AddType application/x-httpd-cgi .cgi

と書いた".htaccess"ファイルを作り、CGIを置くディレクトリに、アスキー転送してみてください。それでも同じエラーがでるようならば、そのサーバーはユーザーにCGIを開放していないということになります。プロバイダに問い合わせてみてください。

 

エラー "Forbidden"
パーミッションは適切ですか?
これはそのファイルにアクセスする権限がない=HTTPサーバーがそのファイルを実行
する権限がないという意味です。
Telnetに接続して、chmodコマンドで設定し直してください。

 

エラー "Server Error"
ファイルはテキストモードで転送しましたか?
CGIスクリプト内のperlのパスは正しいですか?
Telnetで接続し、スクリプトを-neオプションで実行して見てください。

perl -ne 'print if /\r/' スクリプト名 リターン


と入力してみます。
もしスクリプトの内容が表示されてしまったなら、改行コードが間違っている、すなわちファイル転送に失敗しているということです。UNIX上でPerlのプログラムを動かすにはファイルはテキストモードで転送しなければなりません。転送し直してください。
表示されなければ改行コードについては問題ありません。

次に、perlのパスを確認します。
whichコマンドを使って、perlのサーバーでのパスを調べます。これをスクリプト内先頭に書いてあるパスと比較してください。
まちがっていませんか?まちがっているならば正しく書きなおしてください。
また、TelnetでCGIを実行して見てください。

sh: ./スクリプト名 : Permission Denied


と表示されたならば、ファイル権限の設定がまちがっています。正しく設定し直してください。



以上のように、perlスクリプトの実行でエラーの原因の多いものは

  • ファイルを転送したディレクトリがまちがっている。
    (ファイルの指定場所がちがう。)
  • サーバーのCGI設定に問題がある。
  • パーミッションがちがう。
  • スクリプトの改行コード(転送形式)がちがう。
  • スクリプト内でサーバー上のPerlプログラムの指定場所がちがう。

以上5点です。確認し直してください。

 

[footer.html]