【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?

CGIを設置しようとしたところ、500 Internal Server Error になります。

共用サーバーIDを使用しています。
CGIファイルは「cgi-bin」の中に入れています。

たとえばこんな簡単なCGIでテストしたのですが、500 Internal Server Errorになってしまいます。

#!/usr/local/bin/perl
print "Content-type: text/html \n\n";
print "Hello";

#!/usr/local/bin/perlを
#!/usr/bin/perlにしても結果は同じです。
(サーバーの指定は#!/usr/local/bin/perl)

パーミッションは755にしています(705に変えてもダメでした)。
CGIファイルの改行コードはLFにしており、テキスト(ASCII)モードでアップロードしています。
それでも500 Internet Server Errorになります。

サーバーではエラーログが見られないのでみなさんにお聞きしたいのですが、他にどんな原因が考えられるでしょうか?

A 回答 (2件)

500 Internal Server Error はperl文法ミス以外にも、ヘッダの出力し忘れ、パーミッション設定異常などいろんな原因で出ます…。



でもお書きのスクリプトでこちらではそのまま実行できてしまいますので、今回はパーミッションでしょうか。
705でダメでしたら、最悪700で実行できませんでしょうか…。
cgi-binディレクトリを自分で作成したのだったら、ディレクトリのパーミッションも755であるかどうか確認してみてください。


また、次のページのCGIを入れると、転送したperlスクリプトの文法チェックができます。

すぐ使えるCGI: Perl文法チェック & 環境調査CGI
http://sugutsukaeru.jp/support/84/index.html

先頭の #! を自分の環境にあった物( #!/usr/local/bin/perl )にして、パーミッションを755・705・700いずれかでは実行できると思います。

まあ、文法チェックには、いちいち転送してから確認するより、ローカルのperl環境を作った方が簡単ですが。
(perlインストール後、「perl -c (スクリプトファイル)」を実行。)

ActivePerl Download
http://www.activestate.com/activeperl/downloads
    • good
    • 0
この回答へのお礼

こんな便利なCGIがあったんですね!
ありがとうございます。

お礼日時:2012/04/13 08:21

それはまずサーバーのCGI設置条件を確認するしかありません。


500エラーは文法が間違っているエラーです。
.htacsessの設定が必要とか様々です。
サーバーのCGI設置に関する注意事項を確認しましょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!