Version [4431]
Dies ist eine alte Version von NextCloud erstellt von ErdaxoAdmin am 2023-03-19 18:54:13.
Nextcloud
ist unser primäres sicheres Cloudsystem
Mit nextcloud können Daten ohne Beteiligung von externen Dienstleistern auf sichere Weise zwischen verschiedenen Nutzern und Standorten synchron gehalten werden. Nach einigen Jahren owncloud (was auch gut funktioniert hatte) sind wir auf nextcloud umgestiegen, da es dem open source Gedanken konsequenter folgt und insbesondere im Hinblick auf die Verwaltung etwas komfortabler ist. Die zusätzlichen Funktionen werden wir mit der Zeit vielleicht auch ausprobieren...
A. Installation
In einem xNAS-jail (FreeBSD) benötigt man folgende Schritte:
$ pkg update
$ pkg install nano
$ pkg install wget ca_root_nss
$ pkg install apache24
$ sysrc apache24_enable=yes
$ service apache24 start
$ pkg install mariadb104-server
$ sysrc mysql_enable=yes
$ pkg install nano
$ pkg install wget ca_root_nss
$ pkg install apache24
$ sysrc apache24_enable=yes
$ service apache24 start
$ pkg install mariadb104-server
$ sysrc mysql_enable=yes
Zur Konfiguration von Apache für NextCloud beachte auch die Hinweise dort.
B. Upgrade
Immer wieder ist ein Upgrade erforderlich. Nextcloud wird recht intensiv entwickelt. Auch, wenn das vielleicht nicht nötig ist, die Werkzeuge zum Updaten sind gut ausgereift und deshalb leicht anzuwenden. Allerdings sollte man:
- den Web-Updater eher nicht benutzen
- bei Updates ab und zu entstehende Fehler ausmerzen.
su -m www -c 'php /usr/local/www/nxc/updater/updater.phar'
Dies ist so, weil:
- der Befehl muss über PHP aufgerufen werden als Interpreter
- dabei muss der Benutzer eingesetzt werden, der Privilegien des Webservers hat
- Achtung: unter Linux sieht der Befehl entsprechend anders aus!
Mit dem Konsolenskript occ können verschiedene Verwaltungsaufgaben erledigt werden. Da es aber PHP nutzt, ist sein Aufruf
1. systemspezifisch unterschiedlich
2. nur mit korrekten Rechten möglich (PHP in der Regel mit den Rechten des Webservers auszuführen)
Unter FreeBSD (xNAS in a jail) läuft es aktuell so (FreeNAS 11.3 oder TrueNAS 12, jail):
su -m www -c 'php /usr/local/www/nxc/occ db:convert-filecache-bigint' (als Beispiel)
Falls Fehler wegen fehlendem APCu-Cache kommen, kann man den Befehl ergänzen:
su -m www -c 'php --define apc.enable_cli=1 /usr/local/www/nxc/occ upgrade'
D. Nach Update auf 21 / Umzug auf TrueNAS
Der Umzug und gleichzeitiges Update führten zu Problemen:
- Aufruf einiger Administrationsseiten war unmöglich
- cron funktionierte nicht
- Aufruf empfohlener occ-Commandos endete mit Fehlern über Speicher
- default_phone_region sollte noch eingestellt werden
Diese Probleme hingen alle irgendwie zusammen... Hier habe ich einige Links gesammelt, wo einige Hinweise zu Lösungen enthalten sind:
- https://central.owncloud.org/t/allowed-memory-size-of-536870912-bytes-exhausted-tried-to-allocate-20480-bytes/17074/3
- https://github.com/nextcloud/server/issues/25742
- insbesondere hier waren viele gute Hinweise
E. Probleme mit CRON
Immer wieder erscheinen Probleme mit CRON, wenn updates erfolgen oder anderer Umstellungen. Zuletzt half es, den Befehl im crontab zu ändern - in etwas wie folgt:
=> im jail anmelden
iocage console www
=> crontab des users www aufrufen
su -m www -c 'crontab -e'
die betreffende Zeile muss so aussehen:
*/5 * * * * /usr/local/bin/php -f /usr/local/www/nxc/cron.php --define apc.enable_cli=1
(--define apc.enable_cli=1 wurde hinzugefügt)
iocage console www
=> crontab des users www aufrufen
su -m www -c 'crontab -e'
die betreffende Zeile muss so aussehen:
*/5 * * * * /usr/local/bin/php -f /usr/local/www/nxc/cron.php --define apc.enable_cli=1
(--define apc.enable_cli=1 wurde hinzugefügt)
F. Reverse proxy
Bereitet einige Probleme, wenn Nextcloud hinter einem ist. Egal, ob Nginx pur oder NPM - einige Einstellungen sind vorzunehmen.
Eine gute Anleitung ist hier: https://zuckerbude.org/nextcloud-behind-reverse-proxy/
G. Migration zum neuen Server
Einzelne Schritte mit Befehlen - es werden die Befehle für LINUX genommen. Bei FreeBSD ist die andere Syntax der PHP-Verwendung zu beachten (siehe oben):
# Vorbereitung:
# => Umgebung möglichst identisch und kompatibel
# maintenance-mode einschalten:
sudo -u www-data php occ maintenance:mode --on
# mindestens 6-7 Minuten warten
# Dateien kopieren
rsync -Aavx /alter/pfad/nextcloud/ /neuer/pfad/nextcloud/
# auf jeden Fall -t bei rsync nutzen = timestamp beibehalten!
# (möglich auch über ssh)
# Datenbank vom alten Server kopieren:
mysqldump --single-transaction -h 127.0.0.7 -u [username] -p[password] [db_name] > nextcloud.bak
# falls 4-byte-support aktiviert (neu für emojis) - dann etwas modifiziert:
mysqldump --single-transaction --default-character-set=utf8mb4 -h 127.0.0.1 -u [username] -p[password] [db_name] > nextcloud.bak
# jetzt auf dem neuen aufspielen (inkl. multibyte-support):
mysql -h [server] -u [username] -p[password] -e "DROP DATABASE nextcloud"
mysql -h [server] -u [username] -p[password] -e "CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci"
mysql -h [server] -u [username] -p[password] [db_name] < nextcloud.bak
# data-fingerprint prüfen
# falls es einen Wert (in der config.php?) für "data-fingerprint" gibt,
# muss noch auf dem neuen System Folgendes erfolgen:
sudo -u www-data php occ maintenance:data-fingerprint
# => Umgebung möglichst identisch und kompatibel
# maintenance-mode einschalten:
sudo -u www-data php occ maintenance:mode --on
# mindestens 6-7 Minuten warten
# Dateien kopieren
rsync -Aavx /alter/pfad/nextcloud/ /neuer/pfad/nextcloud/
# auf jeden Fall -t bei rsync nutzen = timestamp beibehalten!
# (möglich auch über ssh)
# Datenbank vom alten Server kopieren:
mysqldump --single-transaction -h 127.0.0.7 -u [username] -p[password] [db_name] > nextcloud.bak
# falls 4-byte-support aktiviert (neu für emojis) - dann etwas modifiziert:
mysqldump --single-transaction --default-character-set=utf8mb4 -h 127.0.0.1 -u [username] -p[password] [db_name] > nextcloud.bak
# jetzt auf dem neuen aufspielen (inkl. multibyte-support):
mysql -h [server] -u [username] -p[password] -e "DROP DATABASE nextcloud"
mysql -h [server] -u [username] -p[password] -e "CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci"
mysql -h [server] -u [username] -p[password] [db_name] < nextcloud.bak
# data-fingerprint prüfen
# falls es einen Wert (in der config.php?) für "data-fingerprint" gibt,
# muss noch auf dem neuen System Folgendes erfolgen:
sudo -u www-data php occ maintenance:data-fingerprint
Bevor der maintenance-mode ausgeschaltet wird sollte man die neue Instanz prüfen:
=> neue Adresse aufrufen
=> schauen, ob maintenance-mode sichtbar ist
=> in den log files schauen: vom Webserver und Nextcloud
dann
=> maintenance-mode ausschalten
=> noch mal in den logfiles schauen
=> anmelden und Funktion überprüfen.
H. Links
Informationen insbesondere zur Installation in einem xNAS-Jail:
- https://ramsdenj.com/2017/06/05/nextcloud-in-a-jail-on-freebsd.html
- https://www.samueldowling.com/2020/07/24/install-nextcloud-on-freenas-iocage-jail-with-hardened-security/ - siehe auch offline (Knowledge/it/freenas/NextCloud 15 on FreeNAS 11.2.webarchive)
CategoryITKnowledge
Auf dieser Seite sind keine Kommentare vorhanden