Tämän ohjeen mukaisesti on saatu testatusti toimimaan oma kehitysympäristöni Xubuntu 13.10 saucy. Ubuntu 12.04 LTS ei aikaisemman testin perusteella toiminut, mutta tulen lähipäivinä päivittämään tämän ohjeen toimimaan myös sillä.

Asennetaan Ruby on Rails

Testattuani asentaa Ruby on Rails moneen eri linuxin levityspakettiin tai niiden eri versioihin, olen tullut siihen johtopäätökseen että järkevintä on asentaa RVM (Ruby Version Manager), jonka kautta hallitaan Rubya. RVM löytyy myös pakettivarastosta, mutta siellä on tällä hetkellä vanha ja buginen versio, joten järkevintä on asentaa se RVM:n repositorista:

$ sudo apt-get update
$ sudo apt-get -y install curl
$ sudo curl -L https://get.rvm.io | bash -s stable --ruby --autolibs=enable --auto-dotfiles

Luodaan RVM:lle alias, jotta pystymme kutsumaan sitä myös jatkossa:

$ source $HOME/.rvm/scripts/rvm

Asennetaan rails:

$ sudo gem install rails

Hei Rails!

Luodaan "Hei Maailma" rails projekti:

$ mkdir -p /home/niko/public_html/
$ cd /home/niko/public_html/
$ rails new hello-rails

Asennetaan Apache2

$ sudo apt-get -y install apache2
$ sudo a2enmod rewrite
$ sudo a2enmod userdir
$ sudo service apache2 restart

Asennetaan Phusion Passenger

$ sudo apt-get -y install libapache2-mod-passenger

Luodaan apacheen uusi virtualhost:

$ sudoedit /etc/apache2/sites-available/hello-rails.conf

Kirjoita seuraava koodi hello-rails -tiedostoon (korvaa home-kansion käyttäjä omalla):

<VirtualHost *:80>
  RailsEnv development
  ServerName hello-rails
  DocumentRoot /home/niko/public_html/hello-rails/public/
</VirtualHost>

Hyväksy uusi sivusi, ja lataa Apache:n asetukset uudestaan:

$ sudo a2ensite hello-rails.conf
$ sudo service apache2 restart

Testaus

Otetaan sivustoon yhteyttä curlilla, todistaaksemme railsin toimivuuden:

$ curl -I hello-rails

Tulos:

HTTP/1.1 200 
Date: Thu, 05 Dec 2013 16:10:47 GMT
Server: Apache/2.4.6 (Ubuntu)
X-Powered-By: Phusion Passenger (mod_rails/mod_rack) 3.0.13
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-UA-Compatible: chrome=1
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: d63000a5-d953-4346-bf1f-4a9c4ff4f8db
X-Runtime: 0.009467
Set-Cookie: request_method=HEAD; path=/
ETag: "9fdff472a0cc0802ae8009cd2322f2da"
Status: 200
Content-Type: text/html; charset=utf-8

Lähteet

https://rvm.io/rvm/install