Rails 5.1 Consulting und Schulung vom Autor:
www.wintermeyer-consulting.de/rails/

15.1. Einleitung

Im Rest des Buches arbeiten wir immer mit dem Entwicklungssystem. Dazu starten wir Rails mit rails server. Schauen wir uns die Ausgabe noch mal genau an:
Stefan-Wintermeyers-MacBook-Air:blog xyz$ rails server
=> Booting WEBrick
=> Rails 3.2.6 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-07-09 12:19:40] INFO  WEBrick 1.3.1
[2012-07-09 12:19:40] INFO  ruby 1.9.3 (2012-04-20) [x86_64-darwin11.4.0]
[2012-07-09 12:19:40] INFO  WEBrick::HTTPServer#start: pid=86773 port=3000
Die zweite Zeile sagt aus, dass wir im "development" Modus sind und dass die Applikation unter der URL http://0.0.0.0:3000 erreichbar ist. Als Webserver wird dabei WEBrick verwendet (siehe http://de.wikipedia.org/wiki/WEBrick). WEBrick ist ein sehr einfacher HTTP-Webserver und Bestandteil der Ruby Standardbibliothek. WEBrick ist aber nur zur Entwicklung geeignet.
Für ein Produktivsystem nimmt man normalerweise einen Standard Webserver wie Apache, lighttpd oder Nginx, der als Reverse-Proxy und Loadbalancer zum Rails-System agiert. Das Rails-System wird dann aber nicht vom langsamen WEBrick betrieben, sondern von performanten Lösungen wie Unicorn (http://unicorn.bogomips.org/), Mongrel (http://de.wikipedia.org/wiki/Mongrel), Thin (http://code.macournoyer.com/thin/) oder Puma (http://puma.io/).
Bei einem typischen PHP-Projekt reicht es, den PHP-Code einfach in ein bestimmtes Verzeichnis zu legen und in 9 von 10 Fällen kann der zur Verfügung stehende Apache-Webserver bereits PHP-Code automatisch abarbeiten (das entsprechende Modul ist fast immer installiert). Bei Rails sieht es leider anders aus. Die Hürden sind wesentlich höher und der Aufwand größer. Es gibt eine große Menge an möglichen Kombinationen (z. B. "Apache, lighttpd oder Nginx?" und "Unicorn, Thin, Puma oder Mongrel?"). Es ist unmöglich, alle Varianten hier detailliert zu beschreiben. Ich habe mich für meine Lieblingskombination von Nginx und Unicorn entschieden. Dies heißt aber nicht, dass andere Kombinationen schlechter sind. Es ist eine subjektive Wahl.

Debian 6

Wir setzen unseren Produktions-Webserver auf einem minimalen Debian 6 System auf.

Anmerkung

Diese Beschreibung setzt ein frisch installiertes Debian GNU/Linux 6.0 (Squeeze) voraus. Ein ISO-Image für die Installation finden Sie auf http://www.debian.org/releases/squeeze/debian-installer/. Ich empfehle das etwa 160 MByte große Netzinstallations-CD-Image. Eine Debian-GNU/Linux-Installationsanleitung findet sich unter http://www.debian.org/releases/squeeze/i386/; ein allgemeines Anwenderhandbuch unter http://debiananwenderhandbuch.de.
Ruby 1.9.3 installieren wir per RVM mit dem neuen User deployer. Die von uns benutzte Rails-Applikation heißt blog.

Wichtig

Zum Durchführen dieser Installation benötigen Sie Root-Rechte auf dem Webserver!

Autor

Stefan Wintermeyer