Setting up a Rails 2.x application on BlueHost or HostMonster M. Six Silberman 26 Jul 2013 1. Make MySQL database and user; grant privileges 2. Install Rails gem; e.g.: $ gem install rails --version=2.1.2 --verbose --no-rdoc --no-ri 3. Create Rails app; e.g.: $ rails _2.1.2_ fartville 4. Create subdomain (e.g., fartville.wtf.tw) 5. Remove public_html subdirectory for subdomain; e.g.: $ rm -rf ~/public_html/fartville 6. Create symbolic link; e.g.: $ cd ~/public_html $ ln -s ~/fartville/public fartville 7. Edit config/database.yml; e.g.: development: adapter: mysql database: wtftw_fart_devel host: localhost username: wtftw_fart password: p00tp00t production: adapter: mysql database: wtftw_fart host: localhost username: wtftw_fart password: p00tp00t 8. Create public/.htaccess: Options -MultiViews PassengerResolveSymlinksInDocumentRoot on RailsEnv development RailsBaseURI / SetEnv GEM_HOME /home4/wtftw/ruby/gems 9. If not already there, add to ~/.bashrc: export HPATH=$HOME export GEM_HOME=$HPATH/ruby/gems export GEM_PATH=$GEM_HOME:/usr/lib64/ruby/gems/1.8 export GEM_CACHE=$GEM_HOME/cache export PATH=$PATH:$HPATH/ruby/gems/bin export PATH=$PATH:$HPATH/ruby/gems 10. Remove public/index.html 11. To test, add app/controllers/main_controller.rb: class MainController < ApplicationController def hello render :text => "Hello Rails" end end and replace config/routes.rb with: ActionController::Routing::Routes.draw do |map| map.root :controller => "main", :action => "hello" map.connect ':controller/:action/:id' map.connect ':controller/:action/:id.:format' end and browse to subdomain. "Hello Rails" should appear.