Rubyをローカルで開発したかった。

そもそもVMwareFreeBSDを動かしたいと思った最初の発端は、さくらのレンサバにいちいちSubversionでコミットするのがめんどくさくなったから、であったのに。。。
  いやあ、いろいろ寄り道していつの間にか2月も中旬ジャマイカ!!
  今日こそローカル開発がしたい!!

Apacheインストール

もうportsから抜け出せそうにもなく、抜け出す気もないので、portsからインストール。

% cd /usr/ports/www/apache20/
% sudo ./configure
% sudo make
% sudo make install clean
httpd.confを編集

なぜかApacheが/usr/local/etc/apache2/にhttpd.confに入ってる。。。
  これが普通なんかな。

% cp /usr/local/etc/apache2/httpd.conf /usr/local/etc/apache2/httpd.conf.default
% vi /usr/local/etc/apache2/httpd.conf
DocumentRoot "/usr/home/www/workspace"
# CGIを使えるように
<Directory "/usr/home/www/workspace/ruby">
    Options +ExecCGI
    AllowOverride None    Order allow,deny
    Allow from all
</Directory>
# 環境に合わせてエイリアス設定
ScriptAlias /cgi-bin/ "/usr/home/www/workspace/ruby/cgi-bin/"
# コメントをはずす
AddHandler cgi-script .cgi

Apacheを起動。

% sudo apachectl configtest
syntax OK
% sudo apachectl start

Windowsの設定

先日のエントリー(ひそかに10日も経ってるが、、、)でSambaをインストールしました。
  これでgVimFreeBSDに置いてあるファイルの直接編集が可能になります。
  で、Apacheもインストールしたので、Windowsを設定してFreeBSDApachelocalhostとしてみなします(たぶん。。。)
C:\WINDOWS\system32\drivers\etc\hostsを編集します。
  環境に合わせてIPアドレスとサーバ名を追記。

192.168.1.22    home.freebsd.ne.jp

rubyCGIとして使う

/usr/home/www/workspace/ruby/cgi-bin/以下にhello.cgiを作成します。内容はベタに以下のような感じ。

#!/usr/local/bin/ruby

require "cgi" 
cgi = CGI.new
print cgi.header("type"=>"text/html")
print "hello world"

で、http://home.freebsd.ne.jp/ruby/cgi-bin/hello.htmlにアクセス。
  したはいいもののなぜかInternalError...
/var/log/http-error.logを見てみると、

(2)No such file or directory: exec of '/usr/home/ryo/workspace/lab/cgi-bin/test.cgi' failed
Premature end of script headers: hello.cgi

どうやら権限がない模様、ってことでnobodyさんに実行権限を与えてあげる。

% sudo chmod 755 /usr/home/ryo/workspace/lab/cgi-bin/test.cgi

再度アクセス。無事にhello worldが表示されましたとさ。

注意事項

今回はWindows側からエディターにて直接ファイルを作成しているので、改行コードをLFにする必要があります。