Wer ein leistungsstarkes Ticket- oder Projektmanagementsystem sucht, findet mit Redmine eventuell die perfekte Lösung. Da sich die manuelle Installation als nicht ganz einfach erweist, soll diese Anleitung zeigen, wie sich Redmine unter Ubuntu installieren lässt. Die offizielle Anleitung ist hier zu finden.
Inhaltsverzeichnis
Was ist Redmine?
Was genau Redmine ist, kann auf Wikipedia und der offiziellen Homepage nachgelesen werden. Daher verzichte ich hier auf eine ausführliche Produktvorstellung. Ich persönlich verwende Redmine für Nocksoft. Ich verwalte mit Redmine alle meine Softwareprojekte und auch die Supportanfragen. Aufgaben bzw. Tickets lassen sich verschiedenen Projekten zuordnen und so gut verwalten.

Installation des Ubuntu Servers
Diese Anleitung basiert auf einem frisch installierten Ubuntu Server. Lediglich den SSH-Server habe ich bei der Installation mitinstalliert, um den Server später mit PuTTY konfigurieren zu können.

Ich habe den Server mit folgenden Eckdaten installiert:
- DNS-Name: redmine-tutorial
- Benutzername: redmine
PuTTY verwenden
Damit die Installation einfacher von der Hand geht, verwende ich das Tool PuTTY. Nachdem PuTTY gestartet ist, kann ich mich mit der IP-Adresse des Servers, verbinden. Um die IP-Adresse herauszufinden, kann der Befehl ifconfig verwendet werden.

Ubuntu aktualisieren
Bevor die eigentliche Installation von Redmine beginnen kann, bringe ich die Ubuntu-Installation auf dem neuesten Stand. Dazu verwende ich folgenden Befehl:
$ sudo apt-get update && sudo apt-get -y upgrade
Der Parameter y sort dafür, dass alle Nachfragen automatisch mit "Yes" bestätigt werden.
Apache und MySQL installieren
Redmine benötigt einen Webserver und eine Datenbank. Ich verwende Apache und MySQL, da ich damit die besten Erfahrungen gemacht habe:
$ sudo apt-get install apache2 mysql-server mysql-client
Während der Installation von MySQL muss das Passwort für den root-Benutzer von MySQL festgelegt werden. Ansonsten sollten keine weiteren Eingriffe erforderlich sein.
Datenbank anlegen
Damit die Datenbank für Redmine angelegt werden kann, muss sich zunächst mit dem MySQL root-Benutzer am Datenbankserver angemeldet werden:
$ mysql -u root -p
Mit den folgenden Befehlen erstelle ich die Datenbank redmine und einen Benutzer redmine, der Berechtigungen hat, um sich an der neuen Datenbank anzumelden (password ist natürlich mit dem gewünschten Passwort für den neuen MySQL-Benutzer redmine zu ersetzen):
$ CREATE DATABASE redmine CHARACTER SET utf8;
$ GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'password';
$ exit

Berechtigungen für /var/www/ ändern
Damit auf das Verzeichnis /var/www/ zugegriffen werden kann, übernehme ich den Besitz mit folgendem Befehl (UBUNTUBENUTZER ist mit dem Ubuntu-Benutzer zu ersetzen. In meinem Beispiel heißt der Ubuntu-Benutzer redmine):
$ sudo chown -R UBUNTUBENUTZER /var/www/
Redmine herunterladen und entpacken
Im nächsten Schritt kann Redmine heruntergeladen und installiert werden. Ich werde Redmine unter /var/www/redmine/ ablegen. Natürlich kann hier auch ein anderer Pfad verwendet werden.
Mit den folgenden Befehlen wird Redmine heruntergeladen und anschließend entpackt:
$ cd /var/www/
$ wget https://redmine.org/releases/redmine-3.2.2.zip
$ sudo apt-get install unzip
$ unzip redmine-3.2.2.zip
$ mv redmine-3.2.2 redmine
Datenbankverbindung konfigurieren
Die Datenbankverbindung wird in der Datei /redmine/config/database.yml konfiguriert. Dafür muss die Datei database.yml.example zuvor entsprechend umbenannt werden.
$ cd redmine/config/
$ cp database.yml.example database.yml
$ sudo nano database.yml
Dort sind schließlich die Verbindungsparameter anzugeben. Es ist entsprechend der Benutzer zu verwenden, der bei der Datenbankerstellung angelegt wurde. In der Regel ist nur der Bereich production anzupassen:

Mit den Tasten Strg + O, ENTER und Strg + X lässt sich die Datei speichern und schließen.
Ruby installieren
Redmine ist in Ruby geschrieben und braucht daher auch Ruby, damit es funktioniert. Zunächst muss dazu folgender Befehl verwendet werden:
$ \curl -sSL https://get.rvm.io | sudo bash -s stable --rails
Es sollte ein Fehler bezüglich der Signatur angezeigt werden. Unterhalb der Fehlermeldung steht aber der korrekte Befehl, der als nächstes einzugeben ist:

In meinem Beispiel etwa:
$ sudo gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
Schließlich wird angezeigt, dass ein Schlüssel erfolgreich importiert wurde. Weiter geht es mit folgenden Befehlen (UBUNTUBENUTZER ist mit dem Ubuntu-Benutzer zu ersetzen. In meinem Beispiel heißt der Ubuntu-Benutzer redmine):
$ \curl -sSL https://get.rvm.io | sudo bash -s stable --rails
$ source /usr/local/rvm/scripts/rvm
$ echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrc
$ sudo -i
$ gem install bundler
$ su - UBUNTUBENUTZER
$ cd /var/www/redmine/
$ bundle install --without development test rmagick
Sofern die Serverversion von Ubuntu verwendet wird, kann es beim letzten Befehl zu folgendem Fehler kommen:

Der Fehler kann behoben werden, indem das Paket libmysqlclient-dev nachinstalliert wird. Anschließend ist der letzte Befehl natürlich erneut auszuführen:
$ sudo apt-get install libmysqlclient-dev
$ bundle install --without development test rmagick
Datenbankstruktur erstellen
Um die Redminedatenbank initial befüllen zu lassen, sind folgende Befehle zu verwenden:
$ bundle exec rake generate_secret_token
$ RAILS_ENV=production bundle exec rake db:migrate
$ RAILS_ENV=production bundle exec rake redmine:load_default_data
Beim letzten Befehl ist das entsprechende Länderkürzel einzugeben, etwa de.
Passenger installieren und konfigurieren
Um Redmine korrekt ausführen zu können, muss das Passenger-Modul installiert werden:
$ sudo -i
$ gem install passenger
$ apt-get install libcurl4-openssl-dev apache2-dev libapr1-dev libaprutil1-dev
$ passenger-install-apache2-module
Während des letzten Befehls sollte folgende Meldung erscheinen:

Die zu ergänzende Konfiguration besteht in meinem Beispiel aus folgenden vier Zeilen:
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.3.0/gems/passenger-5.0.28/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/local/rvm/gems/ruby-2.3.0/gems/passenger-5.0.28 PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.3.0/wrappers/ruby </IfModule>
Entweder können alle vier Zeilen in die Konfigurationsdatei /etc/apache2/apache2.conf eingetragen werden, oder aber man teilt die Konfiguration auf. Für diese Anleitung werde ich die Konfiguration aufteilen. Ich erstelle also zwei neue Konfigurationsdateien:
$ cd /etc/apache2/mods-available/
$ touch passenger.load
$ touch passenger.conf
Zuerst wird die erste Zeile LoadModule... in der von uns neu angelegten Datei nano passenger.load eingetragen:
$ nano passenger.load
Anschließend wird der komplette Block IfModule... in der Datei passenger.conf eingetragen.
$ nano passenger.conf
Das Passenger-Modul muss jetzt nur noch aktiviert werden:
$ a2enmod passenger
Apache konfigurieren
Sofern Redmine nicht unter /var/www/html/redmine/ liegt, muss noch ein VirtualHost angelegt werden. Um dies zu tun, gibt es wieder mehrere Möglichkeiten: Entweder ändert man den Eintrag DocumentRoot in der Datei /etc/apache2/sites-available/000-default.conf ab, sodass dort auf /var/www/redmine/public verwiesen wird, erstellt in der Datei einen neuen VirtualHost-Block oder man erstellt eine neue Konfigurationsdatei. Um alles sauber zu halten, erstelle ich eine neue Konfigurationsdatei redmine.conf:
$ nano /etc/apache2/sites-available/redmine.conf
Dort füge ich folgende Konfiguration ein:
<VirtualHost *:80>
ServerName 192.168.0.69
DocumentRoot /var/www/redmine/public
<Directory /var/www/redmine/public>
AllowOverride all
Options -MultiViews
Require all granted
</Directory>
</VirtualHost>
Diese Konfiguration besagt, dass Apache Redmine anzeigt, wenn im Browser http://192.168.0.69 eingegeben wird. Soll Redmine unter mehreren Adressen, beispielsweise den DNS-Namen und die IP-Adresse aufrufbar sein, kann die Konfiguration wie folgt abgeändert werden:
<VirtualHost *:80>
ServerName redmine-tutorial
ServerAlias 192.168.0.69
DocumentRoot /var/www/redmine/public
<Directory /var/www/redmine/public>
AllowOverride all
Options -MultiViews
Require all granted
</Directory>
</VirtualHost>
Anschließend muss die Konfigurationsdatei noch im Apache eingebunden werden und dieser neugestartet werden:
$ a2ensite redmine.conf
$ service apache2 restart
Redmine aufrufen
Per Browser kann jetzt auf Redmine zugegriffen werden:

Die initialen Logindaten sind admin / admin.
Weiterführende Links
http://askubuntu.com/questions/329323/problem-with-restarting-apache2
Quellen
https://nidomiro.de/2015/03/installing-redmine-3-0-on-clean-ubuntu-14-04/
http://packages.ubuntu.com/trusty/apache2-threaded-dev
http://www.redmine.org/projects/redmine/wiki/redmineinstall
https://www.howtoforge.com/tutorial/how-to-install-redmine-3-with-nginx-on-ubuntu-15-10/
23 Antworten auf „Redmine unter Ubuntu 16.04 installieren“
Perfektes Tuutorial, hat das Problem mit Passenger gelöst, vielen Dank!
Hatte Probleme bei der Installation von Ruby. Der angegebene Befehl "\curl -sSL https://get.rvm.io | sudo bash -s stable –rails" scheint mittlerweile falsch zu sein. Hier wurde die Syntax laut Website (https://rvm.io/rvm/install) verändert.
Korrekt ist:
"\curl -sSL https://get.rvm.io | bash -s stable --rails"
Ich sehe gerade, dass die Formatierung einfach behindert ist. Der Befehl im Tutorial ist doch richtig, jediglich werden die 2 Bindestriche im Teil "–rails" als einer dargestellt und wohl auch so kopiert. Sorry für die Verwirrung...
Erneuter Nachtrag: Doppelte Bindestriche werden bei mir (Safari / macOS) ignoriert und als ein Bindestrich kopiert. Dieser ist sogar technisch falsch (Ist es ein langer Bindestrich?) - Jedenfalls musste ich immer alle doppelte Bindestriche nach dem Kopiervorgang löschen und neu eintippen
In der Tat. Vielen Dank für den Hinweis 🙂
Die Anleitung ist wirklich gut gelungen!
Bin bis zu dem Befehl gekommen
"bundle install --without development test rmagick"
Leider kommt dann die Meldung
"Could not locate Gemfile"
Hat sich erledigt.
War im falschen Verzeichnis!
Sorry
:-S
Hi,
um einfaches Copy'n'Paste zu erlauben könntest du die `apt install` (oder `apt-get install`) Befehle zusammenfassen (Bsp: unzip).
Damit die rvm installation so wie Du sie beschreibst auch auf einer Minimal-Installation funktioniert, ist zusätzlich das Paket curl zu installieren. Und der Nutzer muss natürlich sudo-Rechte haben.
Danke fürs Tutorial
Imho gehört dann in den initialen `apt install` Befehl auch gleich das libmysqlclient-dev Paket mit hinein.
Ein Problem ist auch, dass rvm ruby 2.4 ausliefern wird, was mit den redmine/active_support Versionen zu endless loops führt - ein workaround ist, via `rvm install 2.3` eine ältere Ruby Version zu installieren, diese mit `rvm use 2.3 --default` als Standard zu verwenden und die bundle-Schritte wie gehabt durchzuführen
Vielen Dank für den Hinweis 🙂
Hallo,
ich bekomme oben genannte Ruby-Installation unter Ubuntu 16.04 nicht hin.
Es erscheint ähnlich wie oben genannt, die Fehlermeldung:
...
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /var/lib/gems/2.3.0/gems/mysql2-0.4.8/ext/mysql2
/usr/bin/ruby2.3 -r ./siteconf20170809-3197-1qr20ou.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h
...
An error occurred while installing mysql2 (0.4.8), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.4.8'` succeeds before bundling.
Wie oben vorgeschlagen, führe ich dann folgende Befehle aus:
$ sudo apt-get install libmysqlclient-dev
$ bundle install --without development test rmagick
... worauf sich die selbe Fehlermeldung wiederholt.
Bis zu diesem Punkt kam ich fehlerfrei durch die Installation.
Kann da jemand helfen?
Leider scheint sich etwas (temporär?) bei der Ruby-Installation geändert zu haben. Wenn ich mehr über diesen Fehler herausfinden konnte, aktualisiere ich die Anleitung entsprechend.
Mein Redmine läuft! 🙂
Ich wollte die Applikation in der sandbox haben, also alles auf einem nicht-sudo-berechtigtem user installiert, entsprechend https://rvm.io/rvm/install, single-user-install.
Problem: RVM hat im Laufe 2017 autolibs includiert, wofür sudo / rvmsudo benötigt würde.
Lösung:
rvm + ruby + rails + passenger ohne sudo und auch von einem user ohne sudo-Berechtigung aus installiert. Der Rest (sql, apache) dann von einem anderen user aus, mit sudo, wie oben.
https://stackoverflow.com/questions/16563115/how-to-install-rvm-system-requirements-without-giving-sudo-access-for-rvm-user
rvm autolibs disable
rvm install ruby
Eine Kleinigkeit ist noch, dass die SQL - Befehle nun in 3 Schritten anstatt wie oben in 2 ablaufen, sprich:
1. CREATE DATABASE...
2. CREATE USER...
3. GRANT PRIVILEGES...
(scheint sich auch mit irgendeiner Version geändert zu haben)
Vielen Dank, Herr Nockmann, für diese Anleitung, es war die hilfreichste!
Hallo,
super Tutorial. Danke.
Vielleicht kann mir einer bei folgendem Problem auch weiterhelfen.
Auf Redmine kann ja nun via http://myDomain.de zugegriffen werden. Ich möchte aber auf Redmine via http://myDomain.de/redmine zugreifen und auf eine weitere Site mit http://myDomain.de/xyz
Wie muss ich den vHost, Passenger, usw. konfigurieren?
Danke
Gruß
Michael
Ich hab es nach dieser Anleitung lösen können.
https://www.phusionpassenger.com/library/deploy/apache/deploy/ruby/
Danke, das hat mein problem auch gelöst!
Leider wird bei mir nur die Standard-Seite vom Ubuntu-Apache angezeigt, obwohl ich alles so wie oben beschrieben konfiguriert habe. Sobald ich in der Default Konfigurationsdatei 000-default.conf den DocumentRoot auf /var/www/redmine änder, wird mit die Redmine Site angezeigt. Hat einer eine Idee, warum die redmine.conf nicht geladen wird?
Gruß Michael
Hallo Rafael,
zuerst einmal vielen Dank für die ausführliche Anleitung redmine zu installieren. Leider scheitere ich an
'bundle install --without development test rmagick'. Hier bekomme ich folgende Fehlermeldung
Bundler could not find compatible versions for gem "bundler":
In Gemfile:
bundler (>= 1.5.0, = 1.5.0, < 2.0.0)' in any of the relevant sources:
the local ruby installation
ich habe mehrfach versucht eine andere Bundler Version zu installieren. Auch nach folgender Eingabe 'gem uninstall bundler' bzw 'gem uninstall bundler -v 2.0.0' bekomme ich bei der Versionsabfrage immer
'Bundler version 2.0.0'
Habhast Du eine Idee, wie ich da weiterkommen kann?
Hallo Georg,
leider ist das wirklich immer ein Gefummel und oft mit viel Recherche verbunden. Spontan habe ich auch keine Idee. Ich werde die Anleitung aber voraussichtlich mit der nächsten Ubuntu LTS-Version komplett überarbeiten.
Solltest du für das Problem eine Lösung finden, darfst du sie gerne in den Kommentaren kundtun.
LG Rafael
Hallo Rafael,
ich konnte den falschen Bundler wie folgt wieder entfernen
- rvm implode --force
- \curl -sSL https://get.rvm.io | bash -s 1.27.0
- rvm reload
- rvm install 2.2.3
- gem uninstall -i /home/travis/.rvm/gems/ruby-2.2.3 bundler -x
danach habe ich den Bundler mit Version Nr. wieder installiert
gem install bundler -v 1.17.3
Ich habe danach noch einmal alles neu installiert mit eben dieser Änderung. Dabei gab es noch ein kleines Problem mit der Konfiguration. Du Schreibst
Zitat:
Die zu ergänzende Konfiguration besteht in meinem Beispiel aus folgenden vier Zeilen:
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.3.0/gems/passenger-5.0.28/buildout/apache2/mod_passenger.so
PassengerRoot
PassengerRoot.... etc.
Zitat Ende
Auch hier muss man aufpassen, welcher Version des ruby bzw. passenger installiert ist und die Zeile entsprechend anpassen. Bei mir ist es rupy-2.63 und passanger-6.0.2
Jetzt bin ich soweit dass ich nur noch rausbekommen muss, warum ich nicht auf die redmine Seite komme, sondern mir immer nur die Apache2 site angezeigt wird, obwohl ich die Änderung in der000-default.conf gemacht habe 🙁 Vielleicht hast Du da ja einen Tipp für mich.
Wenn ich das noch hinbekommen habe, werde ich das Ganze mal in ein Script verpacken und noch einmal installieren. Wenn es funtioniert stelle ich es Dir gerne zur Verfügung
LG Georg
noch ein Hinweis, wenn ich im Firefox nach der IP Adresse /redmine schreibe bekomme ich im Browser das redmine Verzeichnis angezeigt, aber nicht das GUI. Da ist doch in irgend einer conf-Datei was falsch... nur was??
LG Georg
Hallo Georg,
dann erkennt der Apache Redmine nicht als Ruby-Web. Hast du die Berechtigungen korrekt gesetzt und in der VirtualHost-Konfig (bei dir 000-default.conf) auch die weiteren Einträge wie im Artikel abgebildet mit aufgenommen?
LG Rafael