
This morning I put on my system admin hat at work once again. The challenge was to setup a Rails development environment on our production server at the cloud and then deploy a Rails application on Apache.
This article is not really a tutorial, although it’s posted under How-to category. It’s more like a log of my actions in carrying out this task; the problems I faced and what I did to get around them, so that I can trace them back if I ever partake a similar task in future.
Rails have several deployment options and Phusion Passenger a.k.a. Mod Rails is the principle of them. It supports both Apache and the lightweight Nginx Server. Check out there documentation page.
Here’s how it went
Logged into the remote server(CentOS 5.0) using ssh
Installed Rails
gem install -v=2.2.2 rails
Installed MySQL gem
gem install mysql — –with-mysql-include=/usr/include/mysql –with-mysql-lib=/usr/lib/mysql/
Installed Phusion Passenger
gem install passenger
Warning received. Required Software missing
Apache 2 development headers… not found
Installed Apache 2 Development Headers
yum install httpd-devel
Installed Apache module for Passenger
passenger-install-apache2-module
Configured Apache 2 to load the mod_passenger module by adding these lines in /etc/httpd/conf/httpd.conf
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.6
PassengerRuby /usr/bin/ruby
Uploaded a sample Rails App(myrailsapp) to /home
Added following lines in /etc/httpd/conf/httpd.conf to create a new virtual host
<VirtualHost *:80>
ServerName rails.myserver.com
DocumentRoot /home/myrailsapp/public
RailsEnv development
</VirtualHost>
Restart Apache
service httpd restart
Went to http://rails.myserver.com.
Standard Error page for Phusion Passenger displayed. Instructed to consult Apache error log
Checked out the Apache Error Log
cat /etc/httpd/logs/error_log
The last error was
Rails requires RubyGems >= 1.3.1 (you have 1.2.0). Please `gem update –system` and try again.
Updated RubyGems
gem install rubygems-update
update_rubygems
Restarted Apache and went to http://rails.myserver.com again. The following error was showing on the page
no such file to load — sqlite3
Reason: SQLite3-Ruby Gem missing. Tried to install it
gem install sqlite3-ruby
Failed. The system doesn’t have SQLite3 installed
checking for sqlite3.h… no
Installed SQLite3 by building in from source
wget http://www.sqlite.org/sqlite-amalgamation-3.6.17.tar.gz
tar xvzf sqlite-amalgamation-3.6.17.tar.gz
cd sqlite-3.6.17
./configure
make
make install
Installed SQLite3-Ruby Gem
gem install sqlite3-ruby
Restarted Apache and visited http://rails.myserver.com
SUCCESS!



