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

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

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

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

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

WS000099

[code]
production:

adapter: mysql
encoding: utf8
database: ①
username: ②
password: ④
host: xxxxxxxxx.db.sakura.ne.jp ③
[/code]

プロジェクトのデータベース構造をマイグレートする。
[code]
rake db:migrate RAILS_ENV="production"
[/code]
見事成功。

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

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

で、さっそくいつもどおりにサーバーを起動してみる。
[code]
ruby script/server
[/code]

500 Internal Server Errorが出た。

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

まぁ、ただ実際の運用でアドレスに: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