• 締切済み

ローカルテストOKのPerl サーバでのエラーです。

よろしくご教授下さい。 単純にフォームに入力された内容を確認するためのページを作成しようとしていますが、 ローカルでのテストはOKでしたが、いざサーバにアップするとサーバエラーが出ます。 ローカルのテスト環境 サーバ AnHTTP ActivePerl Ver.5 本サーバの環境 Apache Perlのバージョン 5.6.0 パーミッションは755に変更済み。 PerlのパスもOKです。 あと、考えられるエラーの可能性をご指摘頂けませんでしょうか? よろしくお願いします。 説明不足なとこがありましたら補足致します。 参考にならないかもしれませんが、一応・・・ サーバエラーの内容です。↓ Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, *******@*******.com 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. ----------------------------------------------------------- Apache/1.3.19 Server at www.********.com Port**

  • yuuma
  • お礼率100% (21/21)
  • Perl
  • 回答数6
  • ありがとう数8

みんなの回答

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.6

> エラーの内容は以下のものです。 > Premature end of script headers これは、HTTP ヘッダの出力が無い、ということを表します。 たとえば、以下のような意味の無いスクリプトを動かすと、同様のエラーが出ま す。 ★ここから #! env perl exit ★ここまで 該当のスクリプトがどこかの print で Content-type: text/html なんて吐き出 していると思うのですが、そこに到達する前に何かのエラーで抜けています。 ですから、質問にあるように ・スクリプトのパーミッションは問題ない ・perl のパスもOK です。 エラーログの "Premeture end ..." の直前の行に注目するか、もしくは、スクリ プトのう~んと最初のところで HTTP ヘッダだけを出力してしまえば、何かの情 報がエラーログに残るかもしれませんね。 後、コマンドラインから、そのスクリプトは実行できませんか? 繰り返しますが、少なくとも CGI でスクリプトを動かすための設定には問題ない と思います。実行している、そのスクリプト自身の問題だと思います。 ちなみに、 > また、ご気分を害されたようで、そのような返答(お礼)をしてしまい申し訳ございませんでした。 ぜんぜん気分は害してませんよ。ちょっと書き方がぶっきらぼうだったかも、と、 ちょっと反省。

yuuma
質問者

お礼

a-kuma様 締め切り後にも関わらず回答頂き有難うございます。 先ほど原因がわかりました。 一行目のPerlのパスが違っておりました。 サーバ側からメールにより指定されたパス自体が間違っていたようで、 こちらからの指摘により、先ほどサーバ側からの訂正がありました。 正しくは #!/usr/local/bin/perl と記述するべき所を #!usr/local/bin/perl としていました。 (すぐに気付かなかった私もいけないのですが。。) 2回も回答していただきましたのに、 原因がこのような簡単な事でなんだか申し訳ありません。 こちらで頂きました皆様の回答は、 今後Perl・CGIの勉強をする上で参考にさせて頂きたいと思います。 a-kuma様 他の回答者の方々 お時間を割いて回答頂きました事本当に感謝しております。 ありがとうございました。 このサイトでまたいつか出会える事を願っています。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.5

> エラーログ見ました。 >  File does not exist(ファイルが存在しません) (snip) > エラーログの見方がよくわからなくて・・・ いや、そうじゃなくて「ファイルが無い」とか分かる言葉で書いてあるのですから その問題をクリアしなきゃいけないんじゃないですか? まずは、分からないなどとひいてないで、きちんとエラーログを読み、そのうち 問題の大元であるメッセージをここに載せてみたら? 四人がこの質問に首を突っ込んでいるのですから、エラーの内容次第では、もう少し まともな回答を誰かしてくれるかも。

yuuma
質問者

お礼

有難うございます。 また、ご気分を害されたようで、そのような返答(お礼)をしてしまい申し訳ございませんでした。 午前の時点では、エラーログを「見た」だけで 早くお返事をしようと思ってしまいまして、、、 本日午前中の間、エラーログの見方を調べたり サーバの管理会社への問い合わせをしておりました。 エラーの内容は以下のものです。 Premature end of script headers a-kumaさんへの最初のお礼の所で30行ほどと言ったのは、 過去分のエラーも合わせて見ていたようです。 また、ページが存在しないというのも関係ないもののようでした。 もう少し考えてからここへお願いしたらよかったのでしょうが、 業務上時間が無くてついあせってしまいました。 また、他のトラブルも抱えていた為、粗雑な質問とお返事になりました事 他の3人の回答者の方にも深くお詫びいたします。

  • haporun
  • ベストアンサー率40% (230/562)
回答No.4

つい最近わかったことですが、改行コードが(13)(10)、つまりCRLFだと、ApacheのMod_perlはただしく解釈できないみたいです。 ターミナル上では実行できてるのに、サーバーを通すとできないので何かと思ったら、そんなことでした。 もしこれが原因なら、秀丸などで改行コードをLFのみにすると、もしかしたら動くかもしれません。

yuuma
質問者

お礼

回答ありがとうございます。 改行コードはフリーソフトのPerlEditorを使ってPerlを記述している際に 設定でUNIX:EUC(LF)にしていますので、問題はないと思います。 もう一度確認してみます。 ありがとうございました。

  • you-m
  • ベストアンサー率58% (190/327)
回答No.3

とまあ、そうは言っていても何なんで・・・ ローカルのテスト環境は明らかにWindowsですね。 本サーバの方は、UNIXっぽい感じもしますが、プロバイダのサーバなのでしょうか。 そういう前提だと仮定して、ありそうなケースを上げてみます。 ソースコードの改行コードです。 Perl自体は、CRもLFもCR/LFも改行コードとして扱う事ができますが、CGIとして動かす場合少し違う事情が絡んできます。 パールに限らず、スクリプト言語を用いて作成したコードは、最初の一行に#!~という記述を書きます。 おまじないのように書いているこの行は、マジックナンバーと呼ばれる特殊な行です。 実行属性のついたスクリプトの1行目は、OSによって解釈され、そこに書かれたインタプリタが呼び出されます。 つまり今回の場合も、最初の1行はOSによって解釈されるわけです。 とすると、改行コードはOSによって識別できるものでなくてはならず、UNIXの場合はLFとなります。 Winでは、CR/LFである為、例えばスクリプトをサーバにあげる際に、ftpをバイナリモードで転送していたりすると、ASCIIモードなら勝手にやってくれる改行コードの変換が行われず、うまく動かないというケースは結構多いです。 まあ、当たっているかどうかは分かりませんが、典型的なケースの紹介でした。

参考URL:
http://tohoho.wakusei.ne.jp/wwwxx011.htm
yuuma
質問者

お礼

回答有難うございました。 >ローカルのテスト環境は明らかにWindowsですね。 >本サーバの方は、UNIXっぽい感じもしますが、プロバイダのサーバなのでしょうか。 説明が足らずに申し訳ありませんでした。 ローカルのテスト環境はWindouws2000 サーバはUNIX です。 しかし、改行コードは フリーソフトのPerlEditorを使ってPerlを記述している際に設定でUNIX:EUC(LF)にしていますので、問題はないと思います。。。 FTPはFFFTPを使用してアスキーモードでUPしています。。。 ありがとうございました。

  • tfp
  • ベストアンサー率37% (3/8)
回答No.2

エラーログの内容がないと考えられる可能性はいろいろあり過ぎて誰も答えられないと思います。 ISP等のレンタルスペースを使用していて、直接エラーログを見れない場合、スクリプトの先頭の方で use CGI::Carp qw(fatalsToBrowser); と、しておくと、エラーの内容をブラウザに返してくれるので、とても助かります。 >参考にならないかもしれませんが、一応・・・ >サーバエラーの内容です。↓ これは「エラーが出た」としか分かりません。(^^;

参考URL:
http://member.nifty.ne.jp/hippo2000/perltips/CGI/Carp.html
yuuma
質問者

お礼

回答ありがとうございます。 >ISP等のレンタルスペースを使用していて、直接エラーログを見れない場合、スクリプトの先頭の方で >use CGI::Carp qw(fatalsToBrowser); >と、しておくと、エラーの内容をブラウザに返してくれるので、とても助かります。 この方法は知っていると役に立ちそうです。 >>参考にならないかもしれませんが、一応・・・ >>サーバエラーの内容です。↓ >これは「エラーが出た」としか分かりません。(^^; ・・・すみません(-_-;) うまい具合に質問も出来ていない自分が情けないです。。。 ありがとうございました。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

まずは、エラーに出ているようにエラーログを見ましょう。 > More information about this error may be available in the server error log.

yuuma
質問者

お礼

お礼が遅くなってすみません(^_^;) エラーログ見ました。  File does not exist(ファイルが存在しません) や  接続を他からリセットされました。 などの言葉が30行ほどにわたって記述してあります。 エラーログの見方がよくわからなくて・・・ すみません。

関連するQ&A

  • サーバエラー xoops

    Xサーバーのレンタルサーバーを借りて、1つのデータベースに複数のxoopsを設置しています。 最近サイトを開くと以下のようなエラーがでるようになりました。 おそらくサーバに負荷がかかっていると思うのですが、解決策があれば教えていただきたいです。 ニュースモジュールだけ利用しています。 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webmaster@***********.com 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. -------------------------------------------------------------------------------- Apache/2.0.52 (Red Hat) Server at ***********.com Port 80

  • PerlでFILEを埋め込もうとするとエラー

    Perlでアクセスカウンターを作ろうと思っています。 そこでファイルオープンを勉強し、 CGIプログラムを実行しようとしたところ、 エラーが起こりました。↓ Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, ********@*********(伏せてあります) 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. ------------------------------------------ Apache/2.0.55 (Win32) Server at 127.0.0.1 Port 80 ソースを見てもおかしい所は見当たりません…↓ #! c:/perl/bin/perl open(FILE, "./sample.txt"); @data = <FILE>; close (FILE); print <<END; Content-type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <title>sample</title> </head> <body> <p>$data[0]</p> <p>$data[1]</p> <p>$data[2]</p> </body> </html> END サーバーはApacheを使っています。 原因がわかったら教えてください。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • 500 Internal Server Error

    http://iboard3.to/ で始まるURLのどのサイトでも 500 Internal Server Error Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, info@iboard2.to 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. と表示され、見ることができません。 どうしたらよいですか?

  • NTでapacheとperlをインストールしてCGIテスト

    WINDOWS NTの環境でネットに繋がっていない状態でCGIテストをしようと、apache_1_3_12_win32.exe (Apache 1.3.12 for Win32) とActivePerl 623をダウンロードしセットアップしました。 Apacheの動作確認までできました。 ところが、CGIが動きません。 DOSで「xx.pl」は動いているのに、「xx.cgi」をテストしようとブラウザでみてもエラーが出てしまいます。 セットアップした2つの場所は、c:\www\perl\ と、c:\Apache\です。 何が間違っているのでしょうか? どなたか詳しく教えて頂ける方がいらっしゃいましたら、大変ありがたいです。 ブラウザのエラーは 「Internet Server Error The server encountered an internal error or misconfiguration and was unable to complete your request~」というような表示です。 また違う者が前にsendmailを入れたようなのですが、その中にもapacheが入っていました。 またperlもcドライブに入っているのですが、これはまずいでしょうか? お助けください。よろしくお願いします。

  • 教えてgooサーバーエラー

    すみません 教えてgooでInternal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, root@ask01.goo.ne.jp 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. という表記が出てきます。 よく意味が分からないのですが、どのように対処すればよいのでしょうか よろしくお願いします

  • Perlのエラーについて

    PerlでInternal Server Errorが表示します。 Perlのインストール、Apacheのインストール、Apacheの設定をしました。 Perlのバージョンは5.8.7.813です。 プロバイダはCGIのご利用に関する情報 Perl 利用できる(Ver5.10.1)です。 Perlをプロバイダのサーバーへアップロードするのですか? Internal Server Errorについてです。

    • ベストアンサー
    • Perl
  • 買い物カゴのCGI エラーInternal Server Error どうすればいいのでしょう

    iMac DV SE(G3, 500MHz) OS 9.2.2 です。 買い物カゴをもう数年前から何回も設置してうまくいっていたのですが、今回改訂したら動かなくなってしまいました。cart.html(買い物で商品の個数を入れるページ)から、「買い物カゴに入れる」ボタンをクリックすると、次のエラーが出てしまいます。この時のアドレスは、http://www.*******.com/acart/setcook.cgi です。setcook.cgiは間違いなくここにありますし、パーミッションも点検しています。何か問題が考えられることがあるでしょうか。 ------------------------------------------------- Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webmaster@*******.com 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. Apache/1.3.33 Server at www.*******.com Port 80 ------------------------------------------------- *****は伏せ字にしました。

    • ベストアンサー
    • CGI
  • Internal Server Error???

    こんにちは。 CGIを作ったのですが、 【Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webmaster@life-web.com 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を作ったのですが、そちらは普通に動きます.すみませんが、このエラーの場合はどうしたらいいですか? CGIはメールフォームからのメールを送信するものです。

    • ベストアンサー
    • CGI
  • Internal Server Errorについて

    いつもご丁寧なご回答本当にありがとうございます。 postmailをサーバーに転送し、メールの送信を試してみたところ下記のエラーが出てしまいました。 パーミッションの確認、センドメールのパス、CGIのパス、メールアドレスの確認もしましたが、間違っていないようです。 サーバーはセンドメール自作CGIが使えるサーバーです。 入力ソースのformもpostmail-cgiで記載しています。 良い、アドバイスがありましたら是非、宜しくお願いいたします。 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, info@stepserver.jp 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. -------------------------------------------------------------------------------- Apache/1.3.41 Server at sss002.kix.ad.jp Port 443

    • 締切済み
    • CGI
  • 内部サーバーエラーについて

    HPを作っていたとき内部サーバーエラーと出ました。 サーバーはhttp://www.pf-x.net/ エラーメッセージは、 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, w@pf-x.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. やったことは、エラーページを製作して、 .htaccessを入れたらだめになりました。 どういう意味か、また、対処法を教えてください。

専門家に質問してみよう