質問: cgi設置時に500エラーになります 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になります。 サーバーではエラーログが見られないのでみなさんにお聞きしたいのですが、他にどんな原因が考えられるでしょうか?
回答: 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