Nextcloud unter Plesk installieren

Was ist Nextcloud?

Nextcloud ist eine freie Software für das Speichern von Daten (Filehosting) auf einem eigenen Server. Bei Einsatz eines Clients wird der Server automatisch mit einem lokalen Verzeichnis synchronisiert. Dadurch kann von mehreren Rechnern, aber auch über eine Weboberfläche, auf einen konsistenten Datenbestand zugegriffen werden. Im Gegensatz zu kommerziellen Speicherdiensten wie Dropbox oder OneDrive kann Nextcloud auf einem privaten Server oder Webspace ohne Zusatzkosten installiert werden. Dadurch behält man die vollständige Kontrolle über seine Daten und die Bedenken gegenüber einem Datenmissbrauch werden minimiert.

Update 22.02.2021 - Major Release Nextcloud 21

Installation

Subdomain erstellen & Vorbereitungen treffen

In Plesk unter Domains -> Subdomain hinzufügen, erstellen Sie eine Subdomain.

Anschließend öffnen Sie die erstellte Subdomain und gehen in den File Manager. Jetzt löschen Sie die erstellten Beispieldateien.

Webinstaller hochladen

Jetzt laden Sie die Datei setup-nextcloud.php hoch. Diese erhalten Sie entweder auf der Herstellerseite oder hier in der Download Sektion.

Datenbank erstellen & Vorbereiten

In der Subdomain erstellen Sie im Reiter Datenbanken mit der Auswahl Datenbank hinzufügen eine Datenbank. Im darauffolgenden Fenster geben Sie einen Datenbanknamen sowie Benutzer und ein Passwort für die Datenbank ein.

Ist die Datenbank nun erzeugt, öffnen Sie diese mit dem Button phpMyAdmin in der Datenbankübersicht. Hier angekommen, wird die Datenbank Kollation unter Operationen geändert auf utf8mb4_bin. Diese Änderung wenden Sie auf alle Tabellen und Spalten an.

PHP-Einstellungen

In den PHP-Einstellungen der Subdomain müssen noch einige Einstellungen getätigt werden, damit ein Fehlerfreier Betrieb stattfinden kann. Dazu rufen Sie diese in der Subdomain Übersicht auf und gehen zu den PHP-Einstellungen.

Nextcloud benötigt min. 128MB Arbeitsspeicher, empfohlen wird 512MB. Deshalb passen Sie das memory_limit entsprechend an.

Unter disable_functions tippen Sie none ein. Dies ist notwendig, da sonst eine Fehlermeldung bezüglich des OPCache's auftritt. Unter open_basedir ergänzen wir den Eintrag am Ende mit :/dev/urandom:/proc/meminfo.

In den PHP-FPM-Einstellungen ergänzen wir folgende Einstellungen (Je nach Server kann hier eine andere Konfiguration gewählt werden):

pm.max_children 120
pm.max_requests 200
pm dynamic
pm.start_servers 12
pm.min_spare_servers 6
pm.max_spare_servers 18

Ausrechnen der pm.max_children (Durchschnittswert):

Code
ps --no-headers -o "rss,cmd" -C php-fpm7.4 | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"Mb") }'

Formel:

max_children = freier Arbeitsspeicher VPS / Arbeitsspeicher pro Prozess

Beispiel:

VPS mit 48 GB (49152 MB) Arbeitsspeicher | Durchschnittswert = 50 MB

max_children = 49152 / 50 = 983.04 (~983)

Somit wäre der optimale wert für diesen Server 983. Aber bitte, übernehmen Sie diesen Wert nicht Blind. Testen Sie Ihre Konfiguration!

Als Zusätzliche Anweisungen fügen wir folgenden Code hinzu:

PHP: Zusätzliche Konfigurationsanweisungen
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

System environment variables

PHP: Zusätzliche Konfigurationsanweisungen
[php-fpm-pool-settings]
env[PATH] = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:bin:/usr/games:/usr/local/games

env[PATH] herausfinden:

  • über die CLI können Sie mit dem Befehl env oder printenv herausfinden welcher Pfad der richtige ist.

Einstellungen für Apache & nginx

In der Übersicht der Subdomain, gehen Sie in die Apache & nginx Einstellungen. Wollen Sie einen reinen Nginx als Webserver, müssen Sie den Haken bei Proxymodus entfernen. In beiden Fällen, ergänzen Sie die Zusätzlichen nginx-Anweisungen.

Lesen Sie sich die auskommentierten Felder durch ggf. ergänzen Sie die Einstellungen.

Webinstaller ausführen & Nextcloud installieren

Nun können Sie die Datei setup-nextcloud.php mit Ihrem Browser öffnen, indem Sie Ihre zuvor erstellte Subdomain aufrufen. z. B. https://nextcloud.domain.tld/setup-nextcloud.php

Haben Sie die Adresse aufgerufen, folgen Sie dem Assistenten und halten Sie die Zugangsdaten der Datenbank bereit.

Redis-Server installieren & Nextcloud config.php anpassen

Installation

Loggen Sie sich mit PuTTY oder einem anderen SSH-Client (ich bevorzuge MobaXterm (MobaXterm free Xserver and tabbed SSH client for Windows)) auf Ihrem Server ein.

Code: Schritt 1
apt install redis-server
Code: Schritt 2
systemctl status redis

Redis testen

Code
redis-cli
 127.0.0.1:6379> ping
 PONG
 127.0.0.1:6379>

Der Redis ist nun Einsatzbereit. Nun muss die config.php von Nextcloud angepasst werden. Hierfür öffnen Sie in Plesk den File Manager der Subdomain und navigieren in den Ordner config. Öffnen Sie jetzt die config.php und ergänzen Sie die Eintragung mit:

Code
  'memcache.distributed' => '\\OC\\Memcache\\Redis',
  'memcache.local' => '\\OC\\Memcache\\Redis',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' => 
  array (
    'host' => 'localhost',
    'port' => 6379,
  ),

Nun läuft die Cloud mit dem Redis.

Um die Standardtelefonregion hinzuzufügen, muss ein extra Eintrag in der config.php hinzugefügt werden

Code
'default_phone_region' => 'DE',

In der Verwaltungsübersicht sollten alle Überprüfungen bestanden sein.

Cronjob anlegen & Nextcloud Einstellungen anpassen.

In der Subdomain Übersicht können Sie unter dem Reiter Geplante Aufgaben (Rechte Seitenleiste) einen Cron anlegen. Hierfür fügen Sie eine Aufgabe hinzu (URL abrufen) und geben als Adresse ihre Nextcloud Instanz mit dem zusatz zur Cron.php an.

Scriptpfad: nextcloud.domain.tld/cron.php
Cron-Stil */5 * * * *


Anschließend wird alle fünf Minuten der Cronjob ausgeführt. Kehren Sie in die Nextcloud Verwaltung zurück und gehen Sie auf Grundeinstellungen hier wählen Sie als Hintergrund-Aufgabe Cron aus.

Nun ist Ihre Cloud fertig eingerichtet.


Dokumentationen:

Server tuning — Nextcloud latest Administration Manual latest documentation

Installation on Linux — Nextcloud latest Administration Manual latest documentation

Nginx configuration — Nextcloud latest Administration Manual latest documentation

Über den Autor

Ich bin IT-Spezialist im Fachbereich der IT-Administratoren. Neben Beruf und Familie, erstelle ich als, Teil meines Hobbys, gerne Tutorials, sowie WoltLab Stile. Aktuell befinde ich mich auf meinem Informationstechnikermeister.

Foxly Team

Kommentare