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)
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
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 🙂
Ok danke für dein feedback. Wenn ich schlauer bin lasse ich es wissen.
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!
Das hilft: http://www.redmine.org/issues/19185
You have a type in „dispact.fcgi“
Thanks for your advice. I’ve changed it.