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 +ExecCGIRewriteRule ^$ 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.