Owncloud Migration

Ansprechpartner

jackhammer

Die Seite ist nicht mehr relevant, da wir vor langem schon auf Nextcloud umgestellt haben. Da ein Migrationsguide aber immer nützlich ist, lassen wir diese Seite mal stehen.

1. Ausgangslage

Der bisher separat betriebene owncloud Server soll in den neuen "All-in-One" Server integriert werden. Bisher lief der Cloud Server unter Dragonfly BSD, nun ist sein neues Zuhause ein Debian.

2. Arbeitsverzeichnis und Directory-Struktur

Das Owncloud Arbeitsverzeichnis liegt bei Debian unter /usr/share/owncloud.

Im Gegensatz zu den FreeBSD Varianten verteilt Debian die Verzeichnisse mit symbolischen Links. Hier die genaue Aufstellung:

lrwxrwxrwx   1 root root   24 Jan  2 17:00 backup -> /var/lib/owncloud/backup
lrwxrwxrwx   1 root root   13 Jan  2 17:00 config -> /etc/owncloud
lrwxrwxrwx   1 root root   22 Jan  2 17:00 data -> /var/lib/owncloud/data
lrwxrwxrwx   1 root root   22 Jan  2 17:00 .htaccess -> /etc/owncloud/htaccess
lrwxrwxrwx   1 root root   24 Jan  2 17:00 themes -> /var/lib/owncloud/themes

Vorteil dieser Aufteilung: Das Verzeichnis /usr/share/owncloud beinhaltet nur die reinen owncloud Systemdateien (ca 30m) und alle Nutzdaten liegen unter /var/lib/owncloud/data/.

3. Was wird übertragen?

Wir übertragen das owncloud Daten-Verzeichnis, den Datenbank-Dump und Teile der config.php Datei. Das ganze Spiel kann nur funktionieren wenn die Owncloud Versionen identisch sind. Hier ist es 5.0.14a.

4. Vorbereitungen

Debian Seite:

Apache abschalten

root@lug-in:/usr/share# service apache2  stop

5. Nutzdaten übertragen

Dragonfly BSD Seite:

Nutzdaten (inkl. Datenbank-Dump) vom BSD-Server übertragen (und Rechte anpassen):

dragon3# rsync -av --delete -e "ssh -i lug-in.wtf.ag_rsa" /usr/local/www/owncloud/data/ root@lug-in.wtf.ag:/var/lib/owncloud/data/
dragon3# scp -i fremd_keys/lug-in.wtf.ag_rsa /usr/local/www/postgresql_database_dump/oc_dump.out root@lug-in.wtf.ag:/var/lib/postgresql/

Nun haben allerdings alle Daten die falschen UID/GID's. Also müssen wir auf der Debian Seite nachbessern:

root@lug-in:~# chown -R www-data:www-data /var/lib/owncloud/data/
root@lug-in:~# chown  postgres:postgres /var/lib/postgresql/oc_dump.out

6. Datenbank anpassen

Debian Seite:

Die BSD-Varianten verwenden den Datenbank-Admin-User pgsql, Debian nennt ihn postgres. Des weiteren sind in der Tabelle oc_storages die Verzeichnisse gespeichert in denen die einzelnen User Ihre Dateien liegen haben. Werden sie nicht an das neue Arbeitsverzeichnis /usr/share/owncloud/ angepasst "verschwinden" die Shares.

Also müssen wir im Datenbank-Dump eine Anpassung machen. vi kann das erledigen

root@lug-in:~# cd /var/lib/postgresql/
root@lug-in:/var/lib/postgresql# su postgres
postgres@lug-in:/var/lib/postgresql#  vi oc_dump.out

Wir setzten folgendes Kürzel innerhalb von vi ab

:%s/pgsql/postgres/g
:%s/\/usr\/local\/www\/owncloud\//\/usr\/share\/owncloud\//g
:%s/plpostgres/plpgsql/g

7. Datenbank einlesen

Die Datenbank muss nun gelöscht und wieder neu angelgt werden. Im nachfolgenden Beispiel heisst die Bank owncloud und der Datenbank-Admin auch owncloud.

Wir erzeugen einen Datei db_delete.sql mit folgendem Inhalt:

DROP DATABASE owncloud;
CREATE DATABASE owncloud TEMPLATE template0 ENCODING 'UNICODE';
ALTER DATABASE  owncloud OWNER TO owncloud ;
GRANT ALL PRIVILEGES ON DATABASE owncloud TO owncloud ;

Und lassen die SQL-Befehle ausführen:

postgres@lug-in:/var/lib/postgresql#  psql -f db_delete.sql  # Datenbank löschen und neu erstellen
postgres@lug-in:/var/lib/postgresql#  psql -d owncloud -f oc_dump.out  # Dump einspielen

8. config.php anpassen

Nun müssen wir aus der alten Config Datei noch ein paar Parameter herüberretten.Dafür kopieren wir uns zuerst die alte config.php.

Dragonfly BSD Seite:

dragon3# scp -i fremd_keys/lug-in.wtf.ag_rsa /usr/local/www/owncloud/config/config.php root@lug-in.wtf.ag:/usr/share/owncloud/config/config.php.dflybsd

Debian Seite:

Wir müssen die folgenden Parameter in unserer /usr/share/owcloud/config/config.php aus der alten config.php.dflybsd übernehmen:

'instanceid' => '78435affe753753',
'passwordsalt' => '**************',
'dbuser' => 'owncloud',
'dbpassword' => '**************',

Nun noch den Apache neustarten und fertig

root@lug-in:/var/lib/postgresql# service apache2 restart


CategoryDocumentation

Dokumentation/OwncloudMigration (last edited 2022-02-13 18:38:31 by sabine)