Redmine 2.5.0 auf Debian 7 Wheezy mit Apache Passenger

Heute gibts mal wieder eine kleine Anleitung. Dieses mal installieren wir Redmine 2.5.0 auf Debian 7 Wheezy mit Apache und dem Applikationsserver Passenger. Das Installieren von Redmine ist immer ein riesen Heckmeck aber man kommt einigermaßen gut zurecht wenn man ein paar Kleinigkeiten beachtet. Freut euch auf das erste Update der Software ;), da geht dann wieder alles von vorne los. Nichts desto trotz ist Redmine einfach genial für das Verwalten verschiedenster Projekte. Mit dieser Anleitung könnt ihr eine frische Installation erstellen oder eine alte Version migrieren. Funktioniert beides wunderbar und beide Wege sind in dieser Anleitung beschrieben.

Benötigte Pakete installieren

Ich setzte hier mal voraus, dass ihr bereits einen Debian 7 Server mit LAMP-Konfiguration aufgesetzt habt. Es fehlen lediglich ein paar Pakete und Gems für Ruby.

aptitude install ruby libapache2-mod-passenger libmagickwand-dev libmagickcore-dev ruby1.9.3 libmysqlclient-dev imagemagick
gem install bundler
bundle install --without development test

Mit den Befehlen haben wir auch gleich den bundler installiert und mit „bundle install –without development test“ haben wir alle gems installiert die für die Redmine-Installation nötig sind.

Redmine herunterladen und entpacken

Einfach auf www.redmine.org den aktuellen Downloadlink suchen und kopieren. Mit dem Befehl

wget http://www.redmine.org/releases/redmine-2.5.0.tar.gz

Dann die tar.gz-Datei herunterladen und mit

tar -xzf redmine-2.5.0.tar.gz

entpacken. Ich habe das Verzeichnis /sr/www/htdocs/ gewählt. Für die richtigen Rechte muss noch folgender Befehl ausgeführt werden

chown -R www-data:www-data redmine-2.5.0

Redmine konfigurieren

Nun geht es los und wir müssen uns mal um die Konfiguration kümmern. In dieser Anleitung setze ich voraus, dass ihr bereits eine Datenbank erstellt habt. Für den geübten Linuxnutzer empfehle ich die Konsole ansonsten geht auch mal phpmyadmin und andere Programme zum administrieren der Datenbanken. Dazu kopieren wir uns die Beispiel-Config-Datei und bearbeiten diese:

cd redmine-2.5.0/config
cp database.yml.example database.yml
vim database.yml

Folgende Einstellungen müssen entsprechend der Datenbank angepasst werden:

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: root
  password: ""
  encoding: utf8

Es ist dabei egal ob ihr eine leere Datenbank erstellt oder eine alte Redmineversion auf eine neue Version migrieren wollte. Redmine kommt auf jeden Fall damit klar. Für die Migration einfach die alte Datenbank einstellen. Der nächste Schritt migriert dann auf die neue Version.

Redmine benötigt auch ein paar neue Ordner.  Dazu einfach in den Redmine-Root-Ordner gehen und folgende Befehle ausführen:

mkdir tmp tmp/pdf public/plugin_assets
chown -R www-data:www-data files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets

Wer eine Installation migriert muss nun auch die Files aus der alten Installation übertragen. Dazu einfach den Ordner files kopieren (und eventuell die Rechte anpassen). Außerdem sollten auch die Plugins nicht vergessen werden.

Redmine installieren

Nun legen wir noch einen secret_token an. Dieser wird für die Sicherheit von Redmine benötigt. Anschließend wird die Datenbank gefüllt. Es ist dabei egal ob es sich um eine alte Datenbank aus einer älteren Version handelt die ihr migrieren wollt oder um eine leere Datenbank. Redmine wird alles für euch erledigen. Zum Ausführen der Befehle muss in den Ordner von Redmine gewechselt werden.

rake generate_secret_token
RAILS_ENV=production rake db:migrate

Anschließend wollen wir erst einmal testen ob alles geklappt hat. Dazu einfach folgenden Befehl ausführen:

ruby script/rails server webrick -e production

Öffnet einfach einen Browser mit der Domain bzw. der IP-Adresse eures Servers und dem Port 3000 (z.B. www.beispielseite.de:3000 ). Wenn alles geklappt hat sollte das Loginfenster erscheinen. Wer eine alte Installation migriert hat sollte sich mit den alten Benutzerdaten wieder einloggen können.

Redmine mit Passenger und Apache2 ausführen

Nun wollen wir aber das ganze mit Apache2 und dem Application-Server Passenger ausführen. Dazu müssen zunächst folgende Pakete zusätzlich installiert werden:

aptitude install build-essential apache2-prefork-dev libapr1-dev libssl-dev zlib1g-dev libcurl4-openssl-dev libssl-dev libapr1-dev libaprutil1-dev rubygems
gem install passenger

Und anschließend sollte der folgende Befehl ohne Probleme ausführbar sein. Sollte dennoch etwas fehlen, wird der Befehl erklären was weiter zu machen ist.

passenger-install-apache2-module

Am Ende der Installation wird eine Ergänzung zur Konfiguration ausgegeben. Dies sollte ungefähr so aussehen:

LoadModule passenger_module /var/lib/gems/1.9.1/gems/passenger-4.0.38/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
   PassengerRoot /var/lib/gems/1.9.1/gems/passenger-4.0.38
   PassengerDefaultRuby /usr/bin/ruby1.9.1
</IfModule>

Der Code wird vom Programm automatisch am Ende ausgegeben und kann leicht abweichen. Dieser Teil muss in folgenden Dateien ergänzt werden /etc/apache2/mods-available/passenger.load und /etc/apache2/mods-available/passenger.conf (einfach mit vim öffnen und unten anhängen bzw ersetzen). Nun aktivieren wir den passenger-mod mit dem Befehl:

a2enmod passenger

Sollte etwas mit der Konfiguration nicht geklappt haben startet der Apache2-Server nicht. Beachtet hier die Ausgabe des Apache-Log-Files bzw. die Fehlermeldungen. Jetzt müssen wir noch den guten alten Apache richtig konfigurieren. Hier ist eurer Fantasie freien Lauf gelassen. Ich möchte redmine als Subdomain laufen lassen. Dazu muss die entsprechende Datei unter /etc/apache2/sites-available/ konfigurieren. Mein Beispiel sieht wie folgt aus:

#################################
#                               #
#      redmine.website.de       #
#                               #
#################################

<VirtualHost *:80>
        ServerName redmine.website.de
        DocumentRoot /srv/www/htdocs/website.de/redmine/public

        #Extra logs for this page
        ErrorLog /var/log/apache2/website.de/redmine/error.log
        LogLevel warn
        CustomLog /var/log/apache2/website.de/redmine/access.log combined

        #Redirects http:// to https://
        Redirect permanent / https://redmine.website.de/
</VirtualHost>

<VirtualHost *:443>
        ServerName redmine.website.de
        ServerAdmin mail@website.de

        DocumentRoot "/srv/www/htdocs/website.de/redmine/public"

        #Extra logs for this page
        ErrorLog /var/log/apache2/website.de/redmine/error.log
        LogLevel warn
        CustomLog /var/log/apache2/website.de/redmine/access.log combined

        #DefaultInitEnv RAILS_ENV production
        RailsBaseURI /redmine
        <Directory /srv/www/htdocs/website.de/redmine/public>
                Options Indexes FollowSymLinks -MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        SSLEngine On
        SSLCertificateFile /etc/apache2/ssl/website.de/redmine.website.de.crt
        SSLCertificateKeyFile /etc/apache2/ssl/00basic-certificates/private.pem
        SSLCACertificateFile /etc/apache2/ssl/00basic-certificates/ca.pem
        SSLCertificateChainFile /etc/apache2/ssl/00basic-certificates/sub.class2.server.ca.pem
        SSLHonorCipherOrder On
        SSLProtocol all -SSLv2
        SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:!RC4:HIGH:!MD5:!aNULL:!EDH
</VirtualHost>

Mit dieser Konfiguration wird die gesamte Kommunikation über eine sichere SSL-Verbindung abgehandelt und die Seite ist dann unter https://redmine.website.de erreichbar. Jetzt nur noch ein einziges mal den Apache2-Server neustarten und wir sind fertig.

apachectl restart

Wir haben fertig!

Ich hoffe ich konnte euch mit dieser kleinen Anleitung ein bisschen Hilfe geben. Redmine ist wirklich super und die etwas komplizierte Installation sollte euch nicht abschrecken. Wenn ihr Fehler findet, Fragen habt oder eine Methode wisst wie es besser und einfacher geht, schreibt mir bitte. Vielleicht können wir die Anleitung gemeinsam noch weiter verfeinern :).

5 Antworten auf „Redmine 2.5.0 auf Debian 7 Wheezy mit Apache Passenger“

  1. Ein Hinweis, dass mysql installiert sein sollte wäre für andere hilfreich oder mysql-server mit in apt-get install hinzufügen.

    Zu erst redmine kopieren, dann in den Ordner wechseln und dort dann „bundle install –without development test“ ausführen. Ansonsten gibt es eine Fehlermeldung: „Could not locate Gemfile“

    Bevor die Ordner angelegt werden sollte man auch zurück nach redmine gehen. (ist nicht für jeden klar)

    Passwort für die Datenbank-Konfiguration sollte innerhalb der „“ stehen! 😀

    Ansonsten gut und Danke!

    1. Halli Christian,

      danke für deinen hilfreichen Kommentar. Das MySQL installiert sein sollte, hatte ich mit der LAMP-Konfiguration schon erklärt, hab jetzt aber noch einen Link dazu hinterlegt. Für den Rest habe ich den Text etwas angepasst. Danke und viel Spaß mit Redmine :).

      Grüzi

  2. Danke! Bei der Zeile install build-essential apache2-prefork-dev libapr1-dev libssl-dev zlib1g-dev libcurl4-openssl-dev libssl-dev libapr1-dev libaprutil1-dev rubygems fehlt „aptitude“ davor.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.