• ベストアンサー

500 Internal Server Err で困ってます

私、CGI初心者なんですが、”500 Internal Server Err ”が出てしまい困ってます。 カウンターの設置し、きちんと動いているんですが、フォームを入力してもらい、ファイルに保存するCGI(Perl)です。このエラーはスクリプトにエラーがある時や、FTPで バイナリモードでスクリプトを送ってしまった時などに起こると本に書いてありました。なので、次の事を試してみたんですが・・・ ・TELNETでPERLの構文チェックと動作確認 ・FTPでアスキーで再度アップロード ・再度スクリプトを検証 ・念のため、ファイルの属性をチェック ・念のため、.htaccessをチェック(改行コードなど、・・でもカウンタプログラムが動いているから問題ないはずですよね??) 以上の事を試したんですがダメでした。 そこで、もっと簡単なスクリプト(簡単な標準出力だけを するもの)を動かしてみたんですが、やはりダメで、上記のチェックをやってみたんですが、ダメでした。 この簡単なスクリプトはCGIの本で一番最初に載っている ものでわずか10行のものです。 TELNETで動作も確認したんですが・・・ 何分、初心者なもので・・・考えられることがあったら 教えていただけると助かります。

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

  • ベストアンサー
  • marimo_cx
  • ベストアンサー率25% (873/3452)
回答No.2

#!/usr/local/bin/perl print "Content-Type: text/html\n\n:; print "<HTML><HEAD><TITLE>test page!</TITLE></HEAD>"; print "<BODY><H1>TEST</H1></BODY></HTML>\n"; これ、ちゃんと動くかやってみてもらえます? これが駄目なら.htaccessの記述がまずいか、サーバーの使い方 (特定ディレクトリじゃないと動かないなど)か、そもそもユー ザーのCGIを使用禁止しているかです。 あと良くあるんですが、スクリプトの中にshift-jisの日本語が 入っていると見かけどう考えてもおかしくないのに動かない事 がありますので、コメントを含めて2バイトコードが含まれてい るのであればEUC-jpに変換してください。

tarojerry
質問者

補足

御回答ありがとうございます。 書いていただいたものでやってみたんですが・・ やはりダメでした。何故でしょうか??? .htaccessに関してですが、同じディレクトリで自分で入れたカウンタプログラムがちゃんと動いてるんで・・・ 念のため、.htaccessの中身を書いてみます。間違いありますか? Options ExecCGI AddType application/x-httpd-cgi .cgi AddType application/x-httpd-cgi .cgi/ Options Includes AddType text/x-server-parsed-html .html AddType text/x-server-parsed-html .html/

その他の回答 (3)

  • shigatsu
  • ベストアンサー率26% (511/1924)
回答No.4

エラーログが見れれば一番簡単なんでしょうけどねぇ。 私はエラーログが見たいがために、うちのマシンにアパアッチとPerl入れました。デバッグ用に。 それはさておき、参考URLの方法をお試しください。 私がオンラインリファレンスにしている「とほほのWWW入門」のページです。

参考URL:
http://wakusei.cplaza.ne.jp/twn/wwwcgi7.htm
tarojerry
質問者

お礼

前にアドバイス頂いた方へのお礼文にも書いたんですが、 ディレクトリの属性の間違いでした。お騒がせしました。 「とほほのWWW入門」には前に少しだけ行ったことがあるんですが、改めていってみるといろいろ重宝しそうですね。今度、何かあったらまた利用してみようと思います。 ご親切にありがとうございました。また、解らないことがあったら教えて下さい。

  • marimo_cx
  • ベストアンサー率25% (873/3452)
回答No.3

んー、これだとどうなります? <-- .htaccess --> Options +ExecCGI +Includes -Indexes AddType application/x-httpd-cgi .cgi AddType text/x-server-parsed-html .html <-- end of .htaccess -->

tarojerry
質問者

お礼

2度にわたり、アドバイスありがとうございました。 下の方のお礼文にも書いたんですが、ディレクトリの属性の間違いでした。”777”にしていたんですが、セキュリティーの都合上、それでは動かないように設定してあるとのことです。カウンタが動いていたのでそれはないだろうと考えてしまいました。お騒がせしてごめんなさい。 どうもありがとうございました。初心者なんでまた何かあったら、教えていただけると助かります。

tarojerry
質問者

補足

んー、残念ながら動かないです。 カウンタも動かなくなりました。 せっかく書いていただいたんですが、ダメみたいです。 何か他に考えられる事ってありますか?

  • taba
  • ベストアンサー率61% (349/567)
回答No.1

後半の、 >もっと簡単なスクリプトを動かしてみたんですが、やはりダメ というところの詳細が分からないのですが、これはファイル出力はしないのですね? 前半部を読んだときに思ったのは、 ○保存するファイルのパス指定が間違っている ○保存するファイルないしディレクトリに書き込み権限が無い の2つですが、ファイル書き込みをしないものもダメなんですね。 カウンタが動いているということですが、それは同じディレクトリにtarojerryさん自身がインストールしたものですか? もしかすると、プロバイダが特定のディレクトリ配下でしかCGIの動作を認めていず、それでエラーになるということじゃないかと思ったりしたんですが。

tarojerry
質問者

お礼

質問してから短時間に丁寧なアドバイスありがとうございました。いろいろアドバイスを頂き試したところ、最終的にはディレクトリの属性の間違いということでした。 私はディレクトリの属性を”777”にしていたんですが ホスティングサービスに問い合わせたところ、”777” では、セキュリティーの都合上動かないようにしてあるとのことでした。カウンタが動いてるので問題ないと思っていたんですが・・・大変お騒がせしました。また、何かあったら教えて下さい。

tarojerry
質問者

補足

さっそくの回答、本当にありがとうございます。 後半部分に書いたスクリプトではファイル出力は行っていません。 カウンタを動かしているファイルと同じディレクトリに入れ、そこはプロバイダから指定されたディレクトリです。 前半、部分に対しての御回答は、これからさっそく確認してみます。

関連するQ&A