Ruby on Rails är ett framework för att utveckla webapplikationer. Det bygger på ruby som är ett objektorienterat högnivårspråk. Det skiljer sig i mångt och mycket från det vanligare språket php. Det som är spännande med just ruby är dels att objektorienteringen är så djupt integrerad som den är, samt att det tillsammans med frameworket Rails blir en fantastisk plattform att utveckla på.
Googla efter guider om hur man kommer igång med Ruby on Rails, den här guiden handlar istället om hur man sätter upp en Ubuntu server för att kunna köra webbapplikationer byggda med just Ruby On Rails.
Jag använde mig av en Ubuntu 10.04 som är en long time support när jag gjorde det här och valde att köra Apache som webbserver då jag har erfarenhet av den sen förut.
Det första jag behövde göra var att installera paketet build-essential. Det innehåller diverse verktyg för att bygga och kompilera paket från källkod, vilket vi kommer behöva i den här guiden. Vi installerar också programmeringsspråket ruby.
OBS!Den här guiden kräver att du har administratörsrättigheter(sudo) på servern du vill installera det på.
sudo apt-get install ruby-full build-essential
När det är klart så behöver vi installera webbservern apache, och lite paket som hör till den.
sudo apt-get install apache2 apache2-mpm-prefork apache2-prefork-dev
Vi vill också aktivera några moduler som vi vill att apache2 ska använda, och när det är gjort så startar vi om apache.
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart
När det är klart så vill vi installera mongrel. Mongrel är också en webbserver, men i den här setupen så använder vi den tillsammans med proxy_http modulen med apache som en lastbalanserare.
sudo apt-get install mongrel
Sådär. Nu ska vi ta och installera gems till ruby. Gems är vad man kan likna vid plugins eller moduler till språket. Rails är ett gem så för att ha senaste versionen att leka med så installerar vi rubygems.
wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.6.tgz
tar -zxvf rubygems-1.8.6.tgz
cd rubygems-1.8.6/
sudo ruby setup.rb
sudo gem update --system
Så där, nu kan vi använda kommandot gems för att installera de gems vi vill ha. Eftersom vi vill sätta upp rails så är det vad vi nu vill göra.
Eftersom vi också vill att rails ska kunna integrera med en databas, i det här fallet mysql så installerar vi de kopplingar som behövs för det, samt också själva mysql-servern.
sudo apt-get install mysql-server libmysql-ruby libmysqlclient-dev
Vi kommer också att behöva passenger, som även det är ett ruby-gem. Passenger (som även kallas mod_rails ibland) är en modul till apache för att köra ruby web applikationer i apache.
För att kunna installera det måste vi först installera några andra paket.
sudo apt-get install apache2-dev libapr1-dev libaprutil1-dev
Och sen kan vi köra igång med installationen av passenger.
Följ instruktionerna som dyker upp på skärmen.
sudo gem install passenger
sudo passenger-install-apache2-module
sudo apt-get install libcurl4-openssl-dev
sudo passenger-install-apache2-module
För att få apache att känna av det här så lägger vi till följande rader i filen /etc/apache2/apache2.conf som du kan öppna med din favoriteditor(vim, nano)
#Rails specific
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.7
PassengerRuby /usr/bin/ruby1.8
Och när det är gjort så startar vi om apache.
sudo service apache2 restart
Nu är vi egentligen klara att köra. Hur du bygger din webbapplikation är något som den här guiden inte tar upp, men jag bifogar ett exempel på en vhostfil som du kan använda när du sätter upp din applikation.
<VirtualHost *:80>
ServerName railstest.daladevelop.se
DocumentRoot /var/www/railsapplication/public$ # <-- be sure to point to 'public'!
<Directory /var/www/railsapplication/public>
AllowOverride all # <-- relax Apache security settings
Options -MultiViews # <-- MultiViews must be turned off
</Directory>
</VirtualHost>
Om allt gått som det ska så är du nu redo för att sjösätta din första webbapplikation skriven med ruby on rails. Förhoppningsvis så går det som på räls. Pun intended. Lycka till!
Kommentera gärna om det är något som inte fungerar så ändrar jag