Linuxサーバに関して質問です。

ローカルで自作していたCGIファイルを初めて自宅サーバ上にアップして動かそうと思ったのですが、Internal Server Errorの表示が出て動かせません。
色々と弄りながら原因を究明していたのですが、

print <<HTML
Content-type:text/html

<html>
・・・・
</html>
HTML

とする部分を2つに分けて

print <<HTML
Content-type:text/html

<html>
・・・・
HTML

print <<HTML
・・・
</html>
HTML

にすると、Internal Server Errorが表示されることが分かりました。
何故このような結果になるのでしょうか?
ご存知の方は原因と対策を教えて頂けないでしょうか?
初歩的な質問で申し訳ないですが、よろしくお願いいたします。

回答の条件
  • 1人2回まで
  • 登録:2007/11/20 23:47:21
  • 終了:2007/11/21 19:56:16

回答(1件)

id:thrillseeker No.1

thrillseeker回答回数328ベストアンサー獲得回数372007/11/21 00:12:01

ポイント60pt

一つ目の

print <<HTML

print <<HTML;

とすれば動くはずです。

二つ目の

print <<HTML
..
HTML

以降にもスクリプトを追加するのであれば、やはり

print <<HTML;

とする必要があります。

id:cross-xross

ありがとうございます。

WindowsにActivePerlを入れて動かしている限りでは、『;』が無くても大丈夫だったので気付きませんでした。

実際にサーバに実装することを考えると、今後はローカルでも『;』を入れて組んだ方が良さそうですね。

ご教授ありがとうございました。

2007/11/21 19:52:25
  • id:b-wind
    自宅サーバーなら、Web サーバーのエラーログにエラーが出力されていると思いますが。

    あと、コマンドラインから
    perl -wc sample.cgi
    等とすると、シンタックスチェックを行ってくれます。
  • id:cross-xross
    b-wind様、ご親切にありがとうございます。
    コマンドラインから構文チェックも出来るんですね。
    知らなかったです。
    コマンドプロンプトでも同じことが出来そうなので、ローカルでのプログラミング時も使ってみたいと思います。

    ありがとうございました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません