人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Mac OSX Lionで簡単なCGI/Rubyが動かず困っております

-----
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
とだけ表示されます。

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

●質問者: weed_7777
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● oil999
●20ポイント

スクリプトのパーミッションを 755 にしてみてください。
Apacheのセキュリティ設定の関係で、777 は実行されない場合があります。


weed_7777さんのコメント
そんなことがあるんですか・・・アドバイス有難うございます。 パーミッションを755にしてやってみたのですが、 結果は変わらず、エラーメッセージも同じでした。 むーん、どうしてなんでしょう。

oil999さんのコメント
スクリプトファイルをBOM付きUTF-8で保存していませんか? BOM無しUTF-8で保存してください。

2 ● cx20
●80ポイント ベストアンサー
print "Content-Type: text/html¥n¥n"

もしかして「¥n¥n」が UNICODE 文字だったりしませんか?
(たまにサンプルコードで、表示がバックスラッシュになることを避ける為に、UNICODE 文字が使われているケースがあります。)

試しにターミナルで、

$ ./test.cgi

を実行して意図した改行になっているか確認してみてください。
「¥n¥n」の文字が表示されるようであれば UNICODE 文字の可能性があります。
その場合は、再度「\n\n」を入力し直してみてください。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ