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.”