Select Page

Deploying Ruby on Rails

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. good article on installation of ruby and it’s extension above method working for me.

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

Trackbacks/Pingbacks

  1. Bobcares Blog » Roll Ruby On Rails in Windows :: Installation - [...] You can get more information about Ruby on Rails at: https://bobcares.com/index.php/blog/?p=84. [...]
Bobcares
Bobcares is a server management company that helps businesses deliver uninterrupted and secure online services. Our engineers manage close to 51,500 servers that include virtualized servers, cloud infrastructure, physical server clusters, and more.
MORE ABOUT BOBCARES