Kategorien
Tutorials

Redmine unter Ubuntu 16.04 installieren

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.

Getestet wurde dieser Artikel unter Ubuntu 14.04 und Ubuntu 16.04.
Mittlerweile ist eine aktualisierte Anleitung zur Installation von Redmine erschienen: Redmine unter Ubuntu 20.04 installieren

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.

Redmine

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.

Ubuntu OpenSSH Server installieren

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.

PuTTY

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
ubuntu-16-04-redmine-installieren-004

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.

Wer Redmine später in ein Unterverzeichnis ablegen oder nicht mit VirtualHosts arbeiten möchte, kann Redmine auch unter /var/www/html/redmine/ ablegen. Redmine lässt sich dann im Browser per http://redmineIP/redmine aufrufen.

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

Die URL zur aktuellsten Redmineversion kann herausgefunden werden, wenn die Downloadseite von Redmine aufgerufen wird und die Link-Adresse des entsprechenden ZIP-Paketes kopiert wird.

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:

ubuntu-16-04-redmine-installieren-005

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:

Keys für RVM hinzufügen

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:

Ubuntu Abhägigkeiten für Redmine installieren

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

Unter Ubuntu 14.04 ist nicht das Paket apache2-dev, sondern apache2-threaded-dev zu installieren, da sonst eine Fehlermeldung beim nächsten Befehl passenger-install-apache2-module erscheint.

Während des letzten Befehls sollte folgende Meldung erscheinen:

Ubuntu Passenger-Modul für Apache installieren

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:

Redmine unter Ubuntu installieren

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/

Seit mehreren Jahren begeistere ich mich privat und beruflich für die IT. Das habe ich dann auch zum Anlass genommen, diesen Blog ins Leben zu rufen, um dort praxisnahe Tutorials über verschiedene IT-Themen zu schreiben und meine selbst geschriebene Software zu veröffentlichen.

23 Antworten auf „Redmine unter Ubuntu 16.04 installieren“

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

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"

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

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

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?

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!

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert