Wie installiere ich Redmine auf lighttpd mit FastCGI?

Als Voraussetzung für dieses Tutorial solltest du eine funktionierende Ruby on Rails-Umgebung haben. Dazu bietet sich das lighttpd Tutorial im Nerdlabor an. (1)

Dieses Tutorial basiert auf der original RedmineInstall. (2)

Als erstes brauchst du die neuste Version von Redmine. Downloaden, entpacken, in den Webroot kopieren (bei mir ist das /var/www/, kann aber auch jeder andere Ordner sein).

wget http://rubyforge.org/frs/download.php/52944/redmine-0.8.2.tar.gz
tar xzf redmine-0.8.2.tar.gz
cp -r redmine-0.8.2/ /var/www/
mv /var/www/redmine-0.8.2/ /var/www/redmine

Jetzt musst du eine Datenbank anlegen. Ich nutze MySQL aber es sind auch alle anderen bekannten Datenbanken möglich. Dazu die MySQL-Konsole starten und eine Datenbank erzeugen.

mysql -u  root -p
mysql>create database redmine character set utf8;

Als nächstes müssen wir die Datenbankanbindung von Redmine konfigurieren.

cd /var/www/redmine/config
cp database.yml.example database.yml
nano database.yml

Dort im "production"-Bereich Datenbankname, -benutzer und -passwort angeben. In diesem Beispiel ist es root, aber es empfiehlt sich für Redmine einen eigenen Datenbankbenutzer anzulegen.

production:
  adapter: mysql
  database: redmine
  host: localhost
  username: root
  password: passwort
  encoding: utf8

Jetzt können wir die Datenbank befüllen.

Erstens mit Struktur:

cd ..
rake db:migrate RAILS_ENV="production"

Zweitens mit einer Standardkonfiguration:

rake redmine:load_default_data RAILS_ENV="production"

Als nächstes erstellen wir eine dispatch.fcgi aus dem mitgelieferten Beispiel.

cd public/
cp dispatch.fcgi.example dispatch.fcgi

In dieser Datei muss ggf. noch der Pfad zur Ruby-bin angepasst werden. Um das zu tun, einfach mit

nano dispatch.fcgi

die erste Zeile in

#!/usr/local/bin/ruby

abändern. Je nachdem wo euer Ruby liegt.

Als nächstes muss noch die lighttpd.conf angepasst werden. Dazu mit

nano /etc/lighttpd/lighttpd.conf

folgende Zeilen hinzufügen bzw. abändern.

$HTTP["host"] == "redmine.meinedomain.de" { #hier ist auch localhost oder sonstwas möglich
        server.document-root = "/var/www/redmine/public"

        server.dir-listing          = "disable"
        server.error-handler-404 = "/dispatch.fcgi"

        fastcgi.server      = ( ".fcgi" => ( "redmine" => (
                "min-procs"       => 1,
                "max-procs"       => 1,
                "socket" => "/tmp/redmine.socket",
                "bin-path" => "/var/www/redmine/public/dispatch.fcgi",
                "bin-environment" => ( "RAILS_ENV" => "production" )
        ) ) )
}

Jetzt müssen noch die Ordnerrechte an den Webserver-User übergeben werden. Bei mir ist das der Benutzer "www-data".

cd ../..
chown -R www-data:www-data redmine/

Jetzt kannst du mit

sudo /etc/init.d/lighttpd restart

lighty neustarten und hoffen, dass Redmine unter der angegebenen Adresse erreichbar ist. :)