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
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”.
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
gem install rails OR # (Enter Y for all dependencies) gem install rails --include-dependencies
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
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.
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
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 🙂
Installing Ruby on Rails in Plesk http://wiki.rubyonrails.com/rails/pages/HowtoInstallAndRunRubyOnRailsOnPlesk
About the author:
Rashid Mullali Mohamed Kunhi works in Bobcares as Jr. Engineer. He primarily works on Plesk servers on Linux.