HowTo: Redmine mit Apache2 und Phusion Passenger unter Debian Squeeze installieren
6Redmine 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!
… oder du holst dir den kostenlosen Account bei Plan.io ( http://bit.ly/NpZqSO ) – damit spart man sich den Wartungsaufwand (Update usw.). Das war bei mir letztendlich die Motivation.
Hat aber monatliche Kosten und das Risiko, dass vielleicht jemand von extern in deine Projekte schaut. Repositories legt deren PaaS auch an? Oder hostet man die selbst? Ansonsten ist Redmine als PaaS sicher nicht schlecht 🙂
(ist natürlich ein Redmine SaaS 🙂
Hi, ich hab ein Problem mit der Anleitung. Ich habe jetzt alle Schritte abgearbeitet bis zu dem Befehl „RAILS_ENV=production rake config/initializers/session_store.rb“.
Wenn ich diesen ausführe bekomme ich immer einen Fehler: rake aborted!
Don’t know how to build task ‚config/initializers/session_store.rb‘
Momentan bin ich ein wenig ratlos woran das liegt.
Gruß Noir
@Noir: Ist ein Fehler in der Anleitung. Bin da auch drüber gestolpert. Bei der 2.0.3er Version gibt es die Datei session_store.rb nicht mehr. Stattdessen musst du die Datei config/initializers/secret_token.rb nehmen.
Entsprechend dann in der nächsten Zeile „rake generate_secret_token“.
Es gibt noch einen weiteren Fehler in der Anleitung: In dem letzten MySQL-Statement sind Username und Datenbank vertauscht. Es muss also heißen:
GRANT ALL PRIVILEGES ON redmine.* TO ‚redmineuser’@’localhost‘;
Viele Grüße
Der Blade
Thank you very very very much.
Ich hatte viele Zeit verloren. Am Ende habe ich deine Anleitung gefunden.
Die, die schon andere Wege schon versucht haben, alle die installierte Dinge zuerst löschen, danach diese Anleitung ausführen.
Viel Spaß:-)