Archive for the 'Apache2' category

Ruby on Rails in Apache2 integrieren

Jul 13 2009 Published by under Apache2, Linux, Ruby on Rails, Web Development

Da ich schon seit längerem versucht habe meinem Apachen Ruby on Rails beizubringen, habe ich es heute hinbekommen.
Im Grunde ist es nicht schwierig oder kompliziert, man muss sich nur mit ein wenig mit der Materie auseinander setzen.

Hinweis: Die angegebenen Konfiguration dienen keinesfalls für den Produktiveinsatz, sie sind lediglich Beispiele wie es realisiert werden kann. Ich verwende diese Einstellungen lokal auf meinem Rechner. Es wirk kein besonderen Wert auf Security gelegt. Für Schäden o.ä. hafte ich nicht.

Vorraussetzung:

  • Apache2 installiert & eingerichtet
  • mod_fcgi installiert & aktiviert (libapache2-mod-fcgid & libfcgi-ruby1.8)
  • mysql installiert & eingerichtet
  • Ruby installiert
  • Rails installiert

Als erstes muss man seinem Apachen sagen wo das Directory für die Rails Applicationen ist. Bei mir ist es zusammen mit php und python unter /var/www/.

Man öffnet das Terminal und wechselt in das Verzeichnis /etc/apache2/sites/available

cd /etc/apache2/sites-available

und öffnet die Datei default.

$ gedit default

Ich habe der Einfachheit keinen vhost erstellt.

<Directory /var/www/>
Options ExecCGI +FollowSymLinks
Options Indexes FollowSymLinks MultiViews

AllowOverride All
Order allow,deny
allow from all
</Directory>

Das fett Markierte hinzufügen oder abändern.

mit

sudo /etc/init.d/apache2 restart

den Apachen neustarten.

Danach unter /var/www/rails/ eine neue Rails Application (rails /var/www/rails/newproject) erstellen.
Sobald diese erstellt müssen wir eine .htaccess Datei erstellen

cd /var/www/rails/newproject/public
touch .htaccess

Die gerade eben erstellte .htaccess öffnen und folgenden Inhalt einfügen (siehe README Datei im Projet Root der Rails App):

RewriteEngine On

AddHandler fastcgi-script .fcgi
AddHandler cgi-script .cgi
Options +FollowSymLinks +ExecCGI

RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]

ErrorDocument 500 “<h2>Application error</h2>Rails application failed to start properly”

Voila im Browser http://localhost/rails/newproject/public aufrufen und man wird von der Standard Rails Page begrüßt.

No responses yet