Version [4657]
Dies ist eine alte Version von NextCloud erstellt von ErdaxoAdmin am 2024-09-30 20:37:42.
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!
2. Ubuntu
Upgrade unter Ubuntu funktioniert wie folgt (letztes Upgrade - von 25.0.6 auf 25.0.9):
# das Update einleiten
sudo -u www-data php --define apc.enable_cli=1 /var/www/nextcloud/updater/updater.phar
# vermutlich ist app.enable_cli=1 nicht notwendig, wenn es in php.ini aktiviert ist...
# bei Problemen mit Memcache:
sudo -u www-data php --define apc.enable_cli=1 /var/www/nextcloud/occ maintenance:repair
# oder einfach ABBRECHEN lassen und dann mit dem nächsten Befehl weitermachen!
# nachdem Dateien kopiert wurden - upgrade mit occ:
sudo -u www-data php --define apc.enable_cli=1 /var/www/nextcloud/occ upgrade
sudo -u www-data php --define apc.enable_cli=1 /var/www/nextcloud/occ maintenance:mode --off
sudo -u www-data php --define apc.enable_cli=1 /var/www/nextcloud/occ db:add-missing-indices
sudo -u www-data php --define apc.enable_cli=1 /var/www/nextcloud/updater/updater.phar
# vermutlich ist app.enable_cli=1 nicht notwendig, wenn es in php.ini aktiviert ist...
# bei Problemen mit Memcache:
sudo -u www-data php --define apc.enable_cli=1 /var/www/nextcloud/occ maintenance:repair
# oder einfach ABBRECHEN lassen und dann mit dem nächsten Befehl weitermachen!
# nachdem Dateien kopiert wurden - upgrade mit occ:
sudo -u www-data php --define apc.enable_cli=1 /var/www/nextcloud/occ upgrade
sudo -u www-data php --define apc.enable_cli=1 /var/www/nextcloud/occ maintenance:mode --off
sudo -u www-data php --define apc.enable_cli=1 /var/www/nextcloud/occ db:add-missing-indices
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
# falls APCu-Konfiguration Probleme bereitet:
sudo -u www-data php --define apc.enable_cli=1 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
# falls APCu-Konfiguration Probleme bereitet:
sudo -u www-data php --define apc.enable_cli=1 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. Collabora
Die Installation des Systems ist etwas komplexer - d. h. nicht so sehr die Installation, wie Konfiguration - also sollte man dafür ein gutes Tutorial nehmen. Wenn das System schon steht, gibt es einige Konfigurationsmöglichkeiten, die nicht selbsterklärend sind - sie werden nachstehend gesammelt:
1. Schriftarten hinzufügen
Die etwas kompliziertere Anleitung (auch etwas veraltet - hier heißt das Kürzel noch "lool" statt "cool") in diesem Artikel musste ich bei unserer Version (Collabora 24) nicht vollständig anwenden - es reichten folgende Schritte:
# alle ttf-Dateien in folgende Ordner kopieren (2 Exemplare - vermutlich gehen auch Hardlinks, habe aber nicht probiert):
/usr/share/fonts/truetype
/opt/cool/systemplate/usr/share/fonts/truetype
# die Fontdateien können direkt im Ordner platziert werden oder - wie ich es gemacht habe - in Unterordnern für jede Schriftart zusammengefasst; scheint keine Rolle zu spiele - Hauptsache sie sind in beiden Ordnern; "/usr/share/fonts/truetype" reichte jedenfalls nicht
# Font Cache aktualisieren:
fc-cache
# Collabora Dienst neu starten:
systemctl restart coolwsd
/usr/share/fonts/truetype
/opt/cool/systemplate/usr/share/fonts/truetype
# die Fontdateien können direkt im Ordner platziert werden oder - wie ich es gemacht habe - in Unterordnern für jede Schriftart zusammengefasst; scheint keine Rolle zu spiele - Hauptsache sie sind in beiden Ordnern; "/usr/share/fonts/truetype" reichte jedenfalls nicht
# Font Cache aktualisieren:
fc-cache
# Collabora Dienst neu starten:
systemctl restart coolwsd
2. Weitere
to be continued
I. 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