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 bei der Erstinstallation helfen. Die offizielle Anleitung ist hier zu finden.

Hinweis:
Getestet wurde dieser Artikel unter Ubuntu 14.04 und Ubuntu 16.04.

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.

ubuntu-16-04-redmine-installieren-001

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

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

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.

Hinweis:
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

Hinweis:
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:

ubuntu-16-04-redmine-installieren-006

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

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

Hinweis:
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-16-04-redmine-installieren-008

Die zu ergänzende Konfiguration besteht in meinem Beispiel aus folgenden vier Zeilen:

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:

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:

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:

ubuntu-16-04-redmine-installieren-009

Die initialen Logindaten sind admin / admin.

Beitrag kommentieren

Bitte verfasse einen Kommentar.

Dein Kommentar wird vor der Freischaltung von einem Admin moderiert.




  • Lukas Gaam

    14.01.2017, 16:55 Uhr

    Perfektes Tuutorial, hat das Problem mit Passenger gelöst, vielen Dank!

  • Benjamin Wiens

    29.01.2017, 19:45 Uhr

    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"

    • Benjamin Wiens

      29.01.2017, 19:53 Uhr

      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…

  • Benjamin Wiens

    29.01.2017, 19:58 Uhr

    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

  • Stefan Retzlaff

    30.01.2017, 14:30 Uhr

    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"

    • Stefan Retzlaff

      30.01.2017, 14:34 Uhr

      Hat sich erledigt.
      War im falschen Verzeichnis!

      Sorry
      :-S

  • Felix

    01.03.2017, 8:12 Uhr

    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

    • Felix

      01.03.2017, 8:50 Uhr

      Imho gehört dann in den initialen apt install Befehl auch gleich das libmysqlclient-dev Paket mit hinein.

  • Felix

    02.03.2017, 14:46 Uhr

    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

  • Christian

    09.08.2017, 19:12 Uhr

    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?

    • Rafael Nockmann

      10.08.2017, 14:57 Uhr

      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.

      • Christian

        28.08.2017, 11:44 Uhr

        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!