Bobcares

Deploying Ruby on Rails

by | Mar 28, 2006

This article is an introduction to the installation and deployment of Ruby on Rails.

What is Ruby on Rails?

Ruby is a programming language just like Perl, Python or PHP. Rails is an open source Ruby framework for developing database-backed web applications. You could develop a web application at least ten times faster with Rails than you could with a typical Java framework. It is a web application framework written in the Ruby programming language.

We tried the installation of Ruby on Rails on a server with this configuration:
1. Red Hat Linux release 7.3
2. Plesk 5.0.5
3. Apache 1.3.27
4. PHP 4.3.4 # Run as an Apache Module

Install Ruby

Before installing Ruby, first check if zlib is installed in PHP. You can do this by running a simple script with this code.

<?php phpinfo(); ?>

Now you are all set to start the installation.

 cd /usr/local/src
 wget ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.2.tar.gz
 tar xvzf ruby-1.8.2.tar.gz
 cd ruby-1.8.2
 ./configure
 make
 make install
 ruby rubytest.rb

If the installaiton is successful, then you will get a message “test succeeded”.

Install RubyGems

 cd /usr/local/src
 wget http://rubyforge.org/frs/download.php/5207/rubygems-0.8.11.tgz
 tar xvzf rubygems-0.8.11.tgz
 cd rubygems-0.8.11
 ruby setup.rb all

This step involves execution of `ruby setup.rb` with arguments `config / setup / install` all together

 gem query --local
OR
 gem q -L

Listing all installed gems

Install Rails

 gem install rails   OR # (Enter Y for all dependencies)
 gem install rails --include-dependencies

Install FastCGI

 wget http://fastcgi.com/dist/fcgi-2.4.0.tar.gz
 tar -xvzf fcgi-2.4.0.tar.gz
 cd fcgi-2.4.0
 ./configure
 make
 make install

Install mod_fastcgi

 wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz
 tar -xvzf mod_fastcgi-2.4.2.tar.gz
 cd mod_fastcgi-2.4.2
 /path/to/apxs -o mod_fastcgi.so -c *.c
 /path/to/apxs -i -a -n fastcgi mod_fastcgi.so

In Apache’s httpd.conf, add this line.

 Include /path/to/httpd/conf/fastcgi.conf

Now, add this text to fastcgi.conf

cat > /path/to/httpd/conf/fastcgi.conf
    User apache
    Group apache
    <IfModule mod_fastcgi.c>
    FastCgiConfig -idle-timeout 900
    AddHandler fastcgi-script .fcgi .fpl .rb
    FastCgiIpcDir /tmp/fastcgi_ipc/
    FastCgiSuexec /usr/sbin/suexec
 To make FastCGI run as suexec. Use path to suexec
    </IfModule>

Ctrl + D
 mkdir /tmp/fastcgi_ipc/
 chown -R apache.apache /tmp/fastcgi_ipc
 chmod 700 /tmp/fastcgi_ipc/
 service httpd restart

NOTE : In some systems, the ownership of fastcgi_ipc is done by Apache itself, but its safe to include these steps in your routine.

Related files: /usr/local/lib/ruby/gems/1.8/gems/rails-1.0.0/dispatches/dispatch.fcgi # OR ~USER/<app_name>/public/dispatch.fcgi # Log file declaration & all

Install gem bindings

To install gem bindings for Fastcgi and MySQL

 gem install fcgi
 gem install mysql

Testing

1. Install Test Application

 cd ~USER
 rails testapp  # Create a test application named 'testapp'
 cd testapp/
 ./script/generate controller test
 cd ~USER/httpdocs
 ln -s ~USER/testapp/public rails
# In order to access the test application
'~USER/testapp/public' from the browser

In order to allow symlinks, enter the following in to ~USER/httpdocs/.htaccess

 Options Indexes +FollowSymLinks

Now you need to set the correct ownership and permissions for the test application. I did the following for my project. You can learn from the example:

 cd ~USER
 chown -R USER.psacln testapp
 chmod -R 755 testapp
 chown -R USER.psacln httpdocs/rails
 chmod -R 755 httpdocs/rails

Create Test Pages

cd ~USER
cd ~USER/testapp/app/controllers

Create a file called test_controller.rb and put in the following code:

cat > test_controller.rb
  class TestController < ApplicationController
  def hi
  render :text => 'Hi world'
  end
  def hello
  end
  def index
  render :text => 'Hi! This is the Index.'
  end
  end
Ctrl + D

Now create the test page.

cat > ~USER/testapp/app/views/test/hello.rhtml # The test page
  <html>
   <head>
     <title>Hello World</title>
   </head>
   <body>
     <h1>Hello from Rails!</h1>
     <p>The current time is <%= Time.now %></p>
   </body>
 </html>

Ctrl + D

Now just access the URL: http://yourdomain/rails/test/hi

NOTE:- Remember to change ownership of the test pages you created.

Congrats! You have installed Ruby On Rails 🙂

Reference:

Installing Ruby on Rails in Plesk http://wiki.rubyonrails.com/rails/pages/HowtoInstallAndRunRubyOnRailsOnPlesk


Articles by Rashid Mullali Mohamed Kunhi About the author:
Rashid Mullali Mohamed Kunhi works in Bobcares as Jr. Engineer. He primarily works on Plesk servers on Linux.

2 Comments

  1. Ruby on Rails Outsourcing

    good article on installation of ruby and it’s extension above method working for me.

  2. X-Cart Developer

    Such a useful information sharing and it’s really very helpful for everyone. Thanks for sharing that.

Never again lose customers to poor
server speed! Let us help you.