Guide: Ruby on Rails på Ubuntu med Mysql, passenger och vhosts.

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.

sudo gem install rails

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


Dalarnas tidningar får ny look på nätet!

Dalarnas tidningar har länge haft en webbsajt som varit under all kritik. Svårnavigerad och svårt att få en överblick över. Häromdagen var det en kollega som sa att de hade bytt system men inte gjort något åt siten, och jag förvånades över det – Glad som en lax fick jag via paraxel dock mina tankar bekräftade att jo då – sidan skulle uppdateras.

Nu under kvällen märkte jag att sidan var seg och efter att ha uppdaterat sidan så var den nya looken där. Hurra! För den ska jublas. Det nya utseendet är mycket snyggare, mycket öppnare och ger en betydligt bättre överblick över den information som finns. Hatten av!

 

Det återstår att se om man har fokuserat mer kring besökarna i den här versionen – på den förra så visades futtiga tre kommentarer åt gången om man inte aktivt valde att visa fler. Och även på den nya så måste man välja att klicka fram kommentarsfältet, och då uppdateras sidan- något som borde ha hämtats med ajax, alternativt bara visat ett dolt kommentarsfält. När vi ändå pratar kommentarer hade det varit väldigt trevligt med openid eller gravatarstöd. Det hade dessutom gett sidan ett lager till av delaktighet.
En annan funktion som jag gillar är att man kan ange vart man bor, och då inte bara de större orterna utan även t.ex Bjursås och då få de mest lokala nyheterna först. Det tycker jag är helt rätt tänkt. Det går att utveckla ideen och t.ex kunna ange flera ”favoriter” förutom ort -sport, brottsplats, djur etc. En personlig dt.se upplevelse hade varit helt fantastiskt – och jag hoppas att det kommer i nästa version.
I det stora hela – hatten av!

Update Jag läste kommentarerna på deras egen sida som i det stora kritiserar sidan. Man får ta det hela med en nypa salt – haters gonna hate och förändring skrämmer ofta upp folk. Sidan är mer lättnavigerad. Men…. När jag läste såg jag att en hel del av kommentarerna handlade om att det var rörig reklam och jag kom då på att jag besökt sidan med adblock på – och ja, det var lite för mycket reklam. Jag hoppas att dt i fortsättningen hittar den perfekta avvägningen för mängden reklam, för det här har runnit över.

Läs mer

 


Piwik har blivit ännu vassare.

Lägg inte alla ägg i samma korg är ett allmänt känt talessätt och också lite av min filosofi. Därför använder jag mig förutom Google Analytics även av Piwik.

Piwik är ett open source projekt med målet att kunna ersätta Google Analytics. De båda tjänsterna är såklart lite olika, och vad som är den enes fördel gentemot den andra tjänsten är ändå inte en nackdel. Rörigt vad jag menar men låt mig utveckla. En av de stora fördelarna av att använda sig av Piwik är att du själv äger datan från användarna som besöker din sida. Jag som är lite av en foliehatt och som helst inte låser in mig i diverse molntjänster och allra minst i Googles tycker ju att det här är en fantastisk fördel. Det kan vara avgörande för vissa användare.

Vid användning av Google analytics så är det snarare så att du får ta del av den data Google samlar in – med den fördelen att det kan vara enklare att dra paralleller till sökmotoroptimering då det ändå handlar om Googles data. Det kan vara avgörande för vissa användare

Men hur har piwik blivit vassare nu då?

Jo, Piwik har gått och skaffat sig en app som finns både till iOS och till Android! Och den är riktigt riktigt trevlig. Jag installerade den nyss och det är både enkelt att få upp graferna och de är riktigt snygga. I like! Du kan läsa mer om piwiks mobilsatsning här.

Dessutom så blir jag mer och mer förälskad i piwik ju mer jag jobbar med det, och att man enkelt kan exportera all data i olika format är helt underbart.

Appen krånglade mycket åt mig innan jag uppgraderade min Piwik installation på servern till senaste versionen.

Det kommer fler bloggposter om piwik i fortsättningen!

 

Och just ja! I efterhand så vill jag ju tacka tipsaren Jonas Forsberg också!


Några tjänster som gör internet lite smidigare

Web2.0 har varit här i ett par år nu och vissa tjänster har blivit riktigt bra. Här har jag listat några av de tjänster som gjort mitt liv online lite smidigare och bättre.

Gravatar
Gravatar är det som gör att jag har en bild på mig själv här på bloggen. Eller på någon annans blogg med för den delen. Det fungerar helt enkelt så att man skaffar sig ett konto på gravatars hemsida där man sedan laddar upp en bild och kopplar den till en epostadress. Om man sedan kommenterar på en blogg som är synkroniserad mot gravatar så dyker ditt porträtt upp när du klickar på skicka. Det är både snyggt och smidigt.Dessutom så kan du som har en egenprogrammerad blogg faktiskt programmera och integrera gravatar även i din blogg.(pik till hullarn och mattis)

WordPress
wordpress.com kan man skaffa sig en blogg och får då adressen namn.wordpress.com. Men wordpress är större än att bara vara en bloggportal. Man kan från wordpress.org ladda ner bloggprogramvaran och skapa en blogg på vilken webbserver som helst. Installationen är ganska enkel och tar bara några minuter. Väl installerat så finns det tusentals teman och plugins för att få ditt wordpress att se ut eller bete sig precis som du vill. Om du tycker det är krångligt eller har en ide om en blogg som du vill skapa så hör av dig till mig så löser vi det.

Ubuntu One
Ubuntu One är en dropboxliknande tjänst. Tänk dig tjänsten som ett usbminne – fast istället för att ha det i fickan så har du det på internet. Det monteras som en enhet på datorn och de filer du kopierar dit synkroniseras automatiskt på alla andra datorer som du anslutit till ditt konto. Ubuntu One heter tjänsten om man kör Ubuntu men som sagt så finns även dropbox med samma funktionalitet och det finns även till Microsoft och Apples operativsystem.

iGoogle
iGoogle är googles sökmotor men anpassad så som du vill ha den. Den är helt perfekt att ha som förstasida i webbläsaren och går att konfigurera med mängder av olika små widgets för att visa olika information. Vad sägs om senaste nyheterna, kommande tvprogram, väder eller favoritlänkar? iGoogle går att anpassa i mängder och kan faktiskt vara riktigt trevligt.

Det vore väl orättvist att skriva ett inlägg om web2.0 och inte nämna facebook, twitter, flickr eller andra sociala nätverk. Men sanningen är den att jag inte använder något av dem. Facebook  har jag använt men det känner ni redan till. Twitra har jag aldrig fastnat för och därför uttalar jag mig inte om det.

Håll er uppdaterade, nästa teknikinlägg kommer handla om hur man provar linux på sin dator. Hurra!