Nextcloud in Debian

Nextcloud ist ideal geeignet, um seine eigene Cloud-Lösung zu realisieren. Die Software lässt sich auf dem eigenen Hosting leicht installieren und lässt keine Wünsche offen. Ob nun am Windows-PC oder am Linuxrechner: deine Daten bleiben in deiner Hand und man ist an keinen Hersteller und Anbieter gebunden.

Nextcloud ist sehr gut dokumentiert und im Internet gibt es hunderte von Anleitungen, welche die Installation detailliert beschreiben. Ziel unserer Installation ist «der grüne Haken» zu bekommen:

Alles richtig gemacht! – die Überprüfung des Systems liefert uns keine Fehler und keinen Warnhinweis zurück. Machbar ist dies jedoch nur auf dem eigenen Server. Bei einem Managed Hosting sind die Freiheiten bezüglich Servereinstellungen eingeschränkt.

Installation beginnen

Die Installation von Nextcloud ist am einfachsten via ssh-Zugang. Lade per wget die Datei herunter und entpacke sie. Das Hochladen via FTP-Client ist nur bedingt zu empfehlen, da es beim Hochladen zu Fehlern kommen kann. Die aktuelle Version von Nextcloud (März 2022) hat etwas über 22000 Dateien.

# wget https://download.nextcloud.com/server/releases/nextcloud-VERSION.zip
# unzip nextcloud-VERSION.zip
# chown -R www-data:www-data /var/www/html/nextcloud

Alternativ kann die Berechtung für Nextcloud im entprechenden Ordner /var/www/html/nextcloud auch mit dem find-Befehl gesetzt werden:

# find . -exec chown www-data:www-data {} \;
Ein Fehler, bevor die Installation überhaupt beginnt: der Server konnte die Anfrage nicht fertig stellen. Sollte dies erneut auftreten, sende bitte die nachfolgenden technischen Einzelheiten an Deinen Server-Administrator. Weitere Details können im Server-Protokoll gefunden werden. – Entfernte Adresse: 123.456.7.890 diese Fehlermeldung schliesst auf fehlende Benutzerrechte hin. Nextcloud benötigt apache2-Rechte, welche mit: chown -R www-data:www-data /var/www/html/nextcloud gesetzt werden können.

weitere Fehlermeldungen und schrittweises abarbeiten

Nextcloud benötigt eine MySQL-Datenbank. Gibt Nextcloud diesbezüglich eine Fehlermeldung aus, liegt es in der Regel an fehlenden Berechtigungen des Datenbankbenutzers. Ist Nextcloud Installiert überprüfen wir die Sicherheits- und Einrichtungswarnungen. Viel Meldungen lassen sich über die .htacces, php.ini oder durch Installation des fehlenden php-Moduls beheben. Spätestens jetzt zeigt sich auch der Vorteil eines «eigenen» Servers, falls tiefere Eingriffe nötig sind. Das output_buffering lässt sich z.B. am einfachsten via php.ini beheben.

Vorgehen (einige Beispiele)

Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB.

Lösbar über:

# nano -w .htaccess

php_value memory_limit 512M

Der «Strict-Transport-Security»-HTTP-Header ist nicht auf mindestens «15552000» Sekunden eingestellt. Für
mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in den Sicherheitshinweisen erläutert ist.

Lösbar via

# nano -w .htaccess

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=15768000;
</IfModule>

Aktiviere anschliessend das Modul headers und starte den apache2 neu:

# a2enmod headers
# service apache2 restart

Dein Webserver ist nicht richtig konfiguriert, um «/.well-known/webfinger aufzulösen (…)»

Lösbar via

# nano -w .htaccess

<IfModule mod_rewrite.c>
  RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav [R=301,L]
  RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav [R=301,L]
  RewriteRule ^\.well-known/webfinger /nextcloud/index.php/.well-known/webfinger [R=301,L]
  RewriteRule ^\.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo [R=301,L]
</IfModule>

Falls dies nicht klappt, öffne:

# nano /etc/apache2/sites-enabled/000-default-le-ssl.conf

und setze die Weiterleitungen hier ein:
# Nextcloud Redirect #
Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav
Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav
Redirect 301 /.well-known/webfinger /nextcloud/index.php/.well-known/webfinger
Redirect 301 /.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo

Für Deine Installation ist keine Standard-Telefonregion festgelegt. Dies ist erforderlich, um Telefonnummern in den Profileinstellungen ohne Ländercode überprüfen zu können. Um Nummern ohne Ländercode zuzulassen, füge bitte «default_phone_region» mit dem entsprechenden ISO 3166-1-Code 7 der gewünschten Region hinzu.

Die Standard-Telefonregion benötigen einen Abstecher nach

# nano -w /var/www/html/nextcloud/config/config.php

Ergänze (für die Schweiz) die config.php mit folgender Zeile:
'default_phone_region' => 'CH',

Es wurde kein PHP Memory Cache konfiguriert. Konfiguriere zur Erhöhung der Leistungsfähigkeit, soweit verfügbar, einen Memory Cache.

Installiere in diesem Fall folgendes php-Module nach:

# apt install php-apcu

und ergänze

# nano -w /var/www/html/nextcloud/config/config.php

mit folgender Zeile:
'memcache.local' => '\OC\Memcache\APCu',

Öffne nun

# nano -w /etc/php/7.4/apache2/php.ini

und füge ganz unten folgenden Befehl ein:
apc.enable_cli=1

manche Hinweise lassen sich nur mit einem tieferen Eingriff am Server selbst beheben.

Starte nun den apache2 neu:

# systemctl restart apache2

Dem Modul php-imagick fehlt die SVG-Unterstützung. Für eine bessere Kompatibilität wird empfohlen, es zu installieren.

Installiere folgendes Paket:

# apt install libmagickcore-6.q16-6-extra

The OPcache interned strings buffer is nearly full. To assure that repeating strings can be effectively cached, it is recommended to apply opcache.interned_strings_buffer to your PHP configuration with a value higher than 8.

Lösbar via

# nano -w /etc/php/7.4/apache2/php.ini

Erhöhe den Wert von 8 auf eine höhere Zahl und entferne ggf. das Semikolon:
; The amount of memory for interned strings in Mbytes.
;opcache.interned_strings_buffer=8

; The amount of memory for interned strings in Mbytes.
opcache.interned_strings_buffer=16

Starte anschliessend den Webserver neu:

# /etc/init.d/apache2 restart

Nextcloud in Debian integrieren

Um Nextcloud in Debian GNU / Linux zu integrieren, lade das Linux AppImage herunter. Windows 10/11 Nutzer laden sich die msi-Datei hier herunter.

Die Datei wird ausführbar gemacht und anschliessend gestartet.

$ chmod +x /pfad/zur/datei/Nextcloud-VERSION.AppImage
$ ./Nextcloud-VERSION.AppImage

Anschliessend kann der Client gestartet werden und beginnt mit der Installationsroutine. Gib hier deine Anmeldedaten für deine Nextcloud ein. Hat alles geklappt, ist Nextcloud intergriert und fragt, was synchronisiert werden soll:

Die App beginnt nur mit der Synchronisation.


Nextcloud kann noch mehr…

E-Mail, Kalender und Kontakte lassen sich allsamt in Nextcloud integrieren und mittels App auf dem Smartphone synchronisieren. Die App DAVx5 sorgt für die reibungslose Synchronisation zwischen Android-Smartphone und deiner eigenen Cloud.