@Bastianoso

Ruby on Rails bei Domainfactory

Ruby on Rails ist die Trendprogrammiersprache der web 2.0-Bewegung. Doch das Entwicklungsframework Rails ist bei deutschen Hostern kaum zu finden, weshalb viele sich mit selbstinstallierten Rootservern oder ausländischen (vornehmlich U.S.A.) Anbietern begnügen.

Doch möchte nicht ein jeder, alleine aus datenschutzrechtlichen Gründen, seine Daten in den U.S.A. liegen haben.

Ich habe mich jetzt mal hingesetzt und bei dem Müncher Traditionshoster Domainfactory einen ManagedServer mit Ruby on Rails und Mongrel ausgestattet.

Damit man auch bequem und effizient weiter an seiner Webanwendung schrauben kann, habe ich zusätzlich einen Subversion-Daemon aufgesetzt, der mit Eclipse befüttert wird und von dem aus Capistrano auf die Liveumgebung deployen kann.

Du wolltest das auch schon immer mal probieren?
Kein Problem! Ich habe alles fein säuberlich aufgeschrieben, hier das Rezept:

Wir wollen unsere neue Ruby on Rails-Webanwendung auf einem Managed Server von Domainfactory zum Laufen bekommen.

Damit wir eine lauffähige RoR-Installation bekommen durchlaufen wir folgende Schritte:

  1. Ruby installieren (v.1.8.4)
  2. RubyGems installieren (v.0.9.2)
  3. Rails als Gem installieren
  4. Mongrel installieren

Voraussetzungen

Bevor wir loslegen können, müssen wir für ein paar Dinge Sorge tragen. Folgendes sollte bereitstehen:

  • SSH-Zugang
  • FTP-Zugang
  • Wir sind mit bspw. Putty eingeloggt und befinden uns im FTP-Root.
    In meinem Fall ist das: /kunden/12345_12345/

Ruby Installation

Sollte Ruby nicht bereits installiert sein oder in einer Version < 1.8.2 vorliegen, müssen wir Ruby installieren.

Dazu geben wir in der Konsole folgendes ein:

Damit haben wir Ruby auf den Server übertragen, entpackt und befinden uns im entpackten Verzeichnis.

Bevor wir Ruby installieren können, müssen wir den Installationspfad festlegen, da wir nicht die Rechte haben, die bestehende Installation zu überschreiben:

Nun legt der Server fleißig los und installiert Ruby.

Mit ruby –version können wir überprüfen, ob die Installation geklappt hat.
Sollte trotzdem noch die alte Rubyversion angezeigt werden, liegt das daran, dass die alte Version in der $PATH-Variablen vor der neuen kommt und der Server daher immernoch diese Version verwendet.
Erst, wenn die erstgefundene Version nicht mehr verfügbar ist, würde dann unsere genommen werden.

Zu diesem Zweck passen wir den Umgebungspfad an:

Ein erneutes ruby –version sollte nun die neue Version angeben.
Achtung: Die angepasste Umgebungsvariable ist nur temporär und muss noch gespeichert werden – das machen wir später.

RubyGems installieren

Mit folgenden Zeilen laden und installieren wir uns RubyGems, ein Verwaltungstool mit dem sich Pakete wie Rails oder Mongrel leicht installieren lassen:

Und das war’s.

Rails installieren

Mit dem eben installierten RubyGems können wir das Gem Rails hinzufügen:

Wie, das ist alles?
Ja, das ist alles!

RubyGems zieht sich automatisch das aktuelle Rails-Release aus dem Repository und installiert es. Die Option -y bedeutet, dass von diesem Release abhängige Gems ebenfalls – und völlig automatisch – mitinstalliert werden.

Sollte Rails sich wider erwarten verweigern installiert zu werden, hilft es meist alle Gems zu updaten:

Auch wenn wir Gems: [] updated ausgegeben bekommen, hilft es.

Ein selbstbewusstes rails –version gibt uns jetzt die aktuelle Rails-Version aus. Bei mir ist das aktuell die Version 1.2.5.

Mongrel installieren

Um Mongrel als Server für Ruby on Rails einsetzen zu können (sowie Apache die von PHP erzeugten Files ausliefert), bedarf es einiger Gems mehr!
Hier die Zeile zur Installation mehrerer Gems auf einmal:

Der Parameter -y sorgt wieder dafür, das eventuell fehlende Gems (die zum Betrieb der anderen erforderlich sind) gleich mitinstalliert werden.

Mongrel konfigurieren

Da wir in den voreingestellten Pfaden leider keine Schreibrechte haben, müssen wir die Konfiguration abändern.
Dazu erstellen wir in unserem Config-Verzeichnis (/kunden/12345_12345/config/) eine neue Datei namens mongrel_cluster.yml mit folgendem Inhalt:

Nun weiß Mongrel, wer er ist, und welches Verzeichnis er zugänglich machen soll.
Wir können Mongrel mittels folgendem Befehl starten:

Wer jetzt schon voll Freude seine Webseite im Browser aufgerufen hat wird enttäuscht sein, denn es hat sich nichts verändert.

Wieso funktioniert das nicht?

Es funktioniert.
Nur eben nicht direkt vor unserer Nase, sondern ein Stück daneben.
Mongrel läuft nun auf Port 3000. Wenn wir unsere Webseite im Browser öffnen, benutzen wir aber den Port 80. Dieser Port gehört dem Apache-Webserver.

Und dem Indianer müssen wir noch sagen, dass er die Finger ruhig halten soll.
Dazu erstellen wir im Web-Root (/kunden/12345_12345/webseiten) eine .htaccess-Datei mit folgendem Inhalt:

Jetzt weiß der Apache, dass er alles was reinkommt ((.*)) an den Port 3000 des gleichen Rechners weiterleiten soll (127.0.0.1:3000).

Wenn wir in unserem Browser jetzt die Webseite aufrufen, sollten wir unsere wunderschöne Ruby-Anwendung zu Gesichte bekommen. Damit das am nächsten Tag auch noch so ist, müssen wir die $PATH-Variable retten:

$PATH retten

Um unsere selbst konfigurierte $PATH-Variable über die aktuelle Session hinweg zu retten, geben wir folgenden Code im FTP-Root ein:

Diese Datei wird fortan bei jedem SSH-Login automatisch eingelesen.

 

Ende Gelände

Das war es nun eigentlich schon. Im Folgenden werden wir noch Tools für die Entwicklung unserer tollen Anwendung installieren (Subversion und Capistrano) und ansonsten wünsche ich viel Spaß beim partizipieren am web 2.0.

Artikel-Bewertung (4 / 1)

2
Hinterlasse einen Kommentar

  Abonnieren  
neueste älteste meiste Bewertungen
Benachrichtige mich bei
werner

Bin begeistert, verstehe aber kein Wort. Woran mag das liegen? Ich glaube ich muss mal einen IT Berater meines Vertrauens befragen.

Klaus
Artikel-Bewertung :
     

Schade, dass die Anleitung nicht mehr ganz aktuell ist, aber sie hat mir trotzdem geholfen, seit das forum bei domainfactory geschlossen ist.

Deutschland Datenschutz Kredite Fahrrad Terminal E-Mail Gesellschaft iOS Party Musik IST-Analyse Fotos Programmieren Sibirische Katze Mathematik Organisation Netzwerktechnik Projektmanagement Netzwerk Windows web 2.0 twitter Laufen Sport URL OS X Buchhaltung C++ Bilanz Mac OS X Weihnachten Kino Facebook Kater Internet Datenbanken Sommer Microsoft Sicherheit iPhone Weiterleitung Konzert Altona Haushalt Wirtschaft Einkaufen Film Silvester Ernährung Ausbildung projekt52 Computer Webserver Tipps & Tricks Abschlussprüfung Fernsehen Datenübertragung Inventur Werbung Apple BarCamp Redirect Videos IKEA Hamburg

Hinweise zum Artikel