Installatie Doing Things Properly
De installatie van software van Doing Things Properly, tracks, is niet heel gemakkelijk. Onder FC5 waren de volgende stappen nodig:
- Ik had mysql al geïnstalleerd, dus dat was niet meer nodig
- aanmaken database
- maken gebruiker voor de database en toekennen wachtwoord en rechten
- Installatie volgens de wiki instructies:
- Ruby via
yum install ruby - Installatie Ruby Gems. Gaat niet via yum, dus handmatig gedownload en lokaal uitgepakt. Vervolgens via
ruby setup.rbgeïnstalleerd. - Vervolgens installatie vervolgd via de manual:
gem install mysqlvoor de mysql bindings. Dit blijkt niet te werken. Heb ik maar overgeslagen. Achteraf bleek dit problemen te geven, maar er bleek eenyum install ruby-mysqlmogelijk te zijn!- unzip van de tracks software
- aanpassen templates met de juiste settings. Koste me even om te ontdekken dat
log.ymleen directory was - daarna
rake migrateuitgevoerd. Dit gaf een foutmelding waar ik lang over heb gedaan om uit te zoeken waar het probleem zat. De foutmelding was “connection lost”. Googlen hielp hier niet echt. Uiteindelijk lag het aan de ontbrekende ruby-mysql binding. Gelukkig bleekyum install ruby-mysqlde oplossing voor de vage foutmelding. - Daarna kon de WEBrick webserver gestart worden met
ruby script/server -e production
Nadeel was dat de webserver een apart stuk ruby-software is dat naast de bestaande apache webserver draait. Zo ruim gedimensioneerd is de oude laptop niet die ik als server gebruik.
Het mooie van Tracks is dat deze is voorbereid om te koppelen aan apache via cgi en fastcgi. Door in de http.conf een virtual server aan te maken draait de software nu onder apache. Hiervoor was deze site en met name deze handig om uit te vogelen hoe. Alleen toevoegd:
CustomLog /pad/naar/tracks/log/access_tracks_log combined
om de access_log van balt.nu niet te vervuilen. En toegevoegd
AddHandler fastcgi-script .fcgi
om snelle cgi mogelijk te maken. En nu zijn we up and running!
Update: Toch maar wel de interne webserver van ruby on rails gebruikt. De performance via cgi was zooo traag. Ook werkt fastcgi niet standaard op Fedora Core. Dus een proxy ingesteld om de request op apache door te sluizen naar de ruby-webserver.
ServerName xxx.yyy.zz
ErrorLog /var/www/tracks/log/apache.log
CustomLog /var/www/tracks/log/access_tracks_log combined
ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/