- 締切済み
require文が実行できない
perl で require 'cgi-lib.pl'; または require "jcode.pl"; を実行すると、 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, admin@mshome.net and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. というメッセージが出ます。(cgi-lib.pl、jcode.plは同じディレクトリにあります。)
- みんなの回答 (8)
- 専門家の回答
みんなの回答
- hara_peko
- ベストアンサー率28% (11/38)
ローカルで試されているとのことなので More information about this error may be available in the server error log. とあるのならログをみてみてはどうでしょう。
- hok212
- ベストアンサー率66% (100/150)
よくエラーメッセージを見ると「admin@mshome.net」という文字がありますね。 httpd は IIS か PersonalWebServer でしょうか? それとOSはなにをお使いですか? ※ .plがCGIとしてサーバに認識されてないような気がします。
お礼
ありがとうございます。 ANO.8 のとうりです。
- Mulumba
- ベストアンサー率45% (27/59)
ローカルで実行しているのなら、PerlをインストールしたディレクトリのLibの中にcgi-lib.pl、jcode.plを置いてみたらどうでしょうか。 自信ないですが。
お礼
ありがとうございます。 ANO.8 のとうりです。
- hok212
- ベストアンサー率66% (100/150)
FTPクライアントが拡張子 .pl のファイルをバイナリモードでアップロードしてる可能性があります。 アスキーモード(テキストモード)でアップロードしてみてはどうでしょうか?
お礼
ありがとうございます。 ANO.8 のとうりです。
- hara_peko
- ベストアンサー率28% (11/38)
下記のサイトを参考にしてみて下さい。 Perlの文法に関するエラーなのかそれ以外の原因なのか区別する手助けになると思います。
お礼
ありがとうございます。 ANO.8 のとうりです。
- moon_night
- ベストアンサー率32% (598/1831)
まさか実行するPerlのプログラムのパーミッションがおかしいなんてオチではないですよね?
お礼
ありがとうございます。 1.実行しているのは、転送前のローカルのWebサーバーの段階です。 2.perl -c でチェックすると syntax OK です。 3.ローカルでの パーミッション変更方法は分かりません。
- Mulumba
- ベストアンサー率45% (27/59)
#1です。 実際にディレクトリから削除して試して見たのでしょうか? サーバによっては、cgi-lib.pl、jcode.pl等を自分で置かなくても、requireで呼び出して使える場合があり、その場合自分で置くと逆にエラーとなる場合があります。 削除してもだめなら、私にはお手上げです。 まさか実行するPerlのプログラムとcgi-lib.pl、jcode.plが別のディレクトリにあるなんてオチではないですよね?
お礼
ありがとうございます。 1.削除しても同様でした。 2.同じディレクトリです。 3.use encoding "shift_jis"; で日本語対応させることはできます。
- Mulumba
- ベストアンサー率45% (27/59)
cgi-lib.pl、jcode.plをディレクトリから削除してみる。 これでだめなら、cgi-lib.pl、jcode.plをディレクトリに戻した状態で、 require './cgi-lib.pl'; require "./jcode.pl"; と変更してみる。
お礼
ありがとうございます。 cgi-lib、jcode,pl を使用するのが目的です。(削除) require './cgi-lib.pl'; require "./jcode.pl"; に変更しても同じでした。
お礼
ありがとうございます。 ログを見たら ./cgi-lib.pl did not return a true value at ----- とあったので、cgi-lib の方がまずいと思いましたが、 何度か 起動させると正常になります。(つまり、不安定。require文が原因ではないでしょう。その前に jcode.pl はPCの時間が 10/31 になっていたので 正常な 10/1 に修正したら、エラーは消えました。マザーの電池を変えることにします。なんで、 jcode.pl に関係するのか? マザーの電源を 一日 カットして分かったことです。変な時間に勝手に起動したりしていたし。)