Redmine: Unterschied zwischen den Versionen

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „[http://www.redmine.org/ Redmine] ist ein Projektverwaltungs-Werkzeug, das auf Ruby und Ruby on Rails basiert. Die Installation kann vollständig im Benutzerac…“
 
Keine Bearbeitungszusammenfassung
Zeile 84: Zeile 84:


Dabei ist ''deinusername'' durch den Benutzernamen zu ersetzen. Das Script muss anschließend ausführbar gemacht werden:
Dabei ist ''deinusername'' durch den Benutzernamen zu ersetzen. Das Script muss anschließend ausführbar gemacht werden:
  chmod +x wrapper.cfgi
  chmod +x wrapper.fcgi





Version vom 15. Januar 2013, 08:05 Uhr

Redmine ist ein Projektverwaltungs-Werkzeug, das auf Ruby und Ruby on Rails basiert. Die Installation kann vollständig im Benutzeraccount stattfinden. Die Anbindung an den Webserver soll über FastCGI geschehen, da ein eigenständiger Daemon etwas unhandlich ist.

Ein großer Teil dieser Anleitung ist von unseren Kollegen bei Uberspace übernommen. Vielen Dank an die Kollegen für diesen Artikel!

Ruby-Versionen

Zumindest unter Gentoo ist es uns bisher nicht gelungen, die Ruby-FCGI-Bibliothek unter Ruby-1.9 zu nutzen. Daher basiert diese Anleitung auf Ruby-1.8. Momentan gibt es noch sehr viele Dinge die bei Ruby 1.9 nicht richtig funktionieren, daher ist es kein Problem, sich vorläufig noch auf das Vorhandensein von Ruby-1.8 zu verlassen.

Vorbereitung

Bevor wir in die Untiefen der Ruby-Gems hinab steigen sollten wir die Datenbank einrichten. Eine eigene Datenbank für Redmine ist empfehlenswert und kann über das Webinterface von schokokeks.org Hosting angelegt werden. Ein bestehender oder neuer Benutzer muss darauf Zugriff erhalten.


Wir installieren im nächsten Schritt das gem "bundler", das uns einen neuen Kommandozeilen-Befehl zur Verfügung stellt. Damit ein Befehl aus einem lokal im Benutzeraccount installierten GEM verfügbar ist, muss der passende Pfad gesetzt sein. Dazu dient folgender Befehl:

echo "export PATH=\"${HOME}/.gem/ruby/1.8/bin:\$PATH\"" >> ~/.bash_profile
source ~/.bash_profile

Anschließend konfigurieren wir GEM so, dass generell alles im Benutzerverzeichnis installiert wird. Anders macht es auch keinen Sinn, da man ja nur im Benutzerverzeichnis Änderungen vornehmen darf.

echo "gem: --user-install --no-rdoc --no-ri" > ~/.gemrc

Zuletzt wird das Paket bundler installiert:

gem install bundler

Redmine installieren

Danach muss das jeweils aktuelle Paket von Redmine heruntergeladen werden. Zum Erstell-Zeitpunkt dieser Wiki-Seite ist das die Version 2.2.1.

cd ~
wget http://rubyforge.org/frs/download.php/76677/redmine-2.2.1.tar.gz

In diesem Beispiel soll unser Redmine unter redmine.mydomain online gestellt werden. Dazu wird das Archiv passend entpackt und ein Symlink von "public" auf "htdocs" erzeugt um unsere Standard-Website-Verzeichnisse zu erhalten. redmine.mydomain ist jeweils durch den wirklichen Domainnamen zu ersetzen.

cd websites
tar xzf ~/redmine-2.2.1.tar.gz
mv redmine-2.2.1 redmine.mydomain
cd redmine.mydomain
ln -s public htdocs

Abhängigkeiten installieren

Durch das Paket bundler können in einem Rutsch sämtliche Abhängigkeiten installiert werden. Vorher muss jedoch für den Betrieb mittels FastCGI noch die Abhängigkeit zu fcgi manuell eingetragen werden:

echo "gem 'fcgi'" > Gemfile.local

Anschließend werden alle Abhängigkeiten heruntergeladen und installiert. Dabei lassen wir die Test- und Entwickler-Plattform genauso aus wie die PostgreSQL- und SQlite-Datenbank.

bundle install --path ~/.gem --without development test postgresql sqlite

Datenbank einrichten

Zunächst werden die Zugangsdaten in der Datei config/database.yml eingetragen. Die Datei muss bzgl. der Einrückungen genau so bleiben. Alles bis auf die erste Zeile ist eingerückt.

production:
  adapter: mysql
  database: datenbankname
  host: localhost
  username: datenbankbenutzer
  password: datenbankpasswort
  encoding: utf8

Anschließend wird kurz das Session-Secret erzeugt. Das wird benötigt um die Sessions sicher zu machen:

 rake generate_secret_token

Danach wird die Datenbank mit dem Standardinhalt gefüllt.

RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake redmine:load_default_data

Beim letzten Befehl wird nach der Standard-Sprache gefragt. Mit "de" kann man die Beispieldaten in deutsch eintragen lassen. In unserem Test hat das aber nicht dazu geführt, dass die Installation nachher deutschsprachig war. Das lässt sich aber später im Redmin-Webinterface ändern.

E-Mail-Versand

Damit Redmine E-Mails versenden kann, sollte es am besten den traditionellen Sendmail-Wrapper unseres Mailservers benutzen. Dazu in der Datei config/configuration.yml folgendes eintragen:

production:
  email_delivery:
    delivery_method: :sendmail


Anbindung an FastCGI

Im Verzeichnis ~/websites/redmine.mydomain/htdocs liegt bereits eine Datei dispatch.fcgi.example, die uns als Vorgabe ausreicht.

 cd htdocs
 cp -a dispatch.fcgi.example dispatch.fcgi

Ein Problem tritt auf da FastCGI die Umgebungsvariablen nicht so setzt wie dies in unserer SSH-Sitzung der Fall ist. Daher findet das dispatch-Script nicht alles was es braucht. Wir legen daher ein wrapper-Script an, das die Umgebung einrichtet und das Original-Script anschließend startet. Folglich wird eine neue Datei wrapper.fcgi erstellt mit folgendem Inhalt:

#!/bin/bash
export USER=deinusername
export HOME=/home/deinusername
source $HOME/.bash_profile
export RAILS_ENV=production
exec ./dispatch.fcgi

Dabei ist deinusername durch den Benutzernamen zu ersetzen. Das Script muss anschließend ausführbar gemacht werden:

chmod +x wrapper.fcgi


Anschließend muss über eine .htaccess-Datei noch eingerichtet werden, dass unser wrapper-Script auch benutzt wird. Am einfachsten geht das mit mod_rewrite. Also eine neue Datei .htaccess' (führender Punkt!) erstellen mit folgendem Inhalt:

AddHandler fcgid-script .fcgi
Options +FollowSymLinks +ExecCGI

RewriteEngine On
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ wrapper.fcgi [QSA,L]

ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"

Fertig

Damit ist die Einrichtung beendet und die Website kann nun zum ersten Mal aufgerufen werden. Die Standard-Datenbank enthält bereits einen Admin-Benutzer. Benutzername und Passwort ist jeweils "admin".

Fehler?

Fehlermeldungen werden auch bei aktiviertem Error-Log in vielen Fällen in das zentrale System-Logfile geschrieben auf die ein Benutzer keinen Zugriff hat. Bei Fehlern ist man als Benutzer also manchmal etwas hilflos. Sprechen Sie uns an, wir helfen gerne bei der Fehlersuche.