Ruby on Rails Linuxissa
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-dotfilesLuodaan RVM:lle alias, jotta pystymme kutsumaan sitä myös jatkossa:
$ source $HOME/.rvm/scripts/rvmAsennetaan rails:
$ sudo gem install railsHei Rails!
Luodaan "Hei Maailma" rails projekti:
$ mkdir -p /home/niko/public_html/
$ cd /home/niko/public_html/
$ rails new hello-railsAsennetaan Apache2
$ sudo apt-get -y install apache2
$ sudo a2enmod rewrite
$ sudo a2enmod userdir
$ sudo service apache2 restartAsennetaan Phusion Passenger
$ sudo apt-get -y install libapache2-mod-passengerLuodaan apacheen uusi virtualhost:
$ sudoedit /etc/apache2/sites-available/hello-rails.confKirjoita 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 restartTestaus
Otetaan sivustoon yhteyttä curlilla, todistaaksemme railsin toimivuuden:
$ curl -I hello-railsTulos:
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