WindowsプログラマのWebアプリへの挑戦日記。あとパンとか。

coreserverにRuby on Rails 2.1.0をインストールしてみた

8月 5th, 2008 Posted in ruby, Ruby on Rails

coreserverにRuby on Rails 2.1.0をインストールしたので、作業の記録を残しておきます。

SSHでcoreserverに接続

railsを入れるには、SSHでサーバーにログインして作業する必要があります。

ボクはwindowsから作業するので、Tera Termを使用しています。このあたりからダウンロードすればいけると思います。

SSHでログインする前にcoreserverにどこから接続するかという情報を登録します。coreserverの管理メニューで、[ホスト情報登録]から[SSH登録]というボタンをクリックします。

そのまま待っとくと5分ほどで反映されてるはずですので、しばらくしてからTera Termをおもむろに起動します。

Tera Termを起動すると、接続の設定をするダイアログが開くので、TCP/IPのラジオボタンにチェックをいれ、ホストに[sxx.coreserver.jp]と入れます。coreserverの管理メニュー[FTP設定]のFPTサーバーを入れてください。サービスはSSHで、ほかはデフォルトでいけたと思います。

Tera Term - Ruby on Rails 2.1.0をインストール

[OK]をクリックすると、SSH認証のダイアログが開きます。ユーザ名とパスフレーズにそれぞれcoreserverの管理メニュー[FTP設定]のFPTアカウント、FPTパスワードを入れます。

Tera Term - Ruby on Rails 2.1.0をインストール

[OK]ボタンをクリックすると、coreserverに接続されます。[OK]ボタンをクリックしてもダイアログが閉じない場合は、coreserver側の準備ができていないので、もうちょっと待ってみてください。

RubyGemsのインストール

coreserverには最初からRubyが入っているので、Rubyはそれを使います。最初の作業は、パッケージ管理のRubyGemsをインストールすることです。まずは、~/.bashrcというファイルを作成して、PATHを通すために次を書きます。ファイルの編集の仕方はテキトウに調べてください。ボクはvimを使っています。

  1. export PATH=$PATH:$HOME/bin:$HOME/lib/ruby/gem/bin
  2. export RUBYLIB=$HOME/lib/:$HOME/lib/ruby
  3. export GEM_HOME=$HOME/lib/ruby/gem

この変更を反映するために、次を実行。

  1. >source ~/.bashrc

次にRubyGemsをダウンロードして解凍します。

  1. >mkdir ~/temp
  2. >cd ~/temp
  3. >wget http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz
  4. >tar xvzf rubygems-1.2.0.tgz
  5. >cd rubygems-1.2.0
  6. >ruby setup.rb config --prefix=$HOME

途中でkillされることがあるので、その場合はもう一度

  1. >ruby setup.rb --prefix=$HOME

を実行します。終わったみたいに感じたら、バージョンを確認してみます。

  1. >gem -v
  2. >1.2.0

どうやら無事にRubyGemsが入ったみたいです。

railsのインストール

次にrailsを入れます。

  1. >gem install rails --include-dependencies

これだけでrailsがインストールされます。インストールが完了したらrailsのバージョンをチェックします。

  1. >rails -v
  2. >Rails 2.1.0

やったー!なんとかインストール成功!

サンプルアプリで動作確認

次はサンプルアプリを作り、ブラウザから動きを見てみます。

  1. >mkdir ~/ror_app
  2. >cd ~/ror_app
  3. >rails -d mysql adbook

いろいろなファイルが作成されます。~/ror_app/adbook/config/database.xmlをエディタで開き、developmentの以外の項目を削除して、developmentの必要な項目を記入します。

  1. development:
  2.   adapter: mysql
  3.   encoding: utf8
  4.   database: xxxx_adbook
  5.   username: xxxx_adbook
  6.   password: password
  7.   socket: /tmp/mysql.sock
  8.   host: localhost

databaseとusernameはcoreserverの場合、同じです。passwordはMySQLのパスワードを設定します。

このdatabase.xmlの設定をもとにrakeでDataBaseを作ります。

  1. >rake db:create:all

なぜか失敗します。database.xmlの書き方が悪いのかもしれないけど、よくわからんのでcoreserverのphpMyAdminでdatabaseを作成します。作成したdatabaseは、database.xmlで設定した内容と同じです。

scaffoldで一気にやっちゃいます。

  1. >ruby script/genarate scaffold adbook name:string phone;string address:string memo:text

最後にrakeでDBをmigrateします。

  1. >rake db:migrate

これでサンプルアプリの準備は完了ですが、ちょっと設定が必要です。~/ror_app/adbook/config/environment.rbの先頭に、次を追加します。

  1. $LOAD_PATH.push("/virtual/xxxx/lib/ruby")
  2. ENV['GEM_HOME'] ||= '/virtual/xxxx/lib/ruby/gem'

次に、~/ror_app/adbook/public/.htaccessを作成して、次のように記述します。

  1. AddHandler fastcgi-script .fcgi
  2. AddHandler cgi-script .cgi
  3. #AddHandler cgi-script-debug .cgi
  4. Options +FollowSymLinks +ExecCGI
  5.  
  6. RewriteEngine On
  7. RewriteBase /adbook/
  8.  
  9. RewriteRule ^$ index.html [QSA]
  10. RewriteRule ^([^.]+)$ $1.html [QSA]
  11. RewriteCond %{REQUEST_FILENAME} !-f
  12. RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
  13.  
  14. ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"

このサンプルアプリは~/ror_app/adbook/public/を公開しないとブラウザからは見れないので、ブラウザから見えるところからシンボリックリンクを張ります。

  1. >cd ~/public_html/www.xxxx.com
  2. >ln -s ~/ror_app/adbook/public/ adbook

これで、ブラウザからhttp://www.xxxx.com/adbook/にアクセスすればrailsの画面が出てきます。[About your application’s environment]と書いてあるところをクリックして、次のように表示されればOKです。

Ruby on Rails サンプルアプリ 成功

もし次のように表示された場合は、

Ruby on Rails サンプルアプリ 失敗

~/ror_app/adbook/public/.htaccessを次のように変更します。

  1. AddHandler cgi-script .cgi
  2. #AddHandler cgi-script .cgi
  1. #AddHandler cgi-script-debug .cgi
  2. AddHandler cgi-script-debug .cgi

これでもう一度http://www.xxxx.com/adbook/にアクセスして表示されるメッセージをたよりに原因を追究してみてください。原因がわかったら~/ror_app/adbook/public/.htaccessを元に戻さないと正常に表示されません。

正常に動作すると、http://www.xxxx.com/adbook/adbooksにアクセスするとアドレス帳が表示されます。[New adbook]からアドレスを追加してください。

ちなみにボクが今回作業したのは、http://www.its55.com/adbook/adbooksで確認できます。

こちらもオススメ!

Trackback URL

Post a Comment