- Table of contents
- Installation von Redmine
- Anforderungen
- Redmine-Version
- Ablauf der Installation
- Schritt 1 - Redmine beziehen
- Schritt 2 - Eine leere Datenbank erstellen und einen Benutzer zuweisen
- Schritt 3 - Konfiguration der Datenbankverbindung
- Schritt 4 - Installation der Abhängigkeiten
- Schritt 5 - Erzeugen des Session Store Secrets
- Schritt 6 - Anlegen der Datenbankstruktur und -daten
- Schritt 7 - Grunddaten in die Datenbank einfügen
- Schritt 8 - Berechtigungen im Dateisystem
- Schritt 9 - Die Installation testen
- Schritt 10 - In die Anwendung einloggen
- Konfiguration
- Konfiguration des Protokollierung
- Sicherungen
- Hinweise zur Installation unter Linux/Unix
- Hinweise zur Installation unter Windows
- Alternative zur manuellen Installation
Übersetzung der Revision 339 vom 01.01.2024
Installation von Redmine¶
Dies ist die Installationsanleitung für Redmine 4.0 und höher.- Ältere Anleitungen in Deutsch: 1.4.0
- Originale Anleitungen in Englisch: 3.x , 1.4.x - 2.6.x , 1-3-x
Anforderungen¶
Betriebssystem¶
Redmine sollte auf den meisten Unix-, Linux-, Mac-, und Windows-Systemen laufen, sofern Ruby auf diesem System vorhanden ist. Weitere spezielle Installationsanleitungen finden sich hier.
Ruby Interpreter und unterstützte Datenbanken¶
Die erforderlichen Ruby-Versionen und unterstützten Datenbank-Backends für eine bestimmte Redmine-Version sind:
Redmine-Version | Unterstützte Ruby-Versionen | Verwendete Rails-Version | Empfohlene Datenbanken | |||
---|---|---|---|---|---|---|
PostgreSQL | MySQL | MSSQL | SQLite | |||
trunk (>= r22488) | Ruby 2.71, 3.0, 3.1, 3.2 | Rails 7.1 | 14 | 8.0 - 8.13 | >2012 | 3 |
5.1 | Ruby 2.71, 3.0, 3.1, 3.2 | Rails 6.1 | >9.25 | 5.7 - 8.13 | >2012 | 3 |
5.0 | Ruby 2.51, 2.61, 2.71, 3.0, 3.1 | Rails 6.1 | >9.25 | 5.7 - 5.74 | >2012 | 3 |
4.2 | Ruby 2.41, 2.51, 2.61, 2.72 | Rails 5.2 | >9.25 | 5.5 - 5.74 | >2012 | 3 |
1 Die Unterstützung von Ruby 2.7 und früher wurde von der Ruby-Community eingestellt. Weitere Informationen finden Sie in den offiziellen Ankündigungen: 2.2, 2.3, 2.4, 2.5, 2.6 , 2.7 .
2 Redmine 4.2 unterstützt kein Ruby 2.7.0 und 2.7.1. Bitte Ruby 2.7.2 oder höher benutzen (siehe auch #31500#note-13).
3 Redmine Version: >= "5.1.1" mit MySQL erfordert eine Änderung von transaction_isolation
zu READ COMMITTED
damit die MySQL Konfiguration ordnungsgemäß funktioniert.
4 Redmine Version: < 5.1.1 mit MySQL 5.6 oder höher und MariaDB - hier sind bekannte Probleme aufgetreten (#19344, #19395, #17460)
5 * PostgreSQL 9.2 oder höher benötigt. Stellen Sie sicher, dass der Datumsstil Ihrer Datenbank auf ISO eingestellt ist (Postgresql-Standardeinstellung). Sie können dies festlegen mit: ALTER DATABASE "redmine_db" SET datestyle="ISO,MDY";
Wichtige Hinweise:
- Redmine unterstützt kein JRuby.
- Microsoft SQL Server 2012 oder höher
- SQLite 3 eignet sich nicht zum produktivem Multi-Benutzer Einsatz
Optionale Komponenten¶
- SCM-Programme (z.B.
svn
) für das Browsen in Projektarchiven. RedmineRepositories enthält Informationen zu Kompatibilitäten und Anforderungen. - ImageMagick (um den Gantt-Export zu PNG-Bildern und die Generierung von Vorschaubildern zu ermöglichen).
- Ghostscript (Ermöglicht die Generierung von Minaturansichten für PDF Anhänge ab Redmine 4.1)
Redmine-Version¶
Dem Großteil der Benutzer wird im Allgemeinen empfohlen, die entsprechenden Point-Releases zu installieren. Derzeit veröffentlicht Redmine alle sechs Monate eine neue Version - diese Veröffentlichungen werden als relativ gut einsetzbar und als stabil erachtet. Es wird nicht empfohlen Redmine von Trunk zu installieren, außer man ist mit Ruby on Rails sehr vertraut und bleibt mit den Änderungen auf dem letzten Stand - der Trunk-Zweig kann zuweilen auch Fehler enthalten.
Ablauf der Installation¶
Schritt 1 - Redmine beziehen¶
Der Source-Code von Redmine kann entweder durch das Herunterladen oder Auschecken eines gepackten Releases bezogen werden. Gepackte Dateien müssen erst in ein geeignetes Ziel extrahiert/entpackt werden.
Alternativ kann man die Dateien direkt aus dem Versionskontrollsystem auschecken(Code-Repository).
Mehr Informationen auf der Download-Seite.
Schritt 2 - Eine leere Datenbank erstellen und einen Benutzer zuweisen¶
Nach den folgenden Anweisungen heißt der Datenbankbenutzer von Redmine redmine
, jedoch kann der Name auch geändert werden.
MySQL¶
CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
Für die MySQL Versionen 5.5.2 und früher - Bitte utf8
statt utf8mb4
nutzen:
CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
Für die MySQL Versionen 5.0.2 und früher - Bitte 'CREATE USER'
überspringen:
CREATE DATABASE redmine CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'my_password';
PostgreSQL¶
CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'my_password' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
SQLite¶
Überspringen Sie diesen Schritt. Die Datenbank wird in diesem Fall in Schritt 6 erstellt.
SQL Server¶
Die Datenbank, das Login und der Benutzer können im SQL Server Management Studio mit ein paar Klicks erstellt werden.
Hier aber auch ein Beispiel auf der der Kommandozeile mit SQLCMD
:
Schritt 3 - Konfiguration der Datenbankverbindung¶
Um die Datenbankverbindung für den Produktiveinsatz zu konfigurieren wird config/database.yml.example
nach config/database.yml
kopiert und wie folgt bearbeitet. Für MySQL lesen Sie bitte auch diese Anleitung MySQL Konfiguration.
Beispiel für eine MySQL-Datenbank (Standardport):
production:
adapter: mysql12
database: redmine
host: localhost
username: redmine
password: my_password
variables:
transaction_isolation: "READ-COMMITTED"
Wenn der Server nicht unter dem Standardport (3306
) erreichbar ist (sondern zum Beispiel unter 3307
):
production:
adapter: mysql2
database: redmine
host: localhost
port: 3307
username: redmine
password: my_password
variables:
transaction_isolation: "READ-COMMITTED"
Beispiel für eine PostgreSQL-Datenbank (mit dem Standardport):
production:
adapter: postgresql
database: <your_database_name>
host: <postgres_host>
username: <postgres_user>
password: <postgres_user_password>
encoding: utf8
schema_search_path: <database_schema> (default - public)
Beispiel für eine SQLite Datenbank
production:
adapter: sqlite3
database: db/redmine.sqlite3
Beispiel für eine SQL-Server-Datenbank (mit Standard-Host localhost
und Standardport 1433
):
production:
adapter: sqlserver
database: redmine
username: redmine # sollte dem Datenbankbenutzer entsprechen
password: redminepassword # sollte dem Login-Passwort entsprechen
Schritt 4 - Installation der Abhängigkeiten¶
Um die gem-Abhängigkeiten zu verwalten, verwendet Redmine Bundler.
Wenn Sie Ruby in der Version 2.5 oder früher benutzen, muss der Bundler erst installiert werden
gem install bundler
Dann können alle von Redmine benötigten gems mit folgenden Kommando installiert werden:
bundle config set --local without 'development test' bundle install
Optionale Abhängigkeiten¶
RMagick¶
RMagick ist eine Schnittstelle zwischen der Programmiersprache Ruby und der ImageMagick-Bildverarbeitungsbibliothek. Die Bibliothek ist erforderlich, damit Redmine vor 4.1.0 Gantt-Diagramme in PNG oder PDF exportieren kann.
Wenn ImageMagick (6.4.9 - 6.9.10) nicht auf Ihrem System installiert ist und Sie Redmine 4.0 oder früher installieren, sollten Sie die Installation des rmagick-Gems überspringen mit:
bundle config set --local without 'development test rmagick' bundle install
Falls es bei der Installation von rmagick
unter Windows zu Problemen kommt, sind weitere Informationen in diesem HowTo zu finden.
Datenbankadapter¶
Redmine installiert automatisch die Adapter-Gems, die von Datenbankkonfiguration benötigt werden, in dem es die Datei config/database.yml
ausliest (Wenn Sie nur eine Verbindung mit dem mysql2
-Adapter konfiguriert haben, wird nur das mysql2
-Gem installiert).
bundle install --without development test ...
ist jedes Mal auszuführen, wenn in der Datei config/database.yml
Adapter hinzugefügt oder entfernt worden sind. Dies sollte nicht vergessen werden.
Weitere Abhängigkeiten (Gemfile.local)¶
Wenn Gems geladen werden müssen, die nicht vom Redmine-Core benötigt werden (z.B. Puma, fcgi), so kann eine Datei Gemfile.local
im Root-Verzeichnis des Redmine-Verzeichnisses erstellt werden. Sie wird automatisch geladen, sobald bundle install
ausgeführt wird.
Beispiel:
# Gemfile.local gem 'puma'
Schritt 5 - Erzeugen des Session Store Secrets¶
Dieser Schritt erzeugt einen zufälligen Schlüssel, der von Rails verwendet wird, um Session-Daten zu verschlüsseln, die in einem Cookie gespeichert werden, sodass Manipulationen verhindert werden.
Das Erzeugen eines neuen Secret Tokens macht nach einem Neustart alle bestehenden Sesssions ungültig.
bundle exec rake generate_secret_token
Alternativ kann das Secret auch in config/secrets.yml
gespeichert werden:
http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml
Schritt 6 - Anlegen der Datenbankstruktur und -daten¶
Mit dem Ausführen der folgenden Anweisung im Root-Verzeichnis von Redmine wird die Datenbankstruktur angelegt:
RAILS_ENV=production bundle exec rake db:migrate
Syntax unter Windows:
set RAILS_ENV=production
bundle exec rake db:migrate
Damit werden nacheinander alle Migrationen durchgeführt - was die Tabellen, eine Reihe von Berechtigungen und das Administrator-Konto mit dem Namen admin
erzeugt.
Schritt 7 - Grunddaten in die Datenbank einfügen¶
Mit folgender Anweisung werden die Daten der Grundkonfiguration in die Datenbank hinzugefügt:
RAILS_ENV=production bundle exec rake redmine:load_default_data
Redmine fragt dabei nach der Sprache für die Daten, die beim Hinzufügen verwendet werden soll. Das Setzen der Umgebungsvariable REDMINE_LANG
vor dem Ausführen der Anweisung ermöglicht hingegen den Silent-Modus, so dass keine Nachfrage mehr stattfindet, da die Sprache nun aus der Variablen gelesen wird.
Beispiel für unixoide Systeme:
RAILS_ENV=production REDMINE_LANG=de bundle exec rake redmine:load_default_data
Beispiel für Windows:
set RAILS_ENV=production set REDMINE_LANG=de bundle exec rake redmine:load_default_data
Schritt 8 - Berechtigungen im Dateisystem¶
Hinweis: Windows-Benutzer können diesen Abschnitt überspringen.
Der Benutzer, mit dem die Anwendung ausgeführt wird, muss die Berechtigung zum Schreiben in folgende Subverzeichnisse haben:
files
(Speicherort für Anhänge)log
(Log-Datei der Anwendungproduction.log
)tmp
andtmp/pdf
(Verzeichnisse sind anzulegen, falls sie noch nicht existieren; wird unter anderem auch für das Erstellen von PDFs verwendet)public/plugin_assets
(Assets der Plugins)
Beispiel - davon ausgehend, die Anwendung wird mit einem Benutzer redmine
betrieben:
mkdir -p tmp tmp/pdf public/plugin_assets sudo chown -R redmine:redmine files log tmp public/plugin_assets sudo chmod -R 755 files log tmp public/plugin_assets
Hinweis: Wenn Sie Dateien in diesen Verzeichnissen haben (z. B. Dateien aus dem Backup wiederherstellen), stellen Sie sicher, dass diese Dateien nicht ausführbar sind.
sudo find files log tmp public/plugin_assets -type f -exec chmod -x {} +
Schritt 9 - Die Installation testen¶
Die Installation kann mit dem Ausführen des Puma-Webserver ausprobiert werden:
bundle exec rails server -e production
Schritt 10 - In die Anwendung einloggen¶
Zum Einloggen wird der Administrator-Zugang verwendet:
- Mitgliedsname: admin
- Passwort: admin
Die meisten Einstellungen können nun vorgenommen werden indem man im Menü zur Administration
und dort in den Bereich Konfiguration
geht.
Konfiguration¶
Die Redmine-Einstellungen werden in einer Datei namens config/configuration.yml
gespeichert.
Wenn andere Werte als die Standardeinstellungen verwendet werden sollen, so muss lediglich config/configuration.yml.example
nach config/configuration.yml
kopiert und angepasst werden. Die Datei enthält Dokumentation in Form von Kommentaren und ist daher selbsterklärend.
Diese Einstellungen können auch durch die Umgebungsvariablen für Rails vorgenommen werden (production/development/test
).
Wichtig: die Anwendung muss nach jeder Änderung neu gestartet werden.
Email/SMTP-Servereinstellungen¶
Die Email-Konfiguration wird auf einer separaten Seite erklärt.
SCM-Einstellungen¶
Dieser Abschnitt ermöglicht:
- das Überschreiben der Standardanweisungsnamen, falls die SCM-Binärdateien in der PATH-Variablen nicht die üblichen Namen verwenden ((Windows .bat/.cmd Namen funktionieren nicht)
- das Festlegen des kompletten Pfads zu den SCM-Binärdateien
Beispiele (mit Subversion):
Überschreiben des Anweisungsnamen:
scm_subversion_command: "svn_replacement.exe"
Setzen des Pfades:
scm_subversion_command: "C:\Program Files\Subversion\bin\svn.exe"
Speichereinstellungen für Anhänge¶
Mit der Einstellung attachments_storage_path
kann das Verzeichnis für den Ort, wohin Anhänge gespeichert werden, vom Standard files
auf einen anderen geändert werden.
Beispiele:
attachments_storage_path: /var/redmine/files
attachments_storage_path: D:/redmine/files
Konfiguration des Protokollierung¶
Redmine verwendet standardmäßig die Protokollebene :info
und schreibt in das Protokollunterverzeichnis. Abhängig von der SeitenNutzung können dies viele Daten sein. Um zu vermeiden, dass der Inhalt der Protokolldatei ungebremst wächst, sollten Sie sie dies entweder über ein Systemdienstprogramm wie logrotate
oder über die Datei config/additional_environment.rb
regulieren.
Um letzteres zu verwenden, kopieren Sie config/additional_environment.rb.example
nach config/additional_environment.rb
und fügen Sie die folgenden Zeilen hinzu. Beachten Sie, dass der neue Logger standardmäßig eine hohe Log-Ebene verwendet und daher explizit auf info
gesetzt werden sollte.
#Logger.new(PATH,NUM_FILES_TO_ROTATE,FILE_SIZE)
config.logger = Logger.new('/path/to/logfile.log', 2, 1000000)
config.logger.level = Logger::INFO
Sicherungen¶
Redmine-Sicherungen sollten enthalten:
- Daten (in der Redmine-Datenbank gespeichert)
- Anhänge (standardmäßig im
files
-Verzeichnis des Redmine-Installationsverzeichnisses enthalten)
Weitere Informationen hierzu finden sie unter Sichern und Wiederherstellen von Redmine
Hinweise zur Installation unter Linux/Unix¶
Falls während der Installation seltsame Probleme auftreten, so sollte sichergestellt werden, dass sicherheitsüberwachende Tools ausgeschaltet sind. So etwas passiert häufig ohne Fehlermeldungen oder anderem Feedback und kann durch Tools wie Erweiterte ACLs, SELinux oder AppArmor verursacht werden. Jene Tools werden meistens in größeren Firmen mit strengen Sicherheitsrichtlinien verwendet. Die Einstellungen von Standard-Linux- oder Unix-Distributionen sollten aber keine Probleme verursachen.
Hinweise zur Installation unter Windows¶
Unter http://rubyinstaller.org gibt es einen vorgefertigtes Installationsprogramm für den Ruby-MRI (Matz' Ruby-Interpreter).
Nach dessen Installation ist Start Command Prompt with Ruby im Startmenü auszuwählen.
Setzen der RAILS_ENV
-Variable:
Beim Ausführen von Anweisungen, wie sie in dieser Anleitung beschrieben sind, muss die RAILS_ENV
-Variable mit einer anderen Anweisung zuvor gesetzt werden.
D.h. Anweisungen mit der Syntax folgender Art:
RAILS_ENV=production <irgendeine Anweisung> <irgendeine Anweisung> RAILS_ENV=production
müssen in zwei aufeinanderfolgende Anweisungen zerlegt werden:
set RAILS_ENV=production <irgendeine Anweisung>
Probleme bei der Installation des MySQL-Gem
Es kann nötig sein, das MySQL-Gem manuell mit folgender Anweisung zu installieren:
gem install mysql
Und in manchen Fällen ist es erforderlich libmysql.dll
in das ruby/bin
-Verzeichnis zu kopieren.
Nicht alle libmysql.dll
-Dateien scheinen fehlerfrei zu sein, jedoch sollte diese Datei funktionieren: http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll.
Wichtiger Hinweis für Windows 7 und höher
Unter Windows 7 und höher ist localhost
in der hosts-Datei auskommentiert5 und es wird standardmäßig IPv6 verwendet6. Da das mysql2-Gem IPv6-Adressen nicht unterstützt7, kann keine Verbindung aufgebaut werden und es tritt der Fehler "Can't connect to MySQL server on 'localhost' (10061)"
auf.
Dies lässt sich überprüfen indem localhost
gepingt wird: wenn "::1:"
gepingt wird, so ist IPv6 in Verwendung.
Workaround:
localhost
mit 127.0.0.1
in database.yml
ersetzen.
7 https://github.com/brianmario/mysql2/issues/279
Alternative zur manuellen Installation¶
Einige Nutzer verzichten lieber auf die manuelle Installation, indem sie einer der Redmine-Pakete von Drittanbietern verwenden, die auf der Download-Seite aufgelistet sind.
Updated by C S 11 months ago · 52 revisions