Rubyをローカルで開発したかった。
そもそもVMwareでFreeBSDを動かしたいと思った最初の発端は、さくらのレンサバにいちいち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をインストールしました。
これでgVimでFreeBSDに置いてあるファイルの直接編集が可能になります。
で、Apacheもインストールしたので、Windowsを設定してFreeBSDのApacheをlocalhostとしてみなします(たぶん。。。)
C:\WINDOWS\system32\drivers\etc\hostsを編集します。
環境に合わせてIPアドレスとサーバ名を追記。
192.168.1.22 home.freebsd.ne.jp
rubyをCGIとして使う
/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にする必要があります。