coreserverにRuby on Rails 2.1.0をインストールしてみた
8月 5th, 2008 Posted in ruby, Ruby on Railscoreserverに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で、ほかはデフォルトでいけたと思います。
[OK]をクリックすると、SSH認証のダイアログが開きます。ユーザ名とパスフレーズにそれぞれcoreserverの管理メニュー[FTP設定]のFPTアカウント、FPTパスワードを入れます。
[OK]ボタンをクリックすると、coreserverに接続されます。[OK]ボタンをクリックしてもダイアログが閉じない場合は、coreserver側の準備ができていないので、もうちょっと待ってみてください。
RubyGemsのインストール
coreserverには最初からRubyが入っているので、Rubyはそれを使います。最初の作業は、パッケージ管理のRubyGemsをインストールすることです。まずは、~/.bashrcというファイルを作成して、PATHを通すために次を書きます。ファイルの編集の仕方はテキトウに調べてください。ボクはvimを使っています。
- export PATH=$PATH:$HOME/bin:$HOME/lib/ruby/gem/bin
- export RUBYLIB=$HOME/lib/:$HOME/lib/ruby
- export GEM_HOME=$HOME/lib/ruby/gem
この変更を反映するために、次を実行。
- >source ~/.bashrc
次にRubyGemsをダウンロードして解凍します。
- >mkdir ~/temp
- >cd ~/temp
- >wget http://rubyforge.org/frs/download.php/38646/rubygems-1.2.0.tgz
- >tar xvzf rubygems-1.2.0.tgz
- >cd rubygems-1.2.0
- >ruby setup.rb config --prefix=$HOME
途中でkillされることがあるので、その場合はもう一度
- >ruby setup.rb --prefix=$HOME
を実行します。終わったみたいに感じたら、バージョンを確認してみます。
- >gem -v
- >1.2.0
どうやら無事にRubyGemsが入ったみたいです。
railsのインストール
次にrailsを入れます。
- >gem install rails --include-dependencies
これだけでrailsがインストールされます。インストールが完了したらrailsのバージョンをチェックします。
- >rails -v
- >Rails 2.1.0
やったー!なんとかインストール成功!
サンプルアプリで動作確認
次はサンプルアプリを作り、ブラウザから動きを見てみます。
- >mkdir ~/ror_app
- >cd ~/ror_app
- >rails -d mysql adbook
いろいろなファイルが作成されます。~/ror_app/adbook/config/database.xmlをエディタで開き、developmentの以外の項目を削除して、developmentの必要な項目を記入します。
- development:
- adapter: mysql
- encoding: utf8
- database: xxxx_adbook
- username: xxxx_adbook
- password: password
- socket: /tmp/mysql.sock
- host: localhost
databaseとusernameはcoreserverの場合、同じです。passwordはMySQLのパスワードを設定します。
このdatabase.xmlの設定をもとにrakeでDataBaseを作ります。
- >rake db:create:all
なぜか失敗します。database.xmlの書き方が悪いのかもしれないけど、よくわからんのでcoreserverのphpMyAdminでdatabaseを作成します。作成したdatabaseは、database.xmlで設定した内容と同じです。
scaffoldで一気にやっちゃいます。
- >ruby script/genarate scaffold adbook name:string phone;string address:string memo:text
最後にrakeでDBをmigrateします。
- >rake db:migrate
これでサンプルアプリの準備は完了ですが、ちょっと設定が必要です。~/ror_app/adbook/config/environment.rbの先頭に、次を追加します。
- $LOAD_PATH.push("/virtual/xxxx/lib/ruby")
- ENV['GEM_HOME'] ||= '/virtual/xxxx/lib/ruby/gem'
次に、~/ror_app/adbook/public/.htaccessを作成して、次のように記述します。
- AddHandler fastcgi-script .fcgi
- AddHandler cgi-script .cgi
- #AddHandler cgi-script-debug .cgi
- Options +FollowSymLinks +ExecCGI
- RewriteEngine On
- RewriteBase /adbook/
- RewriteRule ^$ index.html [QSA]
- RewriteRule ^([^.]+)$ $1.html [QSA]
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
- ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"
このサンプルアプリは~/ror_app/adbook/public/を公開しないとブラウザからは見れないので、ブラウザから見えるところからシンボリックリンクを張ります。
- >cd ~/public_html/www.xxxx.com
- >ln -s ~/ror_app/adbook/public/ adbook
これで、ブラウザからhttp://www.xxxx.com/adbook/にアクセスすればrailsの画面が出てきます。[About your application’s environment]と書いてあるところをクリックして、次のように表示されればOKです。
もし次のように表示された場合は、
~/ror_app/adbook/public/.htaccessを次のように変更します。
- AddHandler cgi-script .cgi
- ↓
- #AddHandler cgi-script .cgi
- #AddHandler cgi-script-debug .cgi
- ↓
- 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で確認できます。
6 Responses to “coreserverにRuby on Rails 2.1.0をインストールしてみた”
By sora on 8月 6, 2008
おつかれさまでしたー。
これで rails おもいっきりできやすね!
By ヨスケ on 8月 6, 2008
インストールしたことに満足して、まだなにもやってませんが・・・。
By fukusuke on 12月 7, 2010
凄いですねー!
rails3の方は試されてみましたか?
By yosuke on 1月 3, 2011
最近は技術的なことから離れているので、試していないです。