Owncloud Migration

Ansprechpartner

jackhammer

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/Owncloud/Owncloud Migration (last edited 2014-10-22 18:35:11 by Mathias)