Nextcloud unter Plesk installieren
-
- Support eingestellt
-
Foxly -
22. Februar 2021 um 04:56 -
0 Kommentare -
19.846 Mal gelesen
- Was ist Nextcloud?
-
Installation
- Subdomain erstellen & Vorbereitungen treffen
- Webinstaller hochladen
- Datenbank erstellen & Vorbereiten
- PHP-Einstellungen
- Ausrechnen der pm.max_children (Durchschnittswert):
- System environment variables
- Einstellungen für Apache & nginx
- Webinstaller ausführen & Nextcloud installieren
- Redis-Server installieren & Nextcloud config.php anpassen
- Cronjob anlegen & Nextcloud Einstellungen anpassen.
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.
[box='82','none']Nextcloud Downloads[/box]
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):
Ausrechnen der pm.max_children (Durchschnittswert):
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:
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-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.
# Add headers to serve security related headers
# Before enabling Strict-Transport-Security headers please read into this
# topic first.
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
# Remove X-Powered-By, which is an information leak
fastcgi_hide_header X-Powered-By;
# HTTP response headers borrowed from Nextcloud `.htaccess`
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Make a regex exception for `/.well-known` so that clients can still
# access it despite the existence of the regex rule
# `location ~ /(\.|autotest|...)` which would otherwise handle requests
# for `/.well-known`.
location ^~ /.well-known {
# The following 6 rules are borrowed from `.htaccess`
location = /.well-known/carddav { return 301 $scheme://$host/remote.php/dav/; }
location = /.well-known/caldav { return 301 $scheme://$host/remote.php/dav/; }
# Anything else is dynamically handled by Nextcloud
location ^~ /.well-known { return 301 $scheme://$host/index.php$uri; }
try_files $uri $uri/ =404;
}
# Enable gzip but do not remove ETag headers
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
deny all;
}
location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location ~ ^\/(?:updater|oc[ms]-provider)(?:$|\/) {
try_files $uri/ =404;
index index.php;
}
# Adding the cache control header for js, css and map files
# Make sure it is BELOW the PHP block
# Add headers to serve security related headers (It is intended to
# have those duplicated to the ones above)
# Before enabling Strict-Transport-Security headers please read into
# this topic first.
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
location ~ \.(?:css|js|woff2?|svg|gif|map)$ {
try_files $uri /index.php$request_uri;
add_header Cache-Control "public, max-age=15778463";
# Add headers to serve security related headers (It is intended
# to have those duplicated to the ones above)
# Before enabling Strict-Transport-Security headers please read
# into this topic first.
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
#
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
add_header Referrer-Policy no-referrer;
add_header X-Content-Type-Options nosniff;
add_header X-Download-Options noopen;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Permitted-Cross-Domain-Policies none;
add_header X-Robots-Tag none;
add_header X-XSS-Protection "1; mode=block" always;
# Optional: Don't log access to assets
access_log off;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg|bcmap)$ {
try_files $uri /index.php$request_uri;
}
Alles anzeigen
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.
apt install redis-server
systemctl status redis
Redis testen
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:
'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
'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.
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.
Kommentare
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.