OSXのApacheでRubyをCGIとして動かす

OSXに標準で付属するApacheでrubyのスクリプトをCGIとして動かすメモ。 # rubyってCGIで動かすのが普通なの?

Apacheの起動は環境設定/共有からWeb共有をON/OFFすればいいんだけど、コマンドラインからどうやるのかな。調べる。

~/Sitesがhttp://localhost/~usernameになるけど、標準ではただのディレクトリなので、CGIが起動できるようにする。OSX SLでは/etc/apache2/users/にusername.confがあってこれがユーザディレクトリの設定ファイルなので、これを編集する。このファイル、以前は/etc/httpd/users/にあったのかな。

AddHandler cgi-script .cgi .rb
Options Indexes MultiViews ExecCGI
AllowOverride All

AddHandlerは新しく追加。それからCGIが起動できるようにExecCGIをOptionsに追加。あと.htaccessを使いたくなることは分かっているのでAllowOverrideはAllに設定。

あとはこれで.rbファイルが動くのだけどCGIの感覚をすっかりわすれていて、500が表示されて困った。コンテンツを吐き出すときはContent−typeヘッダを最初に吐かないといけないんだった。

puts “Content-type: text/htmlnn”

puts “Hello world.”

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください