こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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を使っています。
原因がわかったら教えてください。
よろしくお願いします。

投稿日時 - 2006-01-22 15:55:18

QNo.1913516

困ってます

質問者が選んだベストアンサー

ApacheのエラーログにPerlのエラーが載っていますのでそっちを参照してみてください。
logsディレクトリにログファイルがあります。

他に考えられる原因としてENDの直後に改行が無いのではないでしょうか。

投稿日時 - 2006-01-23 00:54:27

お礼

ENDの直後に改行…?
フムフム…¢(._.)カチッ
おっ!!!!なんと!!!!表示されました!!
改行なんかが関係あるなんて…
いやぁ~ありがとうございます!!
というわけで締め切らせていただきます!!

投稿日時 - 2006-01-23 19:53:07

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

・ソースの1行目がパス指定になっていますか?
(1行目が空行ではないですか?)
・パス指定は正しいですか?

投稿日時 - 2006-01-22 20:42:50

補足

>>・ソースの1行目がパス指定になっていますか?
(1行目が空行ではないですか?)

はい。

>>・パス指定は正しいですか?

はい。

投稿日時 - 2006-01-22 21:30:33

ANo.2

ヒアドキュメントだから、とかではなくて
httpヘッダと内容(content)の区切りとして空行は必須です。
http://www.rfs.jp/sb/perl/03/03.html

投稿日時 - 2006-01-22 18:42:04

お礼

指摘してくれてありがとうございます。
やってみましたが…また同じエラーが発生しました…
全く原因がわかりません…(~ω~;)
もしかしたらApacheの設定とか…
調べてみます。

投稿日時 - 2006-01-22 20:22:19

ANo.1

Content-type
の後に改行(空行)が必要とか・

投稿日時 - 2006-01-22 16:53:25

補足

ヒアドキュメントですので大丈夫です…

投稿日時 - 2006-01-22 17:00:28