Nextcloud: Migration von ownCloud

Migration ownCloud zu NextCloud

Im letzten Artikel (Dunkle Wolken in der Cloud: ownCloud vs NextCloud aus Benutzersicht) habe ich über die Hintergründe zur Abspaltung von Nextcloud aus dem ownCloud-Projekt berichtet. Nach wie vor möchte ich keine Empfehlung für die eine oder andere Cloud-Lösung aussprechen – dies sollte jeder für sich selbst entscheiden.

Nextcloud ist allerdings ein Drop-In-Replacement für ownCloud, d.h. momentan sind ownCloud und Nextcloud zueinander kompatibel und somit austauschbar. Dies macht eine Migration von ownCloud zu Nextcloud sehr einfach.

Der folgende Artikel zeigt daher alle notwendigen Schritte zu einer erfolgreichen Migration. Ein Umstieg von ownCloud 9.0.1 auf Nextcloud 9.0.53 hat damit bei mir problemlos geklappt.

Voraussetzungen

Folgende Voraussetzungen müssen erfüllt sein, damit die Migration problemlos klappt:

  • ownCloud 8.2.3 (oder neuer) ist installiert und korrekt konfiguriert.
  • Sämtliche Voraussetzungen zum Betrieb von Nextcloud werden erfüllt.
  • Alle verwendeten Apps sind mit ownCloud 9 (und somit auch Nextcloud) kompatibel. Hierzu sollte bei den entsprechenden Apps im ownCloud App Store ein Hinweis zu finden sein.
  • Man benötigt Zugriff auf die Kommandozeile des ownCloud-Servers (z.B. per PuTTY), da die Migration mit Hilfe des OCC-Befehls angestoßen wird. Dies kann in Shared-Hosting-Umgebungen ein Problem sein.

Im weiteren Verlauf gehe ich davon aus, dass ownCloud nach der Anleitung ownCloud 9 auf Ubuntu Server 16.04 LTS mit nginx, MariaDB, PHP 7 und Let’s Encrypt installiert und konfiguriert wurde.

Vorbereitungen: Backup der ownCloud anlegen

Damit die ownCloud-Installation im Bedarfsfall wiederhergestellt werden kann, sollte man vorher auf jedem Fall ein Backup anfertigen. Falls bei der Migration etwas schief läuft, oder man zu einem späteren Zeitpunkt wieder zu ownCloud zurück wechseln möchte, kann man sich mit dem Backup viel Zeit und Ärger sparen.

Wie ein komplettes Backup der ownCloud-Instanz durchgeführt werden kann, ist im Artikel ownCloud Updates richtig durchführen erklärt.

Bitte diesen Schritt nicht überspringen. Ohne dieses Backup riskiert man im schlimmsten Fall, sämtliche Daten in der Cloud zu verlieren.

Migration von ownCloud auf Nextcloud durchführen

Nach dem Anfertigen des Backups kann nun die Migration durchgeführt werden. Die Schritte sind dabei fast identisch wie bei einem manuellen ownCloud-Upgrade.

  1. ownCloud in den Wartungs-Modus versetzen: Die Cloud wird zunächst in den sog. Maintenance-Modus versetzt. Dies verhindert, dass Benutzer während der Migration an der ownCloud angemeldet sein können.
    Dazu wird folgender OCC-Befehl genutzt:

    cd /var/www/owncloud 
    sudo -u www-data php occ maintenance:mode –-on
  2. Webserver stoppen: 
    service nginx stop
  3. Virtuelle Hosts für Nextcloud vorbereiten: Da die virtuellen Hosts (Gateway-Host und Host für ownCloud) immer mit dem Verzeichnis owncloud arbeiten, sind die entsprechenden Config-Dateien zu bearbeiten (zu finden im Verzeichnis /etc/nginx/conf.d bzw. /etc/nginx/sites-enabled): Alle Vorkommnisse von ‚owncloud‘ müssen hier durch ’nextcloud‘ ersetzt werden.
  4. Nextcloud herunterladen und entpacken: Nun kann die aktuelle Version von Nextcloud heruntergeladen werden. Den Link dazu findet man auf der Seite von Nextcloud (.tar.bz2). Anschließend wird das Archiv an der richtigen Stelle entpackt:
    wget https://download.nextcloud.com/server/releases/nextcloud-9.0.53.tar.bz2 
    tar -xjf nextcloud-9.0.53.tar.bz2 -C /var/www
  5. ownCloud-Konfiguration übertragen: Damit die Konfiguration der alten Installation übernommen wird, muss die Datei config.php kopiert werden:
    cp /var/www/owncloud/config/config.php /var/www/nextcloud/config/config.php
  6. Verzeichnisrechte anpassen: 
    chown -R www-data:www-data /var/www/nextcloud
  7. Umbenennen des Daten-Verzeichnisses: Da das Daten-Verzeichnis aus Sicherheitsgründen außerhalb des ownCloud-Verzeichnisses liegt und owncloud_data heißt, wird dies gleich umbenannt und die Verzeichnisrechte noch einmal explizit gesetzt:
    mv /var/owncloud_data /var/nextcloud_data 
    chown -R www-data:www-data /var/nextcloud_data
  8. Daten-Verzeichnis in der config.php anpassen: Da das Datenverzeichnis umbenannt wurde, muss dies noch in der config.php von Nextcloud angegeben werden:
    nano /var/www/nextcloud/config/config.php

    Hier sucht man nach dem Eintrag datadirectory und passen diesen an:

    'datadirectory' => '/var/nextcloud_data',
  9. Webserver starten: 
    service nginx start
  10. Migration ausführen: Nun ist es an der Zeit, die eigentliche Migration anzustoßen. Dies kann eine Weile dauern.
    cd /var/www/nextcloud 
    sudo -u www-data php occ upgrade
  11. Maintenance-Modus beenden: Im letzten Schritt wird die Nextcloud wieder aus dem Maintenance-Modus gebracht:
    cd /var/www/nextcloud 
    sudo -u www-data php occ maintenance:mode --off

Nun kann Nextcloud über die URL https://meinedomain.de/nextcloud aufgerufen werden:

Nextcloud: Login-Maske nach erfolgreicher Migration
Nextcloud: Login-Maske nach erfolgreicher Migration

Während der Migration wurden alle Apps (wie z.B. Kontakte oder Kalender) deaktiviert. Diese müssen nach erfolgreicher Migration wieder über ein Administrator-Konto aktiviert werden.

Ganz am Schluss sollte noch das Verzeichnis der onwCloud-Installation entfernt werden, da die ownCloud-Installation so nicht mehr lauffähig ist:

rm -r /var/www/owncloud

Jetzt umsteigen oder noch warten?

Die Migration auf Nextcloud klappt im Allgemeinen recht problemlos, trotzdem sollte man nichts überstürzen und evtl. noch etwas abwarten. Nextcloud 9.0.53 bringt im Vergleich zu ownCloud 9.1.0 keine Vorteile mit sich, die eine sofortige Migration rechtfertigen würden. Die nächste Version von Nextcloud (10.0) steht allerdings schon als Beta-Version in den Startlöchern. Hier sind einige neue Features und Verbesserungen im Vergleich zu ownCloud geplant.

Ebenfalls kann es sinnvoll sein, mit einer sauberen Installation von Nextcloud anzufangen. Zwar ist die Umstellung dann etwas aufwendiger (Export und Import von Daten), im Gegensatz zur Migration werden hier aber keine evtl. vorhandenen Altlasten übernommen.

Daher die Empfehlung für alle, die bereits geplant haben, auf Nextcloud umzusteigen: Version 10.0 abwarten und dann mit einer sauberen Neuinstallation durchstarten.

Weiterführende Artikel

Links

15 Kommentare zu „Nextcloud: Migration von ownCloud“

    1. Hallo Hans,

      ich habe meine Test-Cloud auf Nextcloud migriert, ja.
      Die Zertifikate sind nicht betroffen, da am Webserver diesbzgl. keine Änderungen gemacht wurden.

      Gruß,
      Jan

  1. Hallo Jan,

    jetzt wollte ich mal die Migration durchführen. Bei dem Migrationskommando

    sudo -u www-data php occ upgrade

    bekomme ich folgende Ausgabe:

    PHP Fatal error: Cannot declare class OC_App, because the name is already in use in /var/www/nextcloud/lib/private/app.php on line 56

    Damit kann ich recht wenig anfangen. Hast Du eine Idee?

    Ich habe zunächst die 10.0.0 Version heruntergeladen und installiert. Das Upgrade Befehl ergibt allerdings noch mehr Fehler. Daraufhin habe ich dann die 9.0.53 herunterladen und installiert. Dann passiert dieser Fehler.

    Gruß
    Hans

    P.S. Bei Schritt 8 ist ein „w“ zu viel in der Pfadangabe

    nano /var/wwww/nextcloud/config/config.php

    1. Hi Hans,

      dieser Fehler ist mir bisher noch nicht bekannt. Im Internet findet man allerdings Hinweise, dass dies passieren kann, wenn vor dem Update das alte OC-Verzeichnis nicht gelöscht/verschoben wurde.
      Hast du evtl. die Nextcloud-Dateien einfach in dein ownCloud-Verzeichnis entpackt und dann das Update ausgeführt?
      Du solltest das ownCloud-Verzeichnis auf jeden Fall vorher umbenennen, dann Nextcloud in einen neuen Ordner entpacken und anschließend nur das OC-Config-File in das Nextcloud-Verzeichnis kopieren. Danach das Update mittels occ ausführen.
      Zumindest hat das bei mir so geklappt.

      Und ja, da war wirklich ein „w“ Zuviel – danke für den Hinweis!

      Gruß,
      Jan

  2. Hallo Jan,

    vielen Dank für den Hinweis. Eigentlich bin ich so vorgangen wie in Deinem Tutorrial.
    Ich werde mal das owncloud Verzeichnis umbenennen, nextcloud in ein neues Verzeichnis entpacken und das OC-config File in das neue Vereichnis kopieren.

    Gruß
    Hans

    1. Hi,

      falls bei dir das Datenverzeichnis im OC-Ordner liegt, muss dieses (mitsamt Inhalt) auch noch in den NC-Ordner verschoben werden. Wenn das Datenverzeichnis außerhalb des OC-Ordners liegt (empfohlen), dann ist dieser Schritt nicht notwendig.

      Gruß,
      Jan

    1. Hallo Frederik,

      ja, das Vorgehen sollte auch für Nextcloud 10 passen. Mir fehlt nur leider gerade die Zeit, eine Neuinstallation durchzuspielen.
      Wenn du NC 10 installiert hast, oder dabei Probleme haben solltest, kannst du dich gern nochmal melden. Dann kann ich im Artikel einen Hinweis auf Nextcloud mit aufnehmen.

      Gruß,
      Jan

      1. Ich habe nun alles durchgespielt und habe an den entsprechenden Stellen „owncloud“ durch nextcloud“ ersetzt und bekomme nun folgenden Fehler bevor ich NextCloud installieren kann:
        2016/09/13 11:54:34 [warn] 2793#2793: no resolver defined to resolve ocsp.int-x3.letsencrypt.org while requesting certificate status, responder: ocsp.int-x3.letsencrypt.org
        2016/09/13 11:54:34 [crit] 2793#2793: *6 connect() to unix:/run/php/php7.0-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: 127.0.0.1, request: „GET /nextcloud/in$

          1. Hallo Frederik,

            ja, bei der Installation von nginx auf Ubuntu 16.04 ist der Standard-nginx-Benutzer „nginx“. Dies muss man immer manuell ändern.

            Gruß,
            Jan

  3. Nextcloud bietet ja auch selbst einige Hinweise zur Migration…

    https://nextcloud.com/migration/

    Leider funktioniert das mit dem Migrationstool „index.php“ beim Upgrade von OC 9.1.6 auf NC 10.0.5 nicht. Beim entpacken erscheint die Fehlermeldung

    „Downloaded Version is lower than installed Version.“

    Hinweise darauf gibt’s hier… https://help.nextcloud.com/t/migration-from-owncloud-9-1-6-to-nextcloud-10-0-5-fails/13523/6

    Kann das mit der manuellen Installation nach deiner Anleitung klappen, oder zerschießt es mir dan die Datenbank?

    1. Hi Markus,

      das manuelle Update sollte eigentlich funktionieren.
      Aber wie immer: Vorher ein Backup machen. Auch wenn es in der Theorie keine Probleme geben sollte, könnte dabei immer irgendwas schief laufen…

      Gruß,
      Jan

  4. Hallo Jan,
    vielen Dank für die Anleitungen, super Sache!

    Habe mich heute am Umstieg Owncloud 8.2.53 -> nextcloud versucht. Scheint zu gehen, aber ich musste folgendes zusätzlich ausführen:

    nano /etc/php/7.0/fpm/php.ini

    open_basedir = /var/www/:/tmp/:/var/nextcloud_data:

    nano /etc/php/7.0/cli/php.ini
    open_basedir = /var/www/:/tmp/:/var/nextcloud_data

    In deinem anderen Artikel ownCloud 9 auf Ubuntu Server 16.04 LTS mit nginx, MariaDB, PHP 7 und Let’s Encrypt stand das zum Glück noch drin, also kein Problem

    1. Hallo Armin,

      ja, ich bin davon ausgegangen, dass am Ziel-Rechner alle Einstellungen neben Nextcloud soweit passen. Die ganzen Grundeinstellungen (PHP, MariaDB/MySQL, etc.) wollte ich in diesem Artikel nicht nochmal einzeln durchgehen.
      Aber OK, du hast es ja mit Hilfe der anderen Artikel hinbekommen – super!

      Gruß,
      Jan

Kommentar verfassen

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