DecaTec

Programmieren, Fotografie, Home-Server und einiges mehr

ownCloud Updates richtig durchführen

ownCloud Logo

Ich setze ownCloud nun schon seit über einem Jahr ein und in dieser Zeit wurde das Projekt kontinuierlich weiterentwickelt. In regelmäßigen Abständen (ca. alle paar Wochen) erscheinen Updates für die Selfmade-Cloud. Die ownCloud-Dokumentation bietet dabei eine recht ausführliche Beschreibung, wie das Update durchgeführt werden kann.

Dennoch zeigt meine Erfahrung, dass bei einem Update einiges schiefgehen kann. Schon öfters schlug ein Update fehl oder es funktionierte nachher weit weniger als noch vor der Aktualisierung. Im folgenden Beitrag möchte ich daher beschreiben, wie ein ownCloud-Update durchgeführt werden kann und was dabei alles zu beachten ist, so dass es nicht zu Problemen kommt.

Als Grundlage dient dabei der Artikel ownCloud auf Ubuntu Server mit nginx, MariaDB und PHP: Die hier gezeigte ownCloud-Konfiguration zielt v.a. auf Sicherheit ab, was auch beim Durchführen eines Updates eine Rolle spielt. Auch wenn der technische Unterbau in einigen Fällen anders aussehen dürfte (Betriebssystem/Distribution, Webserver, Datenbank), das gezeigte Vorgehen ist nahezu identisch.

Der Artikel entstand, als ownCloud in der Version 8.1.2 aktuell war. Es kann daher durchaus der Fall sein, dass sich mit zukünftigen ownCloud-Versionen noch etwas am Update-Prozess verändert.

Ab wann ist ein Update verfügbar?

Mit ownCloud 8.1 wurden die sog. Release-Channels eingeführt: In der Administrations-Oberfläche kann dabei gewählt werden, welcher Entwicklungsstand von ownCloud zum Einsatz kommen soll. Dabei gibt es folgende Auswahlmöglichkeiten:

  • Produktiv: aktuellste Version, die von einer Vielzahl User komplett getestet wurde und nahezu fehlerfrei laufen sollte.
  • Stabil: der aktuelle Stable-Release. Hierbei handelt es sich um Versionen, die vormals als Beta-Versionen zur Verfügung standen und daher bereits ausreichend getestet wurden. Es können aber immer noch kleinere Fehler enthalten sein. Dieser Channel wird im Allgemeinen für den „Heimgebrauch“ empfohlen.
  • Beta: in diesem Channel werden Beta-Versionen und Release-Candidates veröffentlicht. Diese Versionen sind aktuell zum Test freigegeben und enthalten u.U. auch noch nicht bekannte Fehler.
  • Täglich: sog. Daily-Builds. Diese enthalten immer den (tagesaktuellen) Versionsstand. Diese Versionen sind u.U. ungetestet und hautsächlich für Tester gedacht, um Fehlersituationen nachzustellen.

Wann ein spezielles Update nun verfügbar ist, hängt maßgeblich vom eingestellten Release-Channel ab. Im Produktiv-Channel werden die Updates erst nach einer längeren Zeit freigegeben, im Daily-Channel täglich. Die anderen Channels liegen zeitlich irgendwo dazwischen.

Wenn nun ein Update zur Verfügung steht, wird beim Zugriff auf die ownCloud ein deutlicher Hinweis ausgegeben und in der Admin-Oberfläche besteht die Möglichkeit, dieses Update durchzuführen.

Update Hinweis von ownCloud

Update Hinweis von ownCloud

Backup anfertigen

Bevor man nun gleich loslegt und das Update anwirft, sollte man zuvor noch ein Backup der Cloud anfertigen. Beim automatischen Update über die ownCloud-Oberfläche wird dieses Backup automatisch angelegt. Möchte man ein manuelles Update vornehmen, muss man sich auch selbst um das Backup kümmern.

Ein komplettes ownCloud-Backup besteht immer aus drei Teilen:

  • Der config-Ordner
  • Der data-Ordner
  • Die ownCloud-Datenbank

config-Ordner/ownCloud-Verzeichnis

Zunächst wird der config-Ordner gesichert. In diesem Fall kann man gleich das komplette ownCloud-Verzeichnis sichern:

data-Ordner

Aus Sicherheitsgründen sollte sich der data-Ordner nicht im ownCloud-Verzeichnis selbst befinden. Daher muss dieser auf ähnliche Weise gesichert werden:

Falls sich der data-Ordner entgegen der Empfehlung im ownCloud-Verzeichnis befindet, wurde dieser beim ersten Schritt des Backups bereits mitgesichert.

Datenbank

Das Vorgehen hängt hier von der verwendeten Datenbank ab (MySQL/MariaDB, SQLite, PostgreSQL). Für MySQL/MariaDB kann der Befehl mysqldump verwendet werden:

Etwas komfortabler geht dies auch mit phpMyAdmin (wenn auf dem gleichen System installiert ist).

Update durchführen

Es gibt zwei unterschiedliche Möglichkeiten, das Update durchzuführen. Die einfachere ist dabei die Verwendung der Updater-App von ownCloud. Dies funktioniert allerdings erst, wenn ownCloud festgestellt hat, dass eine neue Version verfügbar ist. Gerade bei Major Updates (z.B. 8.1 > 8.2) dauert es mitunter recht lange, bis die neue Version freigegeben wird. Wem das zu lange dauert, der kann das Update auch selbst herunterladen und manuell installieren.

Update mit der Updater-App installieren

Hier zunächst das Vorgehen, wenn ownCloud anzeigt, dass ein neues Update verfügbar ist:

  1. Apps kontrollieren/deaktivieren: Man sollte zunächst einmal einen Blick auf die installierten und aktivierten Apps werfen. Wenn auch bei einzelnen Apps das Vorhandensein einer neuen Version angezeigt wird, sollte man diese zuvor aktualisieren. Dies ist mit einem Klick auf die entsprechende Schaltfläche schnell erledigt. Werden diese App-Updates nicht ausgeführt, kann es passieren, dass der Update-Vorgang von ownCloud fehlschlägt.
    Ein App-Update ist verfügbar

    Ein App-Update ist verfügbar

    Ebenso wird empfohlen, alle Apps von Drittanbietern (temporär) zu deaktivieren. Dies passiert prinzipiell auch während des Updates automatisch, aber kann auch leicht in der App-Übersicht ausgeführt werden.

  2. Schreibrechte anpassen: Mit dem nächsten Schritt werden die Schreibrechte für den Webserver-User (www-data) gesetzt. Diese wurden aus Sicherheitsgründen entzogen, wenn wie im Artikel zur ownCloud-Installation vorgegangen wurde. Hier muss folgender Befehl ausgeführt werden:

  3. Update herunterladen: Nun kann in der Admin-Oberfläche das Update heruntergeladen werden. Dies passiert durch die entsprechende Schaltfläche.
    Update über die Admin-Oberfläche ausführen

    Update über die Admin-Oberfläche ausführen

    Hier werden u.a. die korrekten Schreibrechte automatisch geprüft und das Update wird heruntergeladen. Falls der vorherige Schritt vergessen wurde, erscheinen Fehlermeldungen, dass die Dateien nicht geschrieben werden konnten.

    Fehlende Schreibechte beim Ausführen des Updates

    Fehlende Schreibechte beim Ausführen des Updates

  4. Update durchführen: Nach dem Herunterladen des Updates erscheint die Schaltfläche Aktualisierung starten, mit der das Update durchgeführt werden kann.
    Die Aktualisierung wird nicht über die Weboberfläche durchgeführt

    Die Aktualisierung wird nicht über die Weboberfläche durchgeführt

    Meiner Erfahrung nach funktioniert das allerdings nicht immer: Häufig hat man mit Timeouts oder anderen Problemen zu kämpfen. Daher empfehle ich, die Aktualisierung nicht über die Schaltfläche anzustoßen, sondern dafür den OCC-Befehl über die Konsole zu verwenden:

    Das Update sollte nun ohne Probleme ausgeführt werden.

  5. Dateirechte vergeben: Abschließend sollten wieder aus Sicherheitsgründen die eingeschränkten Dateirechte vergeben werden:

    Man kann diese Befehle auch in ein Skript packen, dann müssen diese nicht bei jedem erfolgten Update erneut eingetippt werden. In diesem Fall reicht dann das Ausführen des entsprecheden Skripts.

  6. Nacharbeiten: Nun kann man sich wieder über die Weboberfläche an die ownCloud anmelden. Zunächst sollte man wieder alle benötigten Apps aktivieren (Kalender, Kontakte, etc.). Anschließend sollte man auf jeden Fall einen Blick in die Admin-Oberfläche werfen, ob Warnungen oder Hinweise angezeigt werden, die vor dem Update noch nicht da waren. Falls man ein eigenes Theme für ownCloud verwendet, muss dies in der config.php wieder aktiviert werden, da auch Themes beim Update automatisch deaktiviert wurden.

Manuelles Update

Wenn das Update nicht über die Updater-App verfügbar ist (häufig bei Major-Updates der Fall), muss das Update komplett manuell durchgeführt werden. Diese Methode ist dabei etwas aufwendiger als das Update mit Hilfe der Updater-App.
Wichtig hierbei: Bei einem Major-Update sollte die alte ownCloud-Installation vorher komplett gelöscht werden. Bei einem Minor-Update (z.B. 8.1.3 > 8.1.4) ist dieser Schritt nicht unbedingt notwendig, hier können die neuen Dateien einfach über die alten kopiert werden. Trotzdem beschreibe ich hier den Update-Vorgang inkl. dem vorherigen Löschen der alten Version. Auf diese Weise verhindert man, dass evtl. vorhandene Altlasten von der alten Installation übernommen werden.

  1. ownCloud in den Wartungsmodus versetzen: Als erstes sollte die ownCloud in den sog. Maintenance-Modus versetzt werden. Dies sorgt dafür, dass kein aktiver Zugriff mehr auf die Cloud stattfinden kann, während das Update läuft. Dazu verwenden wir den OCC-Befehl:
  2. Webserver stoppen: Vor dem Kopieren der neuen Dateien sollte der Webserver gestoppt werden.
    Wenn Apache als Webserver verwendet wird, lautet der Befehl:
  3. Alte Installation umbenennen: Zunächst wird nun die alte Installation umbenannt, damit diese später gelöscht werden kann:
  4. Neue Version herunterladen und entpacken: Als nächstes wird die neue Version heruntergeladen und entpackt. Durch das Umbenennen der alten Installation werden dadurch keine Dateien überschrieben.
    Die korrekte URL hängt von der ownCloud-Version ab und kann über die ownCloud-Homepage ermittelt werden.

    Download-Link für ownCloud

    Download-Link für ownCloud

  5. Zurückspielen der Konfiguration/data-Verzeichnis: Nun kann die config.php aus der alten Installation übernommen werden:
    Falls sich das data-Verzeichnis innerhalb des ownCloud-Ordners befunden hat, ist dieses auch noch in die neue Installation zu übertragen. Wenn (wie empfohlen) das data-Verzeichnis außerhalb der eigentlichen ownCloud-Installation liegt, ist dieser Schritt nicht auszuführen:
  6. Webserver starten: Der Webserver kann nun wieder gestartet werden:
    Bzw. bei Apache:
  7. Rechte anpassen: Vor dem Update sollten noch die Verzeichnisrechte angepasst werden, ansonsten kann es beim Update-Prozess zu Problemen kommen:
  8. Update ausführen: Das eigentliche Update wird nun über den OCC-Befehl im Kontext des Webserver-Benutzers gestartet:
  9. Wartungsmodus deaktivieren: Nach dem Update verbleibt die ownCloud im Wartungsmodus, so dass dieser wieder deaktiviert werden muss:
  10. Einloggen und Apps wieder aktivieren: Da ownCloud nun komplett neu installiert wurde, sind die Apps u.U. nicht mehr vorhanden oder aktiviert. Diese kann man wieder über die Apps-Übersicht installieren/aktivieren (z.B. Kontakte, Kalender, etc.). Die zu den Apps gehörigen Daten in der Datenbank wurden nicht gelöscht und sollten nach wie vor verfügbar sein.
  11. Dateirechte vergeben: Abschließend sollten wieder aus Sicherheitsgründen die eingeschränkten Dateirechte vergeben werden:
    Man kann diese Befehle auch in ein Skript packen, dann müssen diese nicht bei jedem erfolgten Update erneut eingetippt werden. In diesem Fall reicht dann das Ausführen des entsprecheden Skripts.
  12. Admin-Oberfläche kontrollieren: Am Schluss sollte noch einmal die Admin-Oberfläche der ownCloud kontrolliert werden, ob mit der neuen Version Warnungen oder Fehler angezeigt werden.
  13. Alte Installation entfernen: Nachdem kontrolliert wurde, ob die neue ownCloud-Installation wie erwartet funktioniert, kann die alte Installation entfernt werden:

Die neuste Version muss nicht immer die beste sein

Nach diesen Schritten sollte die ownCloud in der neuen Version laufen. Auch wenn der Update-Prozess problemlos verlief, kann es dennoch passieren, dass Fehler in der neuen Version dazu führen, dass einige Features nicht mehr wie erwartet funktionieren.

Daher noch ein abschließender Tipp: Man sollte (gerade bei Major Updates) nicht sofort die neue Version installieren, sondern erst einmal ein paar Tage abwarten. Falls es mit einer neuen Version zu Problemen kommt, wird dies meist in den ersten Tagen nach der Veröffentlichung deutlich. Hier hilft es auf jeden Fall, einen Blick in das ownCloud-Forum zu werfen. Hier findet meist eine rege Diskussion über gerade erschienene Updates statt und man erhält oftmals zeitnah Hilfe bei Problemen.

Weiterführende Artikel

Links

, , , ,

Kommentare: 10

  • Bobby sagt:

    Danke für das Zusammenführen aller notwendigen Informationen zu diesem Thema!

  • Markus Franke sagt:

    Danke für die tolle Anleitung.
    In meiner OC 9.1.1 wurde mir als verfügbares Update die Version 9.1.3 angezeigt.
    Leider funktionierte der Updater nicht, daher bin ich hier nach der Anleitung für manuelles Update vorgegangen und habe zunächst auf die Version 9.1.2 aktualisiert… Das hat so weit auch alles geklappt.
    Mich wundert nur, dass mir nun kein weiteres Update (9.1.3) mehr angezeigt wird. Der Updatekanal war und ist auf „stable“ eingestellt…

  • Niklas sagt:

    Wie kann ich denn ein update von 8.2 auf 9.0 durchführen?

    • Niklas sagt:

      Hat sich erledigt. Ich habe ausversehen eine ältere config-Datei kopiert. Mit der aktuellen hat alles reibunglos geklappt. Super Anleitung!!!

      • Jan sagt:

        Hi Niklas,

        auch wenn du das Problem bereits selbst lösen konntest: Ein manuelles Update über den OCC Befehl geht immer (und ist auch die sicherste Methode).

        Gruß,
        Jan

  • Volker sagt:

    Hallo Jan,

    ich will mein erstes Update der owncloud durchführen (auf 9.1.5). Du hast eine tolle Beschreibung erstellt. Vielen Dank.

    Den 1. chown Befehl müsstest du mal ändern . Es wurde in der Anleitung ein falscher Bindestrich genutzt.

    In Anleitung: chown –R www-data:www-data /var/www/owncloud
    Besser wäre: chown -R www-data:www-data /var/www/owncloud

    Ich habe ein Problem mit dem download der angebotenen Version.
    Wenn ich auf der Web-Admin-Oberfläche den Updater aufrufen will kommt folgende Fehlermeldung:
    cURL error 51: SSL: certificate subject name ‚xxxxx.goip.de‘ does not match target host name ‚192.168.2.199‘

    Bevor ich als alternative das umfangreichere manuelles Update starte, wollte ich fragen, ob es eine einfache Lösung dafür gibt.
    Ich würde schon gern den einfacheren Weg gehen.
    Unter https://xxxx.goip.de/owncloud/index.php kann ich die Web-Admin-Oberfläche nicht aufrufen.

    Gruß Volker

    • Jan sagt:

      Hi Volker,

      danke für den Hinweis mit dem falschen Bindestrich, habe den Artikel aktualisiert.

      Zu deinem Problem: Sieht so aus, als wenn er beim Update irgendwie nicht deine Domain nimmt, sondern deine lokale IP. Hier kommt dann die Fehlermeldung, weil das Zertifikat ja nicht auf die IP ausgestellt wurde, sondern auf die Domain.
      Das problem konnte ich selbst noch nicht beobachten, daher noch ein paar Fragen:

      • Von welcher Version möchtest du updaten?
      • Auf welche Version?
      • Wie sieht die genaue URL aus, wenn du den Updater aufrufen willst?

      Aus meiner Erfahrung kann ich nur sagen, dass ich schon seit Ewigkeiten kein Update mehr über die Oberfläche durchgeführt habe. Das hat bei ownCloud immer zu Problemen geführt. Daher bin ich immer auf Nummer sicher gegangen und habe die Updates immer manuell installiert. Das funktionierte immer.

      Gruß,
      Jan

      • Volker sagt:

        Hallo Jan,
        ich will updaten von Version 9.1.4 auf die 9.1.5.
        (Obwohl ich habe jetzt gesehen, das es eine stabile owncloud Version 10.0.0 existiert)

        Der Aufruf erfolgt über:
        https://192.168.2.199/owncloud/settings/admin#updater
        hier kommt die Fehlermeldung:
        cURL error 51: SSL: certificate subject name ‚xxxx.goip.de‘ does not match target host name ‚192.168.2.199‘

        Ich habe jetzt aber die manuelle Methode genutzt. Funktionierte einwandfrei.
        (Bis auf die ca. 6 falschen Bindestriche
        zB.: sudo -u www-data php occ maintenance:mode –-on
        (Bindestrich vor dem on)
        Da ich meist mit Copy und Past arbeite, bekomme ich immer eine Schreck. 😉

        Bei mir läuft es jetzt aber mit der Version 9.1.5. Danke.
        Gruß Volker

Schreibe einen Kommentar

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