前回に引き続き、さくらインターネットへRubyonRailsのプロジェクトをデプロイする。

とりあえず試したい!という人は、適当にどこかからサンプルプロジェクトを引っ張ってきましょう。
WindowsならInstantRailsにCookbookなんかのサンプルがあるので、それを使うと良い良い。
ただ、前回の環境構築で設定したバージョンが合っている事を確認する必要がある。

まず、データベースの設定から。

開発環境時に使っていたdatabase.ymlはあくまでローカル用に最適化された設定なので、あまり役に立たない。
さくらインターネット側で使うデータベースの情報は、さくらインターネットのサーバーコントロールパネル内の
データベースの設定を参照することで入手できる。

まだデータベースを作成していない場合はさくっと作ってしまいましょー。
で、下記画像にある情報とdatabase.ymlとの対応は以下の通り。

WS000099

production:

  adapter: mysql
  encoding: utf8
  database: ①
  username: ②
  password: ④
  host: xxxxxxxxx.db.sakura.ne.jp

プロジェクトのデータベース構造をマイグレートする。

rake db:migrate RAILS_ENV="production"

見事成功。

次は実行環境もちゃんと設定する。
config/environment.rbの先頭行に以下を追加。

# Be sure to restart your server when you modify this file
$LOAD_PATH.push("$HOME/local/lib/ruby/site_ruby/1.8")
$LOAD_PATH.push("$HOME/local/lib/ruby")
ENV['GEM_HOME'] ||= '$HOME/local/lib/ruby/gem'
ENV['RAILS_RELATIVE_URL_ROOT']="/test"

ENV['RAILS_RELATIVE_URL_ROOT']=の先は作成したRailsのプロジェクト名にすること。
また上記各種パスは前回~/.cshrcに設定したものと同じにすること。

で、さっそくいつもどおりにサーバーを起動してみる。

ruby script/server

500 Internal Server Errorが出た。

ちょっと調べてみたところ、ちゃんとproductionで起動してない模様。
たぶんどっかのファイルで設定できると思うのだけど、横着して引数で何とかする。

ruby script/server -e production

まぁ、ただ実際の運用でアドレスに:3000なんて出すのはちょっと頂けないので、Apacheを使った方法においおい切り替えたほうがいいのかも。

参考リンク
http://iwatakenichi.blogspot.com/2007/08/ruby-on-rails-on-sakura-part3.html
http://nyon2.net/archives/2009/01/ruby-on-railsruby-on-rails.html