さくらサーバのRoR環境でHello worldを表示させる

rubygems.rbの書き換え(必須!)

僕はこれをミスってハマった。
ファイルの場所:$HOME/lib/ruby/lib/ruby/site_ruby/1.8/rubygems.rb

書換前:set_home(ENV['GEM_HOME'] || default_dir) unless @gem_home
書換後:set_home('/home/id/lib/ruby/gem' || default_dir) unless @gem_home

railsプロジェクトの作成

$HOME/rails以下にhogeプロジェクトを作成

% mkdir $HOME/rails
% rails $HOME/rails/hoge

hoge/public/.htaccessの書き換え

以下の3行をコメントアウトする
書換前

AddHandler fastcgi-script .fcgi
AddHandler cgi-script .cgi
Options +FollowSymLinks +ExecCGI

書換後

# AddHandler fastcgi-script .fcgi
# AddHandler cgi-script .cgi
# Options +FollowSymLinks +ExecCGI

hoge/config/environment.rbを書き換え

ファイルに以下の2行を追加

$LOAD_PATH.push("/home/id/ruby/lib/ruby/site_ruby/1.8")
$LOAD_PATH.push("/home/id/ruby/lib/ruby")

hoge/publicにシンボリックリンクを張る

リンク元: $HOME/rails/hoge/public
リンク先: $HOME/www/hoge

% ln -s $HOME/rails/hoge/public $HOME/www/hoge

(一応)rails hogeの動作確認

http://id.sakura.ne.jp/hoge/にて、Welcom aboardの表示を確認

Hello worldの作成

% cd $HOME/rails/hoge
% ./script/generate controller hello

app/controllers/hello_controller.rbの編集

class HelloController < ApplicationController
  def index
  end
end

vim app/views/hello/index.rhtmlを作成。

Hello world!

Hello worldの動作確認

http://id.sakura.ne.jp/hoge/hello にアクセスし、「Hello world!」が表示されるのを確認。

課題

なお、http://xxx.sakura.ne.jp/hoge/dispatch.cgiにアクセスすると、

Routing Error

no route found to match "/dispatch.cgi" with {:method=>:get}

との表示が。.htaccessの設定だと思うので、あとで調べよう。