Patrick Hütter

HowTo: Redmine mit Apache2 und Phusion Passenger unter Debian Squeeze installieren

Redmine ist ein webbasiertes Projektmanagement-Tool. Es kann für Benutzer- und Projektverwaltung, Diskussionsforen, Wikis, zur Ticketverwaltung oder Dokumentenablage genutzt werden. Weltweit wird Redmine bei mehreren großen Projekten verwendet, unter anderem bei dem Issue-Tracking-System der Programmiersprache Ruby oder dem Entwicklerportal von TYPO3.

Da viele verschiedene Anleitungen im Internet kursieren, die die Installation von Redmine auf Debian beschreiben, aber nicht jede auf sich auf die modernsten Technologien bezieht, habe ich das nötigste zusammen gesucht und ein kleines und kurzes HowTo geschrieben. Das HowTo beschreibt die Einrichtung von Redmine 2.0.3 auf einem Debian Squeeze Server, der bereits für Webhosting von PHP-Applikationen im Einsatz ist.

1. Benötigte Pakete installieren

aptitude install wget build-essential ruby1.8 ruby1.8-dev librmagick-ruby1.8 libmysql-ruby1.8 apache2-mpm-prefork bsd-mailx mailx unzip rdoc irb libcurl4-openssl-dev apache2-prefork-dev libapr1-dev libaprutil1-dev libopenssl-ruby libmagickwand-dev imagemagick

Da das rubygems, dass mit den Distributionen mitgeliefert wird (hier Debian stable) meist oder fast immer nicht aktuell genug ist, installieren wir es manuell.

wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.24.tgz
tar xzf rubygems-1.8.24.tgz
cd rubygems-1.8.24
ruby setup.rb
ln -s /usr/bin/gem1.8 /usr/bin/gem
gem update --system

Danach installiert man weitere Pakete über rubygems, die wir gleich für Redmine 2.0.3 benötigen.
Danach installiert man bundle um mit dessen Hilfe alle Redmine Abhängigkeiten aufzulösen und automatisch herunterzuladen.

gem install bundle

Daraufhin wechseln wir in das Verzeichnis, in das wir Redmine installieren wollen (sinnvollerweise ins Webverzeichnis, ggf. da wo auch unsere Webspace/Webhosting Ordner abgelegt werden) und laden Redmine runter.

cd /var/customers/webs/
wget http://rubyforge.org/frs/download.php/76259/redmine-2.0.3.tar.gz
tar xfz redmine-2.0.3.tar.gz
rm redmine-2.0.3.tar.gz
mv redmine-2.0.3 redmine

Nach dem Runterladen von Redmine, wollen wir das zuvor geladene bundle nutzen um die Abhängigkeiten von Redmine aufzulösen und automatisch herunterladen zu lassen. Hierfür führt man im selben Verzeichnis wie Redmine folgendes aus:

bundle install

Jetzt benötigen wir einen Datenbankuser und eine Datenbank für Redmine. Diese legt man entweder auf Shellebene, oder via Webinterface (Confixx, Froxlor etc.) an.

CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmineuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON redmineuser.* TO 'redmine'@'localhost';

2. Redmine Konfiguration

Datenbankverbindung setzen (in der database.yml Datei, die wir zuvor aus dem Example kopiert haben):

cp config/database.yml.example config/database.yml
nano config/database.yml

WICHTIG! In der Datenbank-Konfiguration unter „adapter“ bei Verwendung von ruby 1.8 (wie wir es hier verwenden) unbedingt „mysql“ setzen und NICHT „mysql2“. Ab ruby 1.9 muss man mysql2 nutzen, welches u.a. aber zu Problemen führen kann, weil es Versionskonflikte mit den aktuellen Rails Versionen gibt (mysql-adapter… ist ausgelagert worden). Diese kann man fixen, indem man eine ältere mysql2 Version installiert, die noch den adapter enthält (Gemfile im Redmine Verzeichnis editieren).

Nachdem wir die Datenbankverbindung konfiguriert haben, generieren wir die Datenbankstruktur (im Redmine Verzeichnis ausführen):


RAILS_ENV=production rake config/initializers/session_store.rb
rake generate_session_store
RAILS_ENV=production rake db:migrate

3. Erster Test ohne Apache Webserver

Nun startet man zum testen den eingebauten Webserver, der auf Port 3000 lauscht und testet, ob unsere Redmine Installation funktioniert hat.

ruby script/rails server webrick -e production

Ein Aufruf im Browser unter http://domainOderIP.tld:3000 sollte nun zu Redmine führen und alles hat geklappt.
Die Zugangsdaten für die erste Redmine Installation lauten:

Name: Admin
Passwort: admin

4. Apache Konfiguration

Folgendes sollte im vhost zur entsprechenden Domain stehen. Wichtig ist, dass der DocumentRoot auf den „public“ Ordner im Redmine-Verzeichnis zeigt.


 ServerName domain.tld
 ServerAlias *.domain.tld
 ServerAdmin deine@mail.tld
 DocumentRoot "/var/customers/webs/redmine/public/"
RemoveHandler .php

      Options -MultiViews
        AllowOverride all

5. Apache Passenger installieren (mod_rails)

Phusion Passenger (informell auch als mod_rails und mod_rack bekannt) ist ein Modul für den Apache HTTP Server und für nginx zur Entwicklung und Deployment von Ruby Applikationen, insbesondere auch für Ruby on Rails-Applikationen.

gem install passenger
/usr/lib/ruby/gems/1.8/gems/passenger-3.0.14/bin/passenger-install-apache2-module # Apache2 Modul bauen / compilen

Danach ist das Apache2 Modul „passenger“ verfügbar und kann mit folgendem Befehl aktiviert werden.

a2enmod passenger

Ein Neustart des Apache2 Webservers reicht ( /etc/init.d/apache2 restart ) und unsere Redmine Installation ist zum Einsatz verfügbar.
Ich hoffe diese Anleitung kann es dem einen oder anderen etwas einfacher machen, Redmine zu installieren. Viel Spaß damit!

Die mobile Version verlassen