Nextcloud 18 unter Plesk installieren

Ab dem 21.04.2020 bis voraussichtlich Ende Mai, gibt es nur eingeschränkten Support.
Leider wurde der Release von Nextcloud 19 auf den 02.06.2020 verschoben.

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.

Upgrade von Nextcloud 17 zu Nextcloud 18

Web basiertes Upgrade

Es ist möglich das Upgrade über den integrierten Updater zu starten. Hierfür muss jedoch der Release Channel auf Beta geändert werden. Anschließend sollte das Upgrade durchführbar sein. Nach dem Upgrade müssen lediglich fehlende Indizies gefixt werden. Hier gibt es auch zwei Möglichkeiten, entweder es wird via SSH die CLI genutzt, oder das Plugin OCC Web.


Bash: SSH CLI
sudo -u ***PLESK NUTZER*** php occ db:add-missing-indices

*** PLESK NUTZER*** = Systemnutzer Plesk der Domain

Code: PLUGIN: OCC WEB
db:add-missing-indices

Manuelles Upgrade

How to upgrade — Nextcloud latest Administration Manual latest documentation


Hier werden alle Schritte aufgezeigt, die nötig sind um das Update ohne den Updater durchzuführen.

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.enable=1
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

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. Hier angekommen, müssen Sie das build-essential sowie das tcl wget Paket herunterladen und installieren. Diese zwei Pakete werden für die weiteren Schritte benötigt.


Code: Schritt 1
apt-get install build-essential
apt-get install tcl wget


Code: Schritt 2
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable/
make distclean
make
make test
make install


Code: Schritt 3
cd utils/
./install_server.sh


Code: Schritt 4
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf && sysctl -p
echo never > /sys/kernel/mm/transparent_hugepage/enabled


Code: Schritt 5
systemctl start redis_6379
2. # systemctl status redis_6379

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.


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.


Anschließend kehren Sie in die Nextcloud Verwaltung zurück und gehen 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

Hallo mein Name ist Mark und ich bin IT-Spezialist im Fachbereich der IT-Administratoren. Nicht nur Beruflich sonder auch in meiner Freizeit, beschäftige ich mich mit IT.

Mark Team

Kommentare