-----
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
とだけ表示されます。
なんだか一番最初の所でつまづいてしまい、
めげそうになっております。
よろしくご教授ください。
print "Content-Type: text/html¥n¥n"
もしかして「¥n¥n」が UNICODE 文字だったりしませんか?
(たまにサンプルコードで、表示がバックスラッシュになることを避ける為に、UNICODE 文字が使われているケースがあります。)
試しにターミナルで、
$ ./test.cgi
を実行して意図した改行になっているか確認してみてください。
「¥n¥n」の文字が表示されるようであれば UNICODE 文字の可能性があります。
その場合は、再度「\n\n」を入力し直してみてください。
print "Content-Type: text/html¥n¥n"
もしかして「¥n¥n」が UNICODE 文字だったりしませんか?
(たまにサンプルコードで、表示がバックスラッシュになることを避ける為に、UNICODE 文字が使われているケースがあります。)
試しにターミナルで、
$ ./test.cgi
を実行して意図した改行になっているか確認してみてください。
「¥n¥n」の文字が表示されるようであれば UNICODE 文字の可能性があります。
その場合は、再度「\n\n」を入力し直してみてください。
そんなことがあるんですか・・・アドバイス有難うございます。
2012/03/04 23:23:19パーミッションを755にしてやってみたのですが、
結果は変わらず、エラーメッセージも同じでした。
むーん、どうしてなんでしょう。
スクリプトファイルをBOM付きUTF-8で保存していませんか?
2012/03/05 07:17:12BOM無しUTF-8で保存してください。