coreserverにRuby on Rails2.2.2を導入してみた。

coreserverには、SSHが使えるののでそれを使いつつ、ホームディレクトリにRuby on railsを導入してみた結果をまとめています。
実際には、3日間程度かかってしまいましたが・・・。

まずは、gemのインストール

mkdir /vartual/xxx/local
cd local
mkdir src
cd src
wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
tar zxvf rubygems-1.3.1.tgz
cd rubygems-1.3.1
ruby setup.rb -prefix=$HOME/local
gem ?v
1.3.1

.bachrc に以下の内容を追加

export PATH=$PATH:$HOME/local/bin:$HOME/local/lib/ruby/gem/bin:$HOME/local/include
export RUBYLIB=$HOME/local/lib/:$HOME/local/lib/ruby
export GEM_HOME=$HOME/local/lib/ruby/gem

変更を反映するために以下のコマンドを実行

source ~/.bashrc

つぎにsqlite3-ruby をインストール

gem install sqlite3-ruby

つぎにRailsのインストール

gem install ?i ?y rails –include-dependencies
rails ?v
2.2.2

次に、Railsのサンプルアプリをインストール

cd /virtual/xxx/
mkdir rails_app
cd rails_app
rails adbook

cd adbook

ここで、adbok/config/enviromentに以下の記述を追記

Be sure to restart your server when you modify this file

$LOAD_PATH.push(“/virtual/xxx/local/lib/”)
$LOAD_PATH.push(“/virtual/xxx/local/lib/ruby”)
ENV[‘GEM_HOME’] ||= ‘/virtual/xxx/local/lib/ruby/gem’

ENV[‘RAILS_RELATIVE_URL_ROOT’]=”/adbook”

また、adbook/public に以下の内容のhtaccessを追加

# General Apache options
#AddHandler fastcgi-script .fcgi
#AddHandler cgi-script .cgi

#AddHandler cgi-script-debug .cgi
Options +FollowSymLinks +ExecCGI

# If you don’t want Rails to look in certain directories,
# use the following rewrite rules so that Apache won’t rewrite certain requests
#
# Example:
#?? RewriteCond %{REQUEST_URI} ^/notrails.*
#?? RewriteRule .* – [L]

# Redirect all requests not available on the filesystem to Rails
# By default the cgi dispatcher is used which is very slow
#
# For better performance replace the dispatcher with the fastcgi one
#
# Example:
#?? RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
RewriteEngine On

# If your Rails application is accessed via an Alias directive,
# then you MUST also set the RewriteBase in this htaccess file.
#
# Example:
#?? Alias /myrailsapp /path/to/myrailsapp/public
#?? RewriteBase /myrailsapp

RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]

# In case Rails experiences terminal errors
# Instead of displaying this message you can supply a file here which will be rendered instead
#
# Example:
#?? ErrorDocument 500 /500.html

ErrorDocument 500 “<h2>Application error</h2>Rails application failed to start properly”

最後に公開領域へのシンボリックリンクを張ります。
ln ?s /virtual/xxx/rails_app/adbook/public/ /virtual/xxx/public_html/adbook

これで、http://xxx.coreserver.jp/adbook/ へアクセスすると以下のような画面が出てきます。

image

ちなみに、上記の画面が出てからリンクをクリックするを404 Not Found がでてしまうエラーに結構なやまされました。
以下、http://nyon2.net/archives/2009/01/ruby-on-railsruby-on-rails.html
このコメントを参考にしました。

Welcome aboard」のページが表示されます。
ここの「About your application’s environment」をクリックしてみてください。

  • Application error “Rails application failed to start properly”が出る ⇒config/environment.rbの設定が間違ってる可能性があります。
    パスを再確認してください。
  • Routing error “No route matches “/test/rails/info/properties” with {:method=>:get}”が出る
    ⇒config/environment.rbに
    ENV[‘RAILS_RELATIVE_URL_ROOT’]=”/test”を追加してください。
    もしくは、public/.htaccessのRewriteの設定が間違ってる可能性アリ
  • For security purposes, this information is only available to local requests.と出る
    ⇒おめでとうございます。成功しました。これで終わりです。
  • no such file to load — sqlite3というエラーが出る
    ⇒以下に進んでください
  • 僕はここで、no such file to load — sqlite3というエラーが出ました。
    これは、sqlite3-rubyが入ってないせいです。入れます。

これで、あとは実際にアプリケーションを開発すれば、サイト公開もスムーズです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

前の記事

Ruby on Rails を導入

次の記事

debian 5.0 が公開