Redmine-Upgrade auf einem Uberspace

Die Upgrade-Routine einer Redmine-Installation auf einem Uberspace weist einige kleinere Abweichungen zur offiziellen Anleitung auf der Redmine-Homepage auf. Um diese kleinen Fallstricke geht es in dieser kurzen Anleitung.

Bei der Anleitung gehe ich von einer Redmine-Installation aus, die mit einer MySQL-Datenbank läuft, als TAR heruntergeladen und entpackt wurde sowie unter einer Subdomain läuft. Außerdem liegt die zu aktualisierende Redmine-Installation in einem Unterordner von /var/www/virtual/$USER .

Folgende Schritte sind für die Aktualisierung notwendig:

 

1. Voraussetzungen prüfen

Für die neue Version sollten die Installationsvoraussetzungen geprüft werden. Ist z.B. eine neuere Ruby-Version notwendig (oder möglich), dann sollte vor dem Redmine-Upgrade die neue Ruby-Version aktiviert werden!

 

2. Backup erstellen

Sicher ist sicher. Eigentlich sollte nichts passieren, aber sicherheitshalber ist das Erstellen einer Sicherung der Datenbank sowie aller hochgeladenen Dateien im Verzeichnis files/ anzuraten.

 

3. Aktuelle Version herunterladen und entpacken

Die aktuelle Version als tar.gz herunterladen und entpacken.

cd /var/www/virtual/$USER
wget http://www.redmine.org/releases/redmine-2.6.1.tar.gz
tar -xzf redmine-2.6.1.tar.gz
rm redmine-2.6.1.tar.gz

Damit wird in das in der 1. Zeile genannte Verzeichnis gewechselt und die neue Version heruntergeladen, in einen Ordner entpackt und die tar.gz-Datei wieder gelöscht, da sie nicht mehr gebraucht wird.

 

4. Wichtige Dateien und Ordner kopieren

Aus der alten Installation die Dateien config/database.yml und config/configuration.yml in das config-Verzeichnis der neuen Installation sowie die Datei Gemfile.local in das Wurzelverzeichnis der neuen Version kopieren.

cp redmine-2.3.1/config/database.yml redmine-2.6.1/config/
cp redmine-2.3.1/config/configuration.yml redmine-2.6.1/config/
cp redmine-2.3.1/Gemfile.local redmine-2.6.1/

 

Das files-Verzeichnis in die neue Installation kopieren.

cp -R redmine-2.3.1/files redmine-2.6.1/

Falls notwendig, auch Plugins, die bei Redmine nicht mitgeliefert werden, aus dem plugins-Ordner in den entsprechenden Ordner der neuen Redmine-Installation kopieren.

 

5. Abhängigkeiten installieren und Sicherheitsschlüssel generieren

Nun in das neue Redmine-Verzeichnis wechseln und die benötigten Gems installieren.

cd redmine-2.6.1
bundle install --path ~/.gem --without development test postgresql sqlite

 

Danach im neuen Redmine-Verzeichnis bleiben und den Sicherheitsschlüssel zur Validierung der Redmine-Sitzung erzeugen.

bundle exec rake generate_secret_token

 

6. Datenbank aktualiseren

Immer noch im Verzeichnis der neuen Redmine-Version bleiben und folgenden Befehl nutzen, um die Datenbank zu aktualisieren:

bundle exec rake db:migrate RAILS_ENV=production

 

Sind Plugins installiert, auch deren Datenbankintegration aktualisieren.

bundle exec rake redmine:plugins:migrate RAILS_ENV=production

 

7. Aufräumen

Nur noch schnell aufräumen (Cache und aktuelle Sitzungen leeren):

bundle exec rake tmp:cache:clear tmp:sessions:clear

 

8. Anbindung an FastCGI und Subdomain

Damit das Ganze dann aber auch auf einem Uberspace läuft (tut es nämlich bis jetzt noch nicht), müssen noch ein paar wenige Dateien kopiert und erneuert werden.
Zunächst sollten aus der alten Installation die Dateien dispatch.fcgi, wrapper.fcgi & .htaccess im public-Verzeichnis in das entsprechende Verzeichnis der neuen Installation kopiert werden.

cp redmine-2.3.1/public/dispatch.fcgi redmine-2.6.1/public/
cp redmine-2.3.1/public/wrapper.fcgi redmine-2.6.1/public/
cp redmine-2.3.1/public/.htaccess redmine-2.6.1/public/

 

Die alte Installation ist nun allerdings immer noch durch einen SymLink über die eigentliche Subdomain aufrufbar (allerdings vermutlich nicht mehr nutzbar, da es sicherlich Änderungen an der Datenbank gab). Um dies zu ändern, alten SymLink löschen und neuen SymLink auf den public-Ordner der neuen Version erstellen (Bitte darauf achten, dass ihr wieder im Verzeichnis /var/www/virtual/$USER seid!!)

rm SUBDOMAIN.DOMAIN.TLD
ln -s redmine-2.6.1/public SUBDOMAIN.DOMAIN.TLD

 

9. Fertig

Das sollte es eigentlich gewesen sein!

 

Bildquelle:

© 2009 Martin Herr (Creative Commons Attribution-Share Alike 2.5 Generic license)

Redmine-Upgrade auf einem Uberspace

7 Gedanken zu „Redmine-Upgrade auf einem Uberspace

  1. Tox schreibt:

    Hallo Sören,
    danke für diesen interessanten Beitrag. Ist es auch möglich redmine bei uberspace weder unter einer subsubdomain noch in einem Ordner (www.domain.de/redmine) sondern nur unter der domain laufen zu lassen? In meinem Fall ist keine externe domain vorhanden, nur die von uberspace (name.server.uberspace.de). Aktuell läuft redmine unter einer subsubdomain (redmine.name.server.uberspace.de)
    Viele Grüße
    Tox

    1. Ohne das jetzt im Detail geprüft zu haben, würde ich sagen, dass das möglich sein sollte.

      Deine derzeitige Subdomain läuft ja auch nur über einen Symlink zu dem redmine-Verzeichnis (vermute ich mal, wenn du zur Installation die Anleitung im Uberspace-Wiki genutzt hattest). Theoretisch sollte ein Symlink vom html-Verzeichnis auf das public-Verzeichnis des Redmine-Ordners für dein Ansinnen sorgen. Ich weiß nur nicht, ob dass von deinen Rechten her zulässig ist.

      Bevor du dir irgendwas zerschießt, frag lieber beim Uberspace-Team nach, die können dir mit Sicherheit solche fragen beantworten und erklären auch gleich mit, wie du es anstellen kannst. Und superfreundlich sind sie noch obendrauf.

      Lass mich mal wissen, ob und wenn ja, wie es geht. Wäre dann auch für mich mal irgendwann eine Option 🙂

  2. Tox schreibt:

    Es war nur der Symlink den ich jetzt gelöscht habe und den redmine public ordner nun nur auf meine Standart uberspace domain verwiesen hatte. Ich hatte noch den Versuch gestartet auf redmine 3.0.0 zu upgraden, was leider fehlgeschlagen ist: Application error – Rails application failed to start properly. Mit 2.6.2. gings nach deiner Anleitung problemlos. Danke!

Schreibe einen Kommentar zu Chris Antworten abbrechen

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