500 Internal Server Errorが出ます。
サーバ:CentOS6.4
サーバ側の文字コード:UTF-8
perlのパス:/usr/bin/perl
index.cgiの文字コード:LF (サーバ上で直接作成)
index.cgiのパーミッション:777 (パーミッションの問題を避けるためわざと、777に設定)
ここで、サーバ上で直接実行
perl /var/www/html/index.cgi
すると、正しく処理の結果が返ってきてエラーは出ません。
しかし、クライアントのブラウザでindex.cgiにアクセスすると、500 Internal Server Errorが出ます。
なお、index.cgiを設置するディレクトリはApacheで以下のように設定しcgiスクリプトを有効にしています。
<Directory “/var/www/html”>
Options FollowSymLinks ExecCGI
</Directory>
AddHandler cgi-script .cgi .pl
#AddDefaultCharset UTF-8
*******************************************************
【/var/www/html/index.cgi】
#!/usr/bin/perl
print "Content-type: text/html";
print "<html>";
print "<body>";
print "<p>";
print "CGI";
print "</p>";
print "</body>";
print "</html>";
スクリプトの文法に問題があれば、サーバ上で直接実行させた時点でエラーを吐きそうですし、
パーミッションは777にしていますし、Apacheの設定もcgiを有効にしているので
他に500 Internal Server Errorが出る原因が掴めません。
Apacheの設定で、#AddDefaultCharset UTF-8 として文字セットを無効にした場合は
CGIスクリプトの方で何か追加してやらないと、文字化け以前の問題で必ず500 Internal Server Errorを吐くんですかね?
ご指導のほどよろしくお願い致します。
No.1ベストアンサー
- 回答日時:
Perlのプログラムとしては間違いはないけれど、CGIとして間違っています。
CGIで期待される出力は
ヘッダ(複数行の場合あり、空行不可)
空行
本体
という形式です。
Perlのprintは、明示的に改行コードを指定しなければ、改行しません。
本体にあたるHTML部分は改行が無くても問題ありませんが、ヘッダと区切りの改行は必須です。
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が見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- CGI CGIが読み書きするデータファイルのパーミッションはさくらのインターネットでは何にするべき? 1 2023/05/02 16:44
- Perl Perlのエラーについてご教授ください。初心者です。 CGIを別サーバに移したところ、Perlのバー 5 2023/05/31 10:48
- その他(ソフトウェア) 至急!500 Internal Server Errorこのエラーはなんですか?原因と解決法教えてく 4 2022/06/21 15:50
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- ホームページ作成・プログラミング CGIが実行可能なHP領域又はレンタルサーバーでおすすめの所を教えてください 現在ホームページ領域の 1 2023/01/01 11:47
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- CGI 古ーくからフリーのtree.cgi掲示板を利用させてもらって来ましたが、最新でなにか復活できないか? 2 2023/04/07 10:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
apacheで403を404のように見せる
-
apacheでPerl CGIが作動せず、5...
-
CGIの中で出力するテキスト内容...
-
エクセルで 自動的に◯や数字を...
-
ファイルをディレクトリ分配の...
-
DBを10件毎に表示ページング...
-
毎○曜日って、使いますか?
-
[Excel] ある日の曜日が当月の"...
-
曜日を求めるプログラムはどう...
-
月の第一週とは
-
週2回のペースって だいたい何...
-
cgiとplとpm
-
raspberrypiから外部サーバーへ...
-
HTTP 200 OKの後のリダイレクト?
-
クライアントのIPとマシン名を...
-
エクセルで相対パスの書き方を...
-
perlでHTTP Request Headersの...
-
よくある 『 第○(1・2・3・4・...
-
VBAでExcelのヘッダーに文字列+...
-
毎週同じ曜日にラブホに行くと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
apacheでPerl CGIが作動せず、5...
-
CGIの中で出力するテキスト内容...
-
apacheで403を404のように見せる
-
携帯サイトでバナーをランダム...
-
Googleアラリティクスの埋め込...
-
ローカルサーバーでの動作確認
-
未入力のチェックをするには?
-
MAMPでpythonを実行させたい
-
CGI(Peal)でURLデコード
-
SSI で #exec 以外で Perl-CGI ...
-
はじめまして、レンタルサーバ...
-
jQueryのpostからのリクエスト...
-
サクラのレンタルサーバーです...
-
月の第一週とは
-
6月の第2 第4火曜日は何日...
-
よくある 『 第○(1・2・3・4・...
-
DBを10件毎に表示ページング...
-
エクセルで毎月第2週日の水曜日...
-
[Excel] ある日の曜日が当月の"...
-
週2回のペースって だいたい何...
おすすめ情報