重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

下記のように4行のルビーのcgiを作りました。
ファイル名rb.cgi
#!/usr/bin/ruby
print <<EOF
あああ
EOF
これをRubyを提供しているapacheサーバにアップロードし
パーミッションを777にしました。
文字コードはEUC、改行はLFのみです。
しかし、Internal Server Errorが表示されます。
そこで、サーバにログオンし、このcgiファイルの
ディレクトリまで移動し、./rb.cgiを実行すると
あああと表示されます。また、このcgiファイルと
同一ディレクトリにあるparlのcgi(掲示板)は
正常動作しています。
どこが間違っているのでしょうか?

A 回答 (3件)

Internal Server Errorが出ているという事は、Apacheのエラーログ、スクリプトログ(出力していれば)あたりに、エラーメッセージが出力されている可能性が高いと思います。


エラーログ、スクリプトログはどうなっていますでしょうか?

この回答への補足

エラーログは下のようになっていました。
Premature end of script headers: /var/www/cgi-bin/rb.cgi

補足日時:2004/06/22 08:55
    • good
    • 0
この回答へのお礼

パーミッションが正常に777になっていませんでした。
777にすると動作しました。
ご回答ありがとうございます。

お礼日時:2004/06/22 09:58

ヘッダがないからでしょう。



これも吐かせないとだめです。

print <<EOF
Content-type: text/plain; charset=EUC-JP

あああ
EOF

となります。

この回答への補足

Content-type: text/plain; charset=EUC-JPを
追加しても、状況は変わりませんでした。
下記のようなエラーログが残っています。
Premature end of script headers: /var/www/bbs/cgi-bin/rb.cgi

補足日時:2004/06/22 08:56
    • good
    • 0
この回答へのお礼

パーミッションが正常に777になっていませんでした。
777にすると動作しました。
ご回答ありがとうございます。

お礼日時:2004/06/22 09:58

とりあえず、


・「#!/usr/bin/ruby」のパスはあっていますか?
・Apacheの設定で、rubyが有効になっていますか?
「ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/」等

もう一度、見直してみて下さい。

この回答への補足

#!/usr/bin/rubyのパスが合っていなければ、
debian上で./rb.cgiとしたとき、正常に実行できない
のではないでしょうか?

Apacheの設定で、parl(拡張子:cgi)は有効になってます。
この時点でruby(拡張子:cgi)も有効だと思うのですが。

補足日時:2004/06/21 17:59
    • good
    • 0

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