Die Migration von ownCloud zu Nextcloud wird bis zur Version ownCloud 10.5 und neu auch mit der Version ownCloud 10.11 unterstützt. Bevor wir jedoch anfangen weisen wir auf die zwingend notwendigen Backups der Datenbank, Daten und ownCloud hin und weisen zudem auf das Risiko einer solchen Migration hin. Unsere Empfehlung ist der Aufbau einer PoC-Umgebung, in der auf Ihren Echtdaten (Klon) eine Migration verprobt werden kann.
Wir bieten Ihnen unsere Erfahrung und Unterstützung an, fragen Sie uns.
Für die nachfolgende Anleitung gehen wir von einer ownCloud Version ≤ 10.5 aus. Sollten Sie noch ein vorheriges ownCloud-Release verwenden, so muss diese Instanz zwingend vorab auf die Version 10.5 aktualisiert werden.
Sollten Sie jedoch bereits auf einer ownCloud-Version > 10.5 agieren, so muss die ownCloud zunächst auf die Version 10.11 aktualisiert werden, um dann zur Nextcloud migirert zu werden.
Die ownCloud – Releases können Sie hier herunterladen.
1. Migration von ownCloud ≤ 10.5
Bitte nehmen Sie auch das Statement der Nextcloud GmbH zur Kenntnis:
Nearly all ownCloud settings will be migrated to Nextcloud during the upgrade procedure. That means that internal and public (link) shares keep working, users keep their settings and you will retain app configuration, LDAP and external storage settings and more. Settings from proprietary extensions from ownCloud which have open source replacements in Nextcloud, however, will sometimes need to be reconfigured. The following apps have a Nextcloud equivalent but need re-configuration: File Retention File Firewall File Automated Tagging File Drop SharePoint The open source replacements of these apps in Nextcloud offer at least the same and typically more capabilities. Configuration settings not mentioned in this list will be carried over from ownCloud to Nextcloud during upgrade.
Versetzen Sie ownCloud in den Wartungsmodus.
sudo -u www-data php /var/www/owncloud/occ maintenance:mode --on
Sichern Sie zuerst die Datenbank und dann das ownCloud- und ownCloud-Datenverzeichnis in das Migrationsverzeichnis.
mkdir -p /migration
mysqldump1 owncloud > /migration/db-sicherung.sql
cp -ar /var/www/owncloud /migration/
cp -ar /var/oc-daten /migration/
Nach der Sicherung laden wir das notwendige Nextcloud Release v. 20.0.4 herunter und entpacken dieses.
apt install -y unzip
wget https://download.nextcloud.com/server/releases/nextcloud-20.0.4.zip
unzip nextcloud-20.0.4.zip
Anschließend wechseln wir in das Webverzeichnis, verschieben das ownCloud-Verzeichnis, kopieren das neue Nextcloud-Verzeichnis dorthin und kopieren die config.php.
cd /var/www/
mv owncloud owncloud105.sicherung
mv /home/rieger/nextcloud .
cp owncloud105.sicherung/config/config.php nextcloud/config/
Um Fehlern während der Migration vorzubeugen erstellen wir ein für ownCloud notwendiges Verzeichnis und setzen die korrekten Berechtigungen.
mkdir -p /var/www/nextcloud/apps-external
find /var/www/nextcloud/ -type d -exec chmod 750 {} \;
find /var/www/nextcloud/ -type f -exec chmod 640 {} \;
Da der vHost noch auf das owncloud-Verzeichnis verweist, benennen wir das Nextcloud-Verzeichnis um, setzen den korrekten Besitzer und beenden den Wartungsmodus.
mv nextcloud owncloud
chown -R www-data:www-data owncloud
sudo -u www-data php /var/www/owncloud/occ maintenance:mode --off
Die Vorbereitungen sind soweit abgeschlossen und wir können mit der Migration beginnen:
sudo -u www-data php /var/www/owncloud/occ upgrade -v
Nach diesen Schritten melden wir uns im Browser an der migrierten Nextcloud an:
Wir überprüfen den Status der Nextcloud 20.04 und aktualisieren dieses Release in mehreren Schritten auf das aktuelle Nextcloud 24-Release.
sudo -u www-data php /var/www/owncloud/updater/updater.phar
Datenbank optimieren
sudo -u www-data php owncloud/occ db:convert-filecache-bigint
sudo -u www-data php owncloud/occ db:add-missing-indices
sudo -u www-data php owncloud/occ db:add-missing-columns
sudo -u www-data php owncloud/occ db:add-missing-primary-keys
Upgrade: Nextcloud 20.0.14 » 21.0.9
sudo -u www-data php /var/www/owncloud/updater/updater.phar
Nextcloud im Browser überprüfen:
Konvertierung des Character-Set (UTF8 / 4Byte) und fehlende Indizes ergänzen:
sudo -u www-data php /var/www/owncloud/occ db:convert-mysql-charset
sudo -u www-data php owncloud/occ db:add-missing-indices
Cronjob anpassen
*/5 * * * * php -f /var/www/owncloud/cron.php > /dev/null 2>&1
Nextcloud vHost anpassen anpassen, gem. dieser Anleitung oder den Dateien auf Codeberg:
https://codeberg.org/criegerde/nextcloud/src/branch/master/etc/nginx/conf.d/http.conf
https://codeberg.org/criegerde/nextcloud/src/branch/master/etc/nginx/conf.d/nextcloud.conf
Nextcloud im Anschluß erneut im Webbrowser überprüfen:
Upgrade: Nextcloud 21.0.9 » 22.2.8
sudo -u www-data php /var/www/owncloud/updater/updater.phar
Datenbank anpassen und Nextcloud erneut überprüfen
sudo -u www-data php owncloud/occ db:add-missing-indices
Upgrade: Nextcloud 22.2. » 23.0.5
sudo -u www-data php /var/www/owncloud/updater/updater.phar
Upgrade: Nextcloud 23.0.5 » 24.0.1 » …
sudo -u www-data php /var/www/owncloud/updater/updater.phar
sudo -u www-data php owncloud/occ db:add-missing-indices
Quellen:
https://nextcloud.com/Migration/
https://download.nextcloud.com/server/releases/
https://download.owncloud.org/community/
2. Migration von owncloud > 10.5 zu Nextcloud latest
Nextcloud beschreibt die Möglichkeiten auf der Webseite wie folgt:
Currently migrating from ownCloud is like performing a manual update. So it is quite easy, to migrate from one ownCloud version to at least one Nextcloud version. However this does only work with versions that are close enough database and code-wise. See the table below for a version map, where migrating is easily possible:
https://docs.nextcloud.com/server/stable/admin_manual/maintenance/migrating_owncloud.html#migrating-from-owncloud
ownCloud | Nextcloud |
---|---|
10.13.x | 25.0.x (but at least 25.0.2) |
10.5.x or later | 20.0.x (but at least 20.0.5) |
Für eine Migration von ownCloud 10.6+ zu Nextcloud müssen einige Voraussetzungen zutreffen. Die ownCloud muss zu Beginn der Migration
- auf die Version 10.13.x aktualisiert werden
- PHP 7.4 oder neuer nutzen
- hinsichtlich der aktiven Apps auf Kompatibilität mit der Nextcloud geprüft werden.
Wir beginnen mit der Sicherung der aktuellen Daten Ihrer ownCloud 10.1x – versetzen Sie ownCloud in den Wartungsmodus.
sudo -u www-data php /var/www/owncloud/occ maintenance:mode --on
Sichern Sie zuerst die Datenbank und dann das ownCloud- und ownCloud-Datenverzeichnis in das Migrationsverzeichnis.
mkdir -p /migration
mysqldump owncloud > /migration/db-sicherung.sql
cp -ar /var/www/owncloud /migration/
cp -ar /var/oc-daten /migration/
Nach der Sicherung laden wir das notwendige Nextcloud Release herunter und entpacken dieses.
cd /home/<user>
wget https://download.nextcloud.com/server/releases/latest.tar.bz2
wget https://download.nextcloud.com/server/releases/latest.tar.bz2.md5
md5sum -c latest.tar.bz2.md5 < latest.tar.bz2
tar -xjf latest.tar.bz2 -C /var/www && chown -R www-data:www-data /var/www/ && rm -f latest.tar.bz2
Anschließend wechseln wir in das Webverzeichnis, verschieben das ownCloud-Verzeichnis, benennen das neue Nextcloud-Verzeichnis um und kopieren die config.php.
cd /var/www/
mv owncloud owncloud1011.sicherung
mv nextcloud owncloud
cp owncloud1011.sicherung/config/config.php owncloud/config/
Um Fehlern während der Migration vorzubeugen erstellen wir ein für ownCloud notwendiges Verzeichnis und setzen die korrekten Berechtigungen.
mkdir -p /var/www/owncloud/apps-external
find /var/www/owncloud/ -type d -exec chmod 750 {} \;
find /var/www/owncloud/ -type f -exec chmod 640 {} \;
Wir stellen noch die korrekten Berechtigungen sowie den korrekten Besitzer der Daten sicher und beenden dann den Wartungsmodus der ownCloud.
chown -R www-data:www-data owncloud
sudo -u www-data php /var/www/owncloud/occ maintenance:mode --off
Die Vorbereitungen sind nun abgeschlossen und wir können mit der Migration zur Nextcloud beginnen:
sudo -u www-data php /var/www/owncloud/occ upgrade -v
Nach dem der Prozess beendet wurde und der Prompt zurück ist führen wir noch letzte Wartungstätigkeiten durch, bevor wir uns an der migrierten (Next-)Cloud erstmalig anmelden:
sudo -u www-data php owncloud/occ db:convert-filecache-bigint
sudo -u www-data php owncloud/occ db:add-missing-indices
sudo -u www-data php owncloud/occ db:add-missing-columns
sudo -u www-data php owncloud/occ db:add-missing-primary-keys
Stellen Sie abschließend PHP auf die Version 8.1-fpm (gemäß dieser Anleitung) um und passen die notwendigen config.php-Parameter für die Nextcloud an:
Dazu öffnen Sie die Datei config.php
nano /var/www/owncloud/config.php
und fügen dort die Zeilen
[...]
'default_phone_region' => 'DE',
'memcache.local' => '\OC\Memcache\APCu',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' =>
array (
'host' => '/var/run/redis/redis-server.sock',
'port' => 0,
'timeout' => 0.5,
'dbindex' => 1,
),
[...]
ein. Nach einem Neustart von PHP und des Webservers nginx steht Ihnen die Nextcloud bereits vollwertig zur Verfügung.
systemctl restart php8.1-fpm.service nginx.service
Fußnote(n):
- mysqldump wird mittelfristig mit mariadb-dump ersetzt ↩︎
Die Migration ist nun abgeschlossen und Sie können die vorherige ownCloud als neue Nextcloud im vollen Umfang nutzen. Über Ihre Unterstützung (diese wird ordnungsgemäß versteuert!) würden sich meine Frau, meine Zwillinge und ich sehr freuen!