OS XのWeb共有でeRubyを動かせるようにしてみた
OS XのWeb共有でCGIが動かせるようになったので、今度は拡張子 .rhtml でeRubyのファイルを実行できるようにしてみた。
ruby実装のerbでも良いのだけど、性能を考えるとC実装のerubyの方が良いかな*1、ということで、以下からerubyのソースをダウンロード。
http://www.modruby.net/ja/index.rbx/eruby/download.html
コンパイルとインストールは、あっけないほど簡単に終了。
$ ./configure.rb $ make $ sudo make install
apacheからerubyを起動できるように、以下のコマンドでerubyの実行ファイルをCGIの実行ファイル置き場にコピー。
$ sudo cp eruby /Library/WebServer/CGI-Executables/
拡張子".rhtml"でerubyを起動するように、ユーザ毎の設定ファイル"/etc/apache2/users/<ユーザー名>.conf"を、以下のように記述。4行目のAddTypeと5行目のActionが、erubyのために追加した行です。
<Directory "/Users/<ユーザ名>/Sites/cgi/"> AddHandler cgi-script cgi Options ExecCGI AddType application/x-httpd-eruby .rhtml Action application/x-httpd-eruby /cgi-bin/eruby </Directory>
システム環境設定のWeb共有のチェックボックスOFF/ONでWeb共有(Apache)を再起動してから、例えば以下のような ~/Sites/cgi/hello.rhtml で動作確認。
<html> <head><title>Hello!</title> </head> <body> <p>Hello, world!!</p> <p>This tests eruby. Current time: <%= Time.now %></p> </body> </html>
ついでに、環境変数を一覧表示するerubyスクリプトも動かしてみる。
<% ERuby.charset = "utf-8" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title>環境変数一覧</title> </head> <body> <h1>環境変数一覧</h1> <table border> <tr><th>名前</th><th>値</th> <% ENV.each do |key,value| %> <tr><td><%=key%></td><td><%=value%></td></tr> <% end %> </table> </body> </html>
なお、1行目の Eruby.charset = "utf-8" は、ブラウザで文字化けさせないために必要。
*1:erubyより速いErubis(http://www.kuwata-lab.com/erubis/)というのがあるのを後で知った・・・。今度試してみるかな。→試してみた