DeRedmineInstall » History » Revision 36
Revision 35 (C S, 2021-08-19 09:02) → Revision 36/52 (C S, 2021-11-26 10:58)
{{>toc}}
Übersetzung von "Rev. 318":http://www.redmine.org/projects/redmine/wiki/RedmineInstall/318
h1. Installation von Redmine
Dies ist die Installationsanleitung für Redmine 4.0 und höher.
* Ältere Anleitungen in Deutsch: "1.4.0":https://redmine.org/projects/redmine/wiki/DeRedmineInstall/31
* Originale Anleitungen in Englisch: "3.x":https://redmine.org/projects/redmine/wiki/RedmineInstall/308 , "1.4.x - 2.6.x":https://redmine.org/projects/redmine/wiki/RedmineInstall/263 , "1-3-x":https://redmine.org/projects/redmine/wiki/RedmineInstall?version=146
h2. Anforderungen
h3. Betriebssystem
Redmine sollte auf den meisten Unix-, Linux-, [[RedmineInstallOSX|Mac]]-, und [[RedmineInstall#Notes-on-Windows-installation|Windows]]-Systemen laufen, sofern Ruby auf diesem System vorhanden ist. Weitere spezielle Installationsanleitungen finden sich [[HowTos|hier]].
h3. Ruby-Interpreter
Die erforderliche Ruby-Version für die Redmine-Versionen sind:
|_. Redmine-Version|_. Unterstützte Ruby-Versionen |_. Verwendete Rails-Version|
|trunk (>= "r20913":https://redmine.org/projects/redmine/repository/revisions/20913 )|Ruby 2.5, 2.6, 2.7[1]|Rails 6.1 |
|4.2 |Ruby 2.4, 2.5, 2.6 |Rails 5.2 |
|4.1 |Ruby 2.3, 2.4, 2.5, 2.6 |Rails 5.2 |
fn1. 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)
fn2. Redmine Version vor 4.0.6 unterstützen Ruby 2.2.2, alle Versionen ab 4.0.6 unterstützen Ruby 2.2.x nicht mehr (Siehe #32787).
*Wichtige Hinweise:*
* %{color:red}Die Unterstützung von Ruby 2.5 und früheren Versionen wurde von der Ruby-Community beendet.% Einzelheiten finden Sie in den offiziellen Ankündigungen: "2.2":https://www.ruby-lang.org/en/news/2018/06/20/support-of-ruby-2-2-has-ended/ , "2.3":https://www.ruby-lang.org/en/news/2019/03/31/support-of-ruby-2-3-has-ended/ , "2.4":https://www.ruby-lang.org/en/news/2020/04/05/support-of-ruby-2-4-has-ended/, "2.5":https://www.ruby-lang.org/en/news/2021/04/05/ruby-2-5-9-released/.
* *Redmine unterstützt kein JRuby* da @"activerecord-jdbc-adapter":https://github.com/jruby/activerecord-jdbc-adapter/issues/599 @ und @"loofah":https://github.com/flavorjones/loofah/issues/88 @ kein Rails 4.2 oder später unterstützen
h3. Unterstützte Datenbanken
* MySQL 5.5 - 5.7
** *MySQL 5.6 und höher* sowie *MariaDB* haben bekannte Probleme (#19344, #19395, #17460).
* PostgreSQL 9.2 oder höher
** Der Datenstyle der Datenbank sollte auf ISO gesetzt sein (Standardeinstellung bei PorgresSQL). Dies kann mit @ALTER DATABASE "redmine_db" SET datestyle="ISO,MDY";@ erreicht werden.
* Microsoft SQL Server "2012 oder höher":https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/blob/v4.2.3/README.md#activerecord-sql-server-adapter-for-sql-server-2012-and-higher
** Redmine 4.0.0 bis 4.0.6 sowie 4.1.0 unterstützen kein SQL Server (#30285, #32737)
* SQLite 3 (nicht für den Produktiveinsatz mit mehreren Benutzern gedacht!)
h3. Optionale Komponenten
* SCM-Programme (z.B. @svn@) für das Browsen in Projektarchiven. [[RedmineRepositories]] enthält Informationen zu Kompatibilitäten und Anforderungen.
* "ImageMagick":http://www.imagemagick.org/ (um den Gantt-Export zu PNG-Bildern und die Generierung von Vorschaubildern zu ermöglichen).
* "Ghostscript":https://www.ghostscript.com/ (Ermöglicht die Generierung von Minaturansichten für PDF Anhänge ab Redmine 4.1)
h2. 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.
h2. Ablauf der Installation
h3. Schritt 1 - Redmine beziehen
Der Source-Code von Redmine kann entweder durch das Herunterladen eines gepackten Releases (welches dann zunächst in den Zielordner entpackt werden muss) oder durch das Auschecken des Codes bezogen werden.
Mehr Informationen auf der [[Download|Download-Seite]].
h3. 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.
h4. MySQL
<pre><code class="sql">
CREATE DATABASE redmine CHARACTER SET utf8mb4;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
</code></pre>
Für die MySQL Versionen "5.5.2":https://docs.oracle.com/cd/E17952_01/mysql-5.0-en/grant.html und früher - Bitte *@utf8@* statt @utf8mb4@ nutzen:
<pre><code class="sql">
CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
</code></pre>
Für die MySQL Versionen "5.0.2":https://docs.oracle.com/cd/E17952_01/mysql-5.0-en/grant.html und früher - Bitte *@'CREATE USER'@* überspringen:
<pre><code class="sql">
CREATE DATABASE redmine CHARACTER SET utf8;
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'my_password';
</code></pre>
h4. PostgreSQL
<pre><code class="sql">
CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'my_password' NOINHERIT VALID UNTIL 'infinity';
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
</code></pre>
h4. SQLite
Überspringen Sie diesen Schritt. Die Datenbank wird in diesem Fall in [[DeRedmineInstall#Schritt 6 - Anlegen der Datenbankstruktur und -daten|Schritt 6]] erstellt.
h4. 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@:
{{collapse(Zeige SQL,Verberge SQL)
<pre><code class="sql">
USE [master]
GO
-- Simples Erzeugen einer DB
CREATE DATABASE [REDMINE]
GO
-- Anlegen eines Logins mit Benutzer/Passwort-Authentifizierung, ohne Ablauf des Passworts
CREATE LOGIN [REDMINE] WITH PASSWORD=N'redminepassword', DEFAULT_DATABASE=[REDMINE], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
-- Erzeugung des Benutzers für das zuvor angelegte Login
USE [REDMINE]
GO
CREATE USER [REDMINE] FOR LOGIN [REDMINE]
GO
-- Benutzerberechtigungen mit Rollen
EXEC sp_addrolemember N'db_datareader', N'REDMINE'
GO
EXEC sp_addrolemember N'db_datawriter', N'REDMINE'
GO
</code></pre>
}}
h3. 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.
Beispiel für eine MySQL-Datenbank (Standardport):
<pre><code class="yml">
production:
adapter: mysql12
database: redmine
host: localhost
username: redmine
password: my_password
</code></pre>
Wenn der Server nicht unter dem Standardport (@3306@) erreichbar ist (sondern zum Beispiel unter @3307@):
<pre><code class="yml">
production:
adapter: mysql2
database: redmine
host: localhost
port: 3307
username: redmine
password: my_password
</code></pre>
Beispiel für eine PostgreSQL-Datenbank (mit dem Standardport):
<pre><code class="yml">
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)
</code></pre>
Beispiel für eine SQLite Datenbank
<pre><code class="yml">
production:
adapter: sqlite3
database: db/redmine.sqlite3
</code></pre>
Beispiel für eine SQL-Server-Datenbank (mit Standard-Host @localhost@ und Standardport @1433@):
<pre><code class="yml">
production:
adapter: sqlserver
database: redmine
username: redmine # sollte dem Datenbankbenutzer entsprechen
password: redminepassword # sollte dem Login-Passwort entsprechen
</code></pre>
h3. Schritt 4 - Installation der Abhängigkeiten
Um die gem-Abhängigkeiten zu verwalten, verwendet Redmine "Bundler":http://gembundler.com/.
Wenn Sie Ruby in der Version 2.5 oder früher benutzen, muss der Bundler erst installiert werden
<pre>gem install bundler</pre>
Dann können alle von Redmine benötigten gems mit folgenden Kommando installiert werden:
<pre>bundle install --without development test</pre>
h4. Optionale Abhängigkeiten
h5. 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:
<pre>bundle install --without development test rmagick</pre>
Falls es bei der Installation von @rmagick@ unter Windows zu Problemen kommt, sind weitere Informationen in diesem [[HowTo_install_rmagick_gem_on_Windows|HowTo]] zu finden.
h5. 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.
h4. 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:
<pre>
# Gemfile.local
gem 'puma'
</pre>
h3. 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.
<pre>bundle exec rake generate_secret_token</pre>
Alternativ kann das Secret auch in @config/secrets.yml@ gespeichert werden:
http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml
h3. 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.
+Problemlösung für Ubuntu+
Falls unter Ubuntu dieser Fehler entsteht:
<pre>
Rake aborted!
no such file to load -- net/https
</pre>
dann ist es erforderlich @libopenssl-ruby1.8@ mittels @apt-get install libopenssl-ruby1.8@ zu installieren.
h3. 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:
<pre>
set RAILS_ENV=production
set REDMINE_LANG=de
bundle exec rake redmine:load_default_data
</pre>
h3. 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 Anwendung @production.log@)
# @tmp@ and @tmp/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:
<pre>
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
</pre>
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.
<pre>sudo find files log tmp public/plugin_assets -type f -exec chmod -x {} +</pre>
h3. Schritt 9 - Die Installation testen
Die Installation kann mit dem Ausführen des WEBrick-Webserver ausprobiert werden:
<pre>bundle exec rails server webrick -e production</pre>
Wenn WEBrick gestartet wurde, kann im Browser http://localhost:3000/ aufgerufen werden. Es sollte dann die Willkommensseite von Redmine erscheinen.
> Hinweis: WEBrick ist *nicht* für den Produktiveinsatz geeignet. WEBrick sollte nur zum Überprüfen der Installation verwendet werden, um zu sehen, ob soweit alles funktioniert. Es kann aber einer der zahlreichen Anleitungen in diesem Wiki verwendet werden, um Redmine mit Passenger (vormals @mod_rails@), FCGI oder einem Rack-Server (Unicorn, Thin, Puma, hellip) zu betreiben.
h3. 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.
h2. 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.
h3. Email/SMTP-Servereinstellungen
Die Email-Konfiguration wird auf einer [[EmailConfiguration|separaten Seite]] erklärt.
h3. 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"
h3. 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
h2. 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.
<pre><code class="ruby">
#Logger.new(PATH,NUM_FILES_TO_ROTATE,FILE_SIZE)
config.logger = Logger.new('/path/to/logfile.log', 2, 1000000)
config.logger.level = Logger::INFO
</code></pre>
h2. 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 [[DeRedmineBackupRestore|Sichern und Wiederherstellen von Redmine]]
h2. 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.
h2. 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:
<pre>
RAILS_ENV=production <irgendeine Anweisung>
<irgendeine Anweisung> RAILS_ENV=production
</pre>
müssen in zwei aufeinanderfolgende Anweisungen zerlegt werden:
<pre>
set RAILS_ENV=production
<irgendeine Anweisung>
</pre>
+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 auskommentiert[5] und es wird standardmäßig IPv6 verwendet[6]. Da das mysql2-Gem IPv6-Adressen nicht unterstützt[7], 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.
fn5. http://serverfault.com/questions/4689/windows-7-localhost-name-resolution-is-handled-within-dns-itself-why
fn6. http://www.victor-ratajczyk.com/post/2012/02/25/mysql-fails-to-resolve-localhost-disable-ipv6-on-windows.aspx
fn7. https://github.com/brianmario/mysql2/issues/279
h2. Alternative zur manuellen Installation
Einige Nutzer verzichten lieber auf die manuelle Installation, indem sie einer der [[Download#Third-party-Redmine-bundles|Redmine-Pakete]] von Drittanbietern verwenden, die auf der Download-Seite aufgelistet sind.