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

Mac OSX Lionを使っています。

CGIでRubyを使いたいと思い、
以下のことを試したのですが、
500 Internal Server Error
となってしまいます。

◆やったこと

以下のファイルを
/Library/WebServer/CGI-Executables
に置きました。
(改行コードはLFとしました)

--test.cgi---
#!/usr/bin/ruby
print "Content-Type: text/html¥n¥n"
puts "Hello Ruby"

-----
そしてchmod 777としてブラウザから
http://localhost/cgi-bin/test.cgi
にアクセスしたところ、
500 Internal Server Error
となってしまいます。

その際の/var/log/apache2/error.logは、
Premature end of script headers: test.cgi
とだけ表示されます。

なんだか一番最初の所でつまづいてしまい、
めげそうになっております。
よろしくご教授ください。

A 回答 (1件)

まずはターミナルから、「 /Library/WebServer/CGI-Executables/test.cgi」として、直接実行してみてください。


ちゃんと実行できるか?
Content-Type: text/html

Hello Ruby
と3行表示されるかどうか?

一つ気になるのは、test.cgiが「円記号n」となっていることです。
私はブラウザでは\はバックスラッシュで表示するようにしてあるので、改行を表わす\nならバックスラッシュnと表示されるはずがそうなっていません。

Macの場合、使ったエディタや設定によっては、円記号とバックスラッシュは区別されます。
もし、ターミナルで実行して「Content-Type: text/html¥n¥nHello Ruby」とか「Content-Type: text/htmlnnHello Ruby」などと一行で表示されてしまうようなら、option+円記号で\を入力する必要があります。
    • good
    • 0

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