Project

General

Profile

DeRedmineInstall » History » Revision 25

Revision 24 (Robert Schneider, 2015-06-16 17:51) → Revision 25/52 (Robert Schneider, 2015-06-16 18:01)

{{>toc}} 

 Übersetzung von "Rev. 246":http://www.redmine.org/projects/redmine/wiki/RedmineInstall/246 

 h1. Installation von Redmine 

 Dies ist die Installationsanleitung für Redmine 1.4.0 und höher. Die Anleitung für 1.3.x findet sich "hier":/projects/redmine/wiki/RedmineInstall?version=146. 

 h2. Anforderungen 

 h3. Betriebssystem 

 Redmine sollte auf den meisten Unix-, Linux-, [[RedmineInstallOSX|Mac]]-, [[RedmineInstallOSXServer|Mac Server]]- 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| 
 |Aktueller Trunk       |ruby 1.9.3[3], 2.0.0[2], 2.1, 2.2[1]                        |Rails 4.2[0]        | 
 |3.0                 |ruby 1.9.3[3], 2.0.0[2], 2.1, 2.2[1]                        |Rails 4.2[0]        | 
 |2.6                 |ruby 1.8.7[4], 1.9.2, 1.9.3[3], 2.0.0[2], 2.1, jruby-1.7.6|Rails 3.2           | 

 *Redmine 2.x unterstützt kein Ruby 2.2* (#19652). 

 *Redmine 3.0 unterstützt kein JRuby* weil der activerecord-jdbc-adapter nicht "Rails 4.2":https://github.com/jruby/activerecord-jdbc-adapter/issues/599 unterstützt. 

 fn0. Rails 4.2.1 hat ein Problem mit Non-ASCII-URLs und MinGW-Ruby ("RubyInstaller für Windows":http://rubyinstaller.org/) thin und puma (#19321, #19374) 

 fn1. MinGW-Ruby 2.2 hat ein nokogiri-Problem (#19419). 

 fn2. Zum Zeitpunkt des Verfassens dieser Wiki-Seite (3/19/2013) war der SQL Server Support mit Ruby 2.0.0 unter Windows wegen einer "Datenbankadapter/Gem-Inkompatibilität":https://github.com/rails-sqlserver/tiny_tds/issues/110    als defekt gemeldet. 

 fn3. MRI 1.9.3p327 enthält "einen Bug":http://bugs.ruby-lang.org/issues/7374, der das Laden der Plugins verhindert - im Gegensatz zu 1.9.3p194 oder 1.9.3p392. 

 fn4. Ruby MRI 1.8.7 hat sein Lebenszyklusende erreicht - vom Gebrauch wird daher abgeraten. message#38518 and #14371 liefert dazu weitere Informationen. 

 h3. Unterstützte Datenbanken 

 * MySQL 5.0 oder höher 
 ** C bindings sollten installiert sein, was die Geschwindigkeit wesentlich erhöht. Sie lassen sich mit @gem install mysql2@ installieren. 
 ** Redmine 2.x ist nicht mit MySQL 5.7.3 (#17460) kompatibel. Diese Version wird erst mit Redmine 3.x unterstützt. 

 * PostgreSQL 8.2 oder höher 
 ** Der Datenstyle der Datenbank sollte auf ISO gesetzt sein (Standardeinstellung bei PorgresSQL). Dies kann mit mit @"redmine_db" SET datestyle="ISO,MDY";@ erreicht werden. 
 ** Einige Bugs in PostgreSQL 8.4.0 und 8.4.1 wirken sich auf das Verhalten von Redmine aus (#4259, #4314). Sie wurden jedoch in PostgreSQL 8.4.2 gefixt. 

 * Microsoft SQL Server 
 ** Redmine 2.x: 2008 oder höher (seit Redmine 2.3.0) 
 ** Redmine 3.x: "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 

 * 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). 
 * "Ruby-OpenID-Bibliothek":http://openidenabled.com/ruby-openid/ (um OpenID zu unterstützen). Es wird dazu Version 2 oder höher benötigt. 

 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 holen 

 Der Source-Code von Redmine kann entweder durch das Herunterladen eines gepackten Releases oder durch das Auschecken des Codes geholt 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 utf8; 
 CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_password'; 
 GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; 
 </code></pre> 

 Für MySQL-Versionen vor 5.0.2 die Anweisung 'CREATE USER' ersetzen durch: 

 <pre><code class="sql"> 
 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. 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 unter Verwendung von Ruby 1.8 oder jRuby: 

 <pre><code class="yml"> 
 production: 
   adapter: mysql 
   database: redmine 
   host: localhost 
   username: redmine 
   password: my_password 
 </code></pre> 

 Beispiel für eine MySQL-Datenbank unter Verwendung von Ruby 1.9 (@adapter@ muss auf @mysql2@ gesetzt werden): 

 <pre><code class="yml"> 
 production: 
   adapter: mysql2 
   database: redmine 
   host: localhost 
   username: redmine 
   password: my_password 
 </code></pre> 

 Diese Konfiguration ist zu verwenden, falls der Server nicht auf dem Standardport (3306) horcht: 

 <pre><code class="yml"> 
 production: 
   adapter: mysql 
   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 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/. 

 Zuerst muss Bundler installiert werden:  	

   gem install bundler 

 Dann können alle von Redmine benötigten gems mit folgenden Kommando installiert werden: 

   bundle install --without development test 

 h4. Optionale Abhängigkeiten 

 h5. RMagick  

 RMagick rrmöglicht die Verwendung von ImageMagick, welches wiederum erlaubt Bilder für die Erzeugung von PDFs und und für den PNG-Export generieren zu lassen. 

 Falls ImageMagick auf dem System nicht installiert ist, sollte die Installation des RMagick Gem ausgelassen werden: 

   bundle install --without development test rmagick 

 Falls es bei der Installation von RMagick unter Windows zu Problemen kommt, kann man in diesem [[HowTo_install_rmagick_gem_on_Windows|HowTo]] weitere Informationen finden. 

 h5. Datenbankadapter 

 Redmine installiert automatisch die Adapter-Gems, die von Datenbankkonfiguration benötigt werden, in dem es die Datei @config/database.yml@ ausliest. 

 @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. 

 * mit Redmine 1.4.x: 

 <pre> 
   bundle exec rake generate_session_store 
 </pre> 

 * mit Redmine 2.x 

 <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 folgende 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 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=fr bundle exec rake redmine:load_default_data 

 Beispiel für Windows: 

 <pre> 
 set RAILS_ENV=production 
 set REDMINE_LANG=fr 
 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> 

 h3. Schritt 9 - Die Installation testen 

 Die Installation kann mit dem Ausführen des WEBrick-Webserver ausprobiert werden: 

 * mit Redmine 1.4.x: 

 <pre>bundle exec ruby script/server webrick -e production</pre> 

 * mit Redmine 2.x: 

 <pre>bundle exec ruby script/rails server webrick -e production</pre> 

 * mit Redmine 3.x: 

 <pre>bundle exec rails server webrick -e production</pre> 

 Wenn WEBrick gestartet wurde, kann im Browser http://localhost:3000/ (oder eine andere Domain, mit Port 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 
 * 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 Loggings 

 Standardmäßig verwendet Redmine beim Schreiben in das @log@-Verzeichnis das Log-Level @:info@. Abhängig von der Verwendungsintensität der Anwendung kann dies eine umfangreiche Menge an Daten bedeuten. Um dabei ein uferloses Wachsen der Log-Datei zu vermeiden, sollte eine Rotation der Log-Datei erwogen werden - entweder durch System-Tools wie @logrotate@ oder durch Einstellungen in der Datei @config/additional_environment.rb@. 

 Um die zweite Möglichkeit zu verwenden, wird die @config/additional_environment.rb.example@ nach @config/additional_environment.rb@ kopiert und folgende Zeilen hinzugefügt. Zu beachten ist dabei, dass der nun verwendete Logger standardmäßig auf ein hohes Log-Level eingestellt ist, und dass daher dieser explizit auf @info@ gesetzt werden muss. 

 <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) 

 Im folgenden ist ein einfaches Shell-Skript, das für die tägliche Sicherung verwendet werden kann (mit der Annahmen, dass eine MySQL-Datenbank verwendet wird): 

 <pre><code> 
 # Datenbank 
 /usr/bin/mysqldump -u <username> -p<password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%y_%m_%d`.gz 

 # Anhänge 
 rsync -a /path/to/redmine/files /path/to/backup/files 
 </code></pre> 

 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 
 <any commmand> 
 </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 Window 7 und höher ist @localhost@ in der hosts-Datei auskommentiert[1] und es wird standardmäßig IPv6 verwendet[2]. Da das mysql2-Gem IPv6-Adressen nicht unterstützt[3], 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. 

 fn1. http://serverfault.com/questions/4689/windows-7-localhost-name-resolution-is-handled-within-dns-itself-why 

 fn2. http://www.victor-ratajczyk.com/post/2012/02/25/mysql-fails-to-resolve-localhost-disable-ipv6-on-windows.aspx 

 fn3. 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.