• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:500 Internal Server Error)

500 Internal Server Errorが出る原因と解決方法

このQ&Aのポイント
  • サーバ上で直接実行すると正しく処理されるが、ブラウザでアクセスすると500 Internal Server Errorが出る。
  • Apacheの設定で文字セットを無効にした場合、CGIスクリプトに何か追加する必要がある。
  • スクリプトの文法やパーミッションに問題はないため、他の原因を探る必要がある。

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

Perlのプログラムとしては間違いはないけれど、CGIとして間違っています。 CGIで期待される出力は ヘッダ(複数行の場合あり、空行不可) 空行 本体 という形式です。 Perlのprintは、明示的に改行コードを指定しなければ、改行しません。 本体にあたるHTML部分は改行が無くても問題ありませんが、ヘッダと区切りの改行は必須です。

その他の回答 (1)

  • hirotn
  • ベストアンサー率59% (147/246)
回答No.2

/var/log/httpd-error.log など、エラーログに詳細が出ていると思います。 この情報をいただけると、より回答がしやすくなります。 print "Content-type: text/html"; → print "Content-type: text/html\n\n";※ となります。 おそらく、エラーログには、※が原因で"Bad Header"など出ておりませんでしょうか。 Perl上正しくとも、CGI上間違っている場合、エラーログが参考になります。

関連するQ&A

専門家に質問してみよう