Unter Windows kann man das vorgefertigte InstantRails benutzen, aber auch mit Debian Linux geht die Installation relativ einfach. Ich habe mich an dieser Anleitung (engl.) orientiert. Zuerst installiert man Ruby:
apt-get install ruby libzlib-ruby rdoc irb
Das war simpel und so geht’s auch weiter. Als nächstes benötigen wir die Rubypaketverwaltung RubyGems, die ich mir in der Version 0.9.0 heruntergeladen habe. Nach dem entpacken wechselt man in das neue Verzeichnis und startet die Installation:
ruby setup.rb all
Nun installieren wir Rails:
gem install rails –include-dependencies
Der Apache2 Webserver war bei mir bereits vorhanden und ich musste nur noch einige Bibliotheken hinzufügen:
apt-get install libapache2-mod-fastcgi libfcgi-ruby1.8
Je nach Datenbank muss man noch libmysql-ruby, libpgsql-ruby oder libsqlite3-ruby hinzufügen. Auf meinem Server läuft Mysql weshalb ich folgenden Befehl nutzte:
apt-get install libmysql-ruby
Damit wären alle benötigten Dateien vorhanden. Jetzt geht es an die Konfiguration. Als Benutzer nutze ich rails, den ich bereits im Subversion Tutorial erstellt habe und erzeuge das Grundgerüst für die Railsanwendung:
rails /home/rails/meineApp
Danach habe ich noch die Gruppenrechte (www-data) auf den Webserver gesetzt, damit es da keine Probleme gibt:
chown -R rails:www-data /home/rails/meineApp
FastCGI haben wir bereits installiert. Für Ruby ist das auch unbedingt nötig, denn so sind die Ladezeiten deutlich kürzer. Damit FastCGI aktiviert wird erstellt man zwei Links:
cd /etc/apache2/mods-enabled/
ln -s /etc/apache2/mods-available/fastcgi.load
ln -s /etc/apache2/mods-available/fastcgi.conf
Ein VirtualHost für Apache könnte dann so aussehen:
(VirtualHost \
meineIP:80 \
)
ServerName meineDomain
ServerAlias www.meineDomain
DocumentRoot /home/rails/meineApp/public/
(Directory /home/rails/meineApp/public/)
Options ExecCGI +FollowSymLinks
AllowOverride All
order allow,deny
allow from all
(/Directory)
(/VirtualHost)
Achtung da fehlen einige Größer- und Kleinerzeichen. Bitte die Klammern entsprechend ersetzen!
Im Verzeichnis /home/rails/meineApp/public/ muss man die .htaccess-Datei noch auf FastCGI anpassen und dabei sollten folgende Zeilen vorhanden sein:
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
Die letzte Zeile ruft die FastCGI-Version aus. Bei mir war die Datei allerdings noch nicht ausführbar:
chmod +x /home/rails/meineApp/public/dispatch.fcgi
Eigentlich sollte dann schon alles laufen. Damit die störende index.html nicht beim Aufruf des Verzeichnisses, sondern gleich Ruby on Rails startet, habe ich sie einfach umbenannt und in der Datei /home/rails/meineApp/config/routes.rb die Route angepasst.
Damit auch die Datenbank funktioniert gibt man in /home/rails/meineApp/config/database.yml noch die richtigen Daten an.
Bei mir traten dann noch zwei Fehler auf. Ich hatte ein bestehendes Projekt kopiert und dadurch musste ich in der Datei /home/rails/wetteifern/config/environment.rb die Rails_Gem_Version anpassen. Außerdem war im dispatcher noch ein falscher Pfad und ich habe die erste Zeile geändert:
#!/usr/bin/ruby
Nachdem diese Fehler behoben sind, sollte alles prolemlos funktionieren. Mehr zur Installation und Programmierung mit Ruby On Rails findet ihr bei Silab.