Debian… dieser Hort uralter Software – Aber man muss es halt nutzen. In den Debian–Stable repos ist Ruby 1.8. eingetragen. Aktuell ist aber Ruby 1.9.3. Die Installation von Rails und vor allem dem Phusion Passenger gestaltete sich für mich ziemlich schwierig. Wie es trotzdem klappt, kannst du hier nachlesen.
Ruby installieren
Die Ruby–Version aus der Paketverwaltung kann man wie gesagt vergessen. Also müssen wir rvm nutzen. Am praktischsten ist es, rvm gleich Systemweit zu installieren:
curl -L https://get.rvm.io | sudo bash -s stable
Wichtig ist hier, den Befehl nicht als Root, sondern mit sudo auszuführen, weil rvm einige Variablen benötigt, die mit root anders gesetzt sind
Dann installierst du dir die aktuelle Ruby–Version:
rvm install 1.9.3 rvm use 1.9.3
Nun habe ich mir meine Rails–Applikation geholt und die benötigten Gems mit
bundle install
installiert.
Phusion Passenger einrichten
Passanger installieren:
gem install passenger
Nun muss noch das Modul für Apache installiert werden:
rvmsudo /usr/local/rvm/gems/ruby-1.9.3-p362/gems/passenger-3.0.18/bin/passenger-install-apache2-module
Den Pfad zur Installation musst du Gegebenenfalls anpassen.
Jetzt nur noch die Apache Konfiguration anpassen und danach kann es losgehen:
Füge folgende Zeilen am Ende der /etc/apache2/apache.conf (o.ä.) hinzu:
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p362/gems/passenger-3.0 .18/ext/apache2/mod_passenger.so PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p362/gems/passenger-3.0.18 PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p362/ruby
Dann erstellst du einen neuen Virtuellen Host: (z.B. /etc/apache2/sites-enabled/yourhost.com.conf)
<VirtualHost *:80> ServerName www.yourhost.com # !!! Be sure to point DocumentRoot to 'public'! DocumentRoot /somewhere/public <Directory /somewhere/public> # This relaxes Apache security settings. AllowOverride all # MultiViews must be turned off. Options -MultiViews </Directory> </VirtualHost>
Danach musst du die Seite aktivieren und dann Apache neu laden (oder neu starten):
sudo a2ensite yourhost.com.conf sudo service apache2 restart
Anwendung vorbereiten
Wenn noch nicht getan, solltest du genau jetzt
bundle install
durchführen. Danach erstellen wir die Datenbank und kompilieren die Assets vor:
rake db:migrate RAILS_ENV="production" bundle exec rake assets:precompile
Wenn du nun deine Seite aufrufst, sollte alles Funktionieren. Wenn eine Leere Seite mit irgendwas mit „Sorry“ kommt, schau in deinen Logs nach: /var/log/apache2/error.log Wenn eine Phusion–Passanger–Fehlerseite kommt, dann lies nach, was dort steht.
Mehr dazu unter…
- RVM–Installationsanleitung: https://rvm.io/rvm/install/
- Offizieller Passenger–Guide http://www.modrails.com/documentation/Users%20guide%20Apache.html
- http://wiki.brightbox.co.uk/docs:rvm Dort Stand ein wichtiger Hinweis, wie man passenger-install aufruft