Nextcloud Hub Optimierung auf einer Synology DiskStation mit DSM 6 [Update Juli 2021]

Im letzten Beitrag ging es darum Nextcloud auf der DiskStation zu installieren. Nach der Installation sollten aber noch einige Anpassungen gemacht werden, damit Nextcloud optimal läuft bzw. um die Sicherheit zu erhöhen. Außerdem können, je nach Umgebung, einige Fehlermeldungen auftauchen. Und genau darum geht es in diesem Beitrag.

Vorbereitung

Nextcloud ist auf der DiskStation installiert und läuft. Wie ihr Nextcloud auf einer DiskStation installiert, könnt ihr hier nachlesen.

Optimierung und Fehlerbehebung

Nach der Installation sind einige Anpassungen der Einstellungen notwendig. Einige davon werden euch sogar von eurer Nextcloud vorgeschlagen. Ihr findet diese Fehler- und Hinweismeldungen im Menü unter Einstellungen > Übersicht > Sicherheits- und Einstellungswarnungen. Da sich die DiskStation nicht immer wie ein normaler Linux-Server verhält, gilt es herauszufinden wo die Konfigurationsänderungen wirksam vorgenommen werden können und welche zusätzlichen Schritte erforderlich sind.

Nextcloud Hinweise und Warnungen
Meldungen und Warnungen von Nextcloud

PHP configuration option output_buffering must be disabled (NC 22.2.0)

Mit dem Update 22.2.0 ist mal wieder eine neue Meldung aufgetaucht. Diesmal ist sie aber glücklicherweise schnell behoben. Öffnet dazu in der Web Station das PHP-Profil eurer Nextcloud. Im Reiter Kern müsst ihr dann einfach nach output_buffering suchen und den Wert 0 eintragen. Nachdem Ihr das Profil gespeichert habt, ist die Meldung auch schon verschwunden.

Datenbank aktualisieren

Der genaue Wortlaut der Meldung hängt davon ab, welche Version von Nextcloud ihr installiert habt. Der Lösungsweg ist aber immer der selbe. Ihr müsst über die Kommandozeile Änderungen an der Datenbank ausführen. Ihr werdet mit hoher Wahrscheinlichkeit eine ähnliche Meldung nach jedem Update von Nextcloud erhalten. Das liegt daran, dass diese Änderungen bei bestehenden Datenbanken einige Zeit in Anspruch nehmen können und immer über die Kommandozeile zu erledigen sind. Daher sind sie nicht Teil der Installations- bzw. Updateroutine, die auch über den Browser aufgerufen werden kann.

Die Änderungen nehmt ihr mit den occ-Befehlen (Nextclouds Befehlssatz für die Kommandozeile) vor. Die notwendigen Befehle könnt ihr direkt in der Meldung ablesen. Die Hürde ist hier nur, diese richtig auf eurer DiskStation auszuführen.

Öffnet PuTTY und verbindet euch mit eurer DiskStation. Die Kommandozeile eures NAS kennt die occ-Befehle nicht, daher müsst ihr in euer Nextcloud-Verzeichnis wechseln, wo die occ-Befehle definiert sind.

cd /volume1/web/Nextcloud

Damit ihr die occ-Befehle nutzen könnt, braucht ihr aber noch den korrekten Benutzer (sudo -u http), die richtige PHP-Version (php73) und auch das Memory-Limit solltet ihr erhöhen (-d memory_limit=1024M), da der Standard-Wert zu niedrig ist.

Fehlende Indizes

Jetzt ist es an der Zeit die fehlenden Indizes zu ergänzen, nutzt dazu folgenden Befehl:

sudo -u http php73 -d memory_limit=1024M occ db:add-missing-indices

Big Int Kovertierung

Meldung in Nextloud:
“Einige Spalten in der Datenbank können zu big int konvertiert werden. Das Ändern von Spaltentypen kann bei großen Tabellen einige Zeit dauern. Deshalb muss die Konvertierung manuell durch den Befehl “occ db:convert-filecache-bigint” gestartet werden. Zur Konvertierung muss die Instanz offline sein. Einzelheiten dazu auf der zugehörigen Dokumentationsseite.”

Danach seht ihr eine Liste mit Spalten die betroffen sind. Welche das sind, hängt davon ab, welche Version ihr installiert haben bzw. von welcher auf welche Version ihr aktualisiert habt. Der Befehl, zum Konvertieren der Spalten, steht wieder im Hinweistext, damit ihr ihn auf der Kommandozeile eurer DiskStation ausführen könnt müsst ihr den Befehl weider etwas adaptieren:

sudo -u http php73 -d memory_limit=1024M occ db:convert-filecache-bigint

Fehlende Spalten

Es kann auch vorkommen, dass durch ein Update die Datenbank erweitert wird, auch das muss nachträglich erledigt werden. Die Meldung weist euch dann auf fehlende Spalten in der Datenbank hin. Der Befehl dafür lautet:

sudo -u http php73 -d memory_limit=1024M occ db:add-missing-columns

Fehlende Primärschlüssel

Meldung in Nextcloud:
“In der Datenbank fehlen einige Primärschlüssel. Aufgrund der Tatsache, dass das Hinzufügen von Primärschlüsseln bei großen Tabellen einige Zeit dauern konnte, wurden sie nicht automatisch hinzugefügt. Durch Ausführen von “occ db:add-missing-primary-keys” können diese fehlenden Primärschlüssel manuell hinzugefügt werden, während die Instanz weiter läuft.”

Gefolgt von eine Liste der betroffenen Tabellen. Welche das Sind. ist wieder Versionsabhängig. Der occ-Befehl steht wieder im Text und muss für die Kommandozeile nur angepasst werden:

sudo -u http php73 -d memory_limit=1024M occ db:add-missing-primary-keys

Wiederholt den Vorgang für jeden occ-Befehl den ihr in den Sicherheits- und Einrichtungswarnungen von Nextcloud findet.

PHP-Variablen anpassen

Damit auch größere Dateien über das Webinterface hochgeladen werden können, müssen einige PHP-Variablen angepasst werden. Auch der für Nextcloud zur Verfügung stehende Arbeitsspeicher sollte erhöht werden. Öffnet dazu in DSM die Web Station > PHP-Einstellungen und bearbeitet das PHP-Profil, das eure Nextcloud nutzt (ein virtueller Host und ein eigenes PHP-Profil für Nextcloud sind eben sinnvoll). Sucht im Reiter Kern nach der Variable memory_limit und weisen Sie mindestens 512 MB (als Wert 512M) zu. Mehr ist natürlich besser, allerdings hängt das auch davon ab wie viel RAM eure DiskStation besitzt und ob auch andere Prozesse auf eurem NAS laufen (die natürlich ebenfalls RAM benötigen). Für OnlyOffice werden übrigens 2 GB (als Wert 2G) empfohlen.

Sucht jetzt die Variablen post_max_size und upload_max_filesize und tragt dort einen hohen Wert (z.B: 16G) ein. Dabei handelt es sich nicht um Arbeitsspeicher, sondern um die Dateigröße, die ihr auf einmal hochladen könnt. Den Unterschied zwischen den beiden Variablen verrät euch Google, in den meisten Fällen reicht aber der selbe Wert bei beiden Variablen. Für den Upload großer Datenmengen verwendet man sowieso selten das Webinterface.

PHP-Variablen
Mehr RAM und größere Uploadgrenzen für Nextcloud

HSTS aktivieren/https-Umleitung

Habt ihr für die Installation meine Anleitung benutzt und habt euch an meine Empfehlung gehalten für Nextcloud einen eigenen virtuellen Host einzurichten, solltet ihr diese Meldung gar nicht erst erhalten. Falls doch, kontrolliert, ob ihr HSTS und HTTP/2 aktiviert habt. Falls ihr keinen virtuellen Host angelegt habt, könnt ihr jetzt einen anlegen. Wählt dazu in der Web Station virtueller Host und legt einen neuen Eintrag an.

  • Tragt den Hostnamen ein, unter dem ihr eure Nextcloud erreichen wollt. (Der Hostname muss existieren und auf eure DiskStation verweisen, mehr dazu in diesem Artikel.)
  • Wählt die Ports, für die der virtuelle Host gilt (im Normalfall 80/443).
  • Wählt als Dokument-Root den Nextcloud-Ordner (/web/Nextcloud).
  • Aktiviert unbedingt HSTS und HTTP/2, das sorgt dafür, dass alle http-Zugriffe auf eure Cloud auf https umgeleitet werden.
  • Wählt als Webserver Apache 2.4 und das zuvor angelegte PHP-Profil.
Nextcloud vHost
HSTS über den vHost aktivieren

Wollt, oder könnt ihr keinen virtuellen Host verwenden, könnt ihr HSTS auch global auf eurem Webserver aktivieren. Legt in PuTTY als root die Datei /etc/nginx/conf.d/http.hsts.conf an und fügt folgende Zeile ein:

add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";

Speichert und schließt die Datei und startet anschließend Nginx neu (synoservice -restart nginx).

PHP-Memory-Cache aktivieren

Der Memory-Cache verbessert die Leistung eurer Cloud. Seid ihr meiner Installationsanleitung gefolgt, habt ihr ihn bereits aktiviert und müsst ihn nur noch in der Nextcloud-Konfiguration eintragen. Habt ihr den Cache nicht aktiviert, könnt ihr das nachholen, indem ihr im PHP-Profil den Haken bei “PHP-Cache aktivieren” setzt.

Um den Cache in die Nextcloud-Konfiguration einzutragen, öffnet mit PuTTy die Datei /web/Nextcloud/Config/config.php und fügt am Ende der Datei (noch vor der schließenden Klammer) folgende Zeile ein:

'memcache.local' => '\\OC\\Memcache\\APCu',

Speichert und schließt die Datei.

Redis aktivieren

Redis verbesser das File Locking. Um Redis verwenden zu können, müsst ihr das Paket “Redis” auf eurer DiskStation installieren. Ihr findet es in der Community-Paketquelle. Ist Redis installiert und läuft, öffnet die Datei /web/Nextcloud/Config/config.php in PuTTY und tragt folgende Zeilen innerhalb der geschwungenen Klammern ein:

'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array
(
    'host' => '<lokale IP eures NAS>',
    'port' => '6379',
    'timeout' => '0',
    'dbindex' => '0',
),

Speichert und schließt die Datei.

Redis Paket
Redis findet ihr in der Community-Paketquelle
Redis konfigurieren
Redis in der Nextcloud-Konfiguration eintragen

Hintergrundaufgaben per Cron

Nextcloud erledigt viele Aufgaben über Hintergrundprozesse, diese müssen aber auch ausgeführt werden. Standardmäßig passiert das beim Laden einer Seite, sprich, wenn jemand das Webinterface öffnet. Tut das aber niemand, werden die Hintergrundprozesse nicht ausgeführt. Besser ist es, diese regelmäßig von eurer DiskStation ausführen zu lassen. Dazu verwenden wir den Aufgabenplaner. Öffnet in DSM die Systemsteuerung und dort den Aufgabenplaner. Legt eine neue Aufgabe (Erstellen > Geplante Aufgabe > Benutzerdefiniertes Skript) an.

Skript Aufgabenplaner
Der Aufgabenplaner kann eigene Shell-Kommandos und Skripte ausführen
Nextcloud Cron aufrufen
Ruft die Datei cron.php auf
  • Vergebt einen Namen.
  • Belasst den Benutzer root.
  • Unter Zeitplan legt ihr fest, dass die Aufgabe täglich alle 5 Minuten ausgeführt werden soll.
  • Es ist hilfreich sich per E-Mail benachrichtigen zu lassen (“Ausführungsdetails per E-Mail senden”) wenn die Aufgabe nicht richtig ausgeführt werden konnte (“Ausführungsdetails senden, wenn das Skript unnormal beendet wird”).
  • Unter “Benutzerdefiniertes Skript” tragt ihr folgende Zeile ein:
sudo -u http php73 /var/services/web/Nextcloud/cron.php

Bestätigt die neue Aufgabe mit Klick auf OK.

Cron-Probleme ab Nextcloud 21 beheben

Mit Nextcloud 21 sind bei einigen Usern Probleme bei der Ausführung des Cron und der occ-Befehle aufgetreten. Unter Umständen kommt es zu Fehlern wenn das PHP-Caching auf der Kommandozeile deaktiviert ist (was es standardmäßig auch ist, das oben erwähnte PHP-Memory-Caching gilt nur für den Webserver). Mit Nextcloud 21.0.3 hat man beschlossen den Cron einfach nicht mehr auszuführen wenn das Caching deaktiviert ist. Die allgemeine Anleitung das Caching (APCu) für die Kommandozeile (cli) zu aktivieren funktioniert auf einer DiskStation so wieder mal nicht. Die Lösung sieht folgendermaßen aus:

Erstellt über die Kommandozeile (z.B. mit PuTTY) die Datei /usr/local/etc/php74/cli/conf.d/user_settings.ini und fügt dort folgenden Inhalt ein:

extension = apcu.so

[apc]
apc.shm_size = 512M
apc.enable_cli = 1

Öffnet jetzt im Nextcloud-Webinterface Einstellungen > Grundeinstellungen > Hintergrund-Aufgaben und aktiviert die Option Cron. Wartet jetzt etwas mehr als 5 Minuten und ladet die Seite neu. Der Punkt neben der Überschrift muss grün sein und die letzte Ausführung weniger als 5 Minuten her sein.

Nextcloud Cron
Erfolgreich ausgeführte Hintergrundaufgaben

Upload-Probleme lösen/vorbeugen

Beim Hochladen von Dateien werden diese in Chunks aufgeteilt und in einem temporären Verzeichnis abgelegt und erst nach Abschluss des Uploads zusammengesetzt und an den Bestimmungsort verschoben. Dieses temporäre Verzeichnis kann auf der DiskStation Probleme verursachen, aber auch die sind schnell behoben. Legt über die Kommandozeile ein neues Verzeichnis in eurem Nextcloud-Datenverzeichnis an und passt die Rechte dafür an. Z.B.:

mkdir /volume1/NextcloudData/upload-tmp
chown http:http /volume1/NextcloudData/upload-tmp
chmod 750 /volume1/NextcloudData/upload-tmp

Öffnet das verwendete PHP-Profil (Web Station > PHP-Einstellungen) und wechselt in den Reiter Kern. Sucht die Variable upload_temp_dir und fügt den Pfad zum neuen Verzeichnis ein.

temporäres Uploadverzeichnis
Das Upload-Verzeichnis in den PHP-Variablen eintragen

Open_basedir-Ergänzungen

Öffnet das PHP-Profil für Nextcloud und fügt unter “PHP open_basedir benutzerspezifisch anpassen” die Pfade /dev/urandom, /proc/meminfo, /proc/cpuinfo und /proc/uptime hinzu (vergesst den Doppelpunkt zum Trennen einzelner Pfade nicht).

Mit Nextcloud 22.2.4 und Nextcloud 23 ist auch noch /sys/class/net/eth0 erforderlich.

Das fehlende PHP-Modul imagick

Habt ihr Nextcloud mit der neuesten Web Station und PHP 7.3 installiert, seht ihr den Fehler nicht mehr.

Synology hat nicht nur ein Paket für PHP 7.4 veröffentlich, sondern sich auch entschieden die Unterstützung für ImageMagick einzubauen. Daraus resultiert auch ein Update für PHP 7.3 und die Web Station. Aktualisiert eure Web Station und das PHP 7.3-Paket, danach öffnet ihr Web Station > PHP-Einstellungen markiert das PHP-Profil für eure Nextcloud und klickt auf Bearbeiten. Aktiviert jetzt unter “Erweiterungen” das Modul imagick. Die Meldung ist danach verschwunden.

Das Modul wird zur Erstellung von Favicons aus hochgeladenen Logos im Theming-Bereich verwendet. Außerdem wird das Modul von der Gallery-App benötigt, diese stellt damit verschiedene Formate, wie etwa RAW-Files dar. Habt ihr die Gallery-App und die Theming-App deaktiviert/nicht installiert, sollte die Meldung gar nicht aufscheinen.
Selbst mit Theming- und Gallery-App konnte man gut ohne imagick auskommen, die Warnmeldung hat dennoch viele gestört.

ImageMagick ist kein offizielles PHP-Modul und der Einsatz in Nextcloud ist umstritten, da es outdated ist und Sicherheitslücken aufweist. Leider ist es aber das einzige, das die oben beschriebenen Features ermöglicht. ImageMagick wird z.B. auch von WordPress genutzt. Imagick wird auch nicht von jedem Hosting-Provider unterstützt.

Standard-Telefonregion festlegen

Mit Nextcloud 21 kommt eine neue Meldung in den Sicherheits- & Einrichtungswarnungen hinzu:
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 ↗ der gewünschten Region hinzu.

Die Meldung ist recht schnell behoben. Öffnet einfach eure Nextcloud-Config und fügt in den geschwungenen Klammern folgenden Eintrag hinzu:

'default_phone_region' => 'AT',

Ersetzt AT durch DE, CH oder einen anderen, von euch gewünschten ISO-Ländercode.

Rechte anpassen

Während der Installation wurden die Rechte für den Nextcloud-Ordner und das Datenverzeichnis nur sehr locker gesetzt. Das ist während der Installation auch notwendig. Für den Betrieb sollten die Rechte aus Sicherheitsgründen aber so strikt wie Möglich gesetzt werden. Da ihr für ein Update die Rechte wieder lockern müsst, ist es ratsam, die Rechte über Skripte anzupassen. Legt also mit PuTTY auf eurer DiskStation eine Datei mit Endung .sh an. Fügt dann folgenden Code ein:

#!/bin/bash
ncpath='/volume1/web/Nextcloud'
ncdatapath='/volume1/NextcloudData'
htuser='http'
htgroup='http'
rootuser='root'

printf "chmod Files and Directories\n"
find ${ncpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ncpath}/ -type d -print0 | xargs -0 chmod 0750
find ${ncdatapath} -type f -print0 | xargs -0 chmod 0640
find ${ncdatapath} -type d -print0 | xargs -0 chmod 0750

printf "chown Directories\n"
chown -R ${rootuser}:${htgroup} ${ncpath}/
chown -R ${htuser}:${htgroup} ${ncpath}/apps/
chown -R ${htuser}:${htgroup} ${ncpath}/config/
chown -R ${htuser}:${htgroup} ${ncpath}/themes/
chown -R ${htuser}:${htgroup} ${ncpath}/updater/
chmod +x ${ncpath}/occ

printf "chmod/chown .htaccess\n"
if [ -f ${ncpath}/.htaccess ]
then
    chmod 0644 ${ncpath}/.htaccess
    chown ${htuser}:${htgroup} ${ncpath}/.htaccess
fi
    chown ${htuser}:${htgroup} ${ncpath}/.user.ini

Achtet bitte wieder auf die einfachen und doppelten Anführungszeichen. Ihr könnt das Skript jetzt mit folgendem Befehl ausführen:

sh /volumeX/Pfad/zum/Script/Betriebsberechtigungen.sh

Wollt ihr eure Nextcloud aktualisieren, könnt ihr die Rechte über das Skript aus diesem Artikel und dem neuen Skript vor und nach dem Update anpassen.

Probleme, die sich nicht oder nur eingeschränkt beheben lassen

Bisher konnten die Sicherheitswarnungen und Betriebsempfehlungen mit relativ wenig Aufwand beseitigt werden. Jetzt kommen wir aber zum unangenehmen Teil. Es gibt Meldungen, die sich auf der DiskStation derzeit nicht oder nur bedingt beheben lassen.

Das fehlende PHP-Modul imagick

Hierfür gibt es auf der DiskStation noch keine Lösung. ImageMagick steht als PHP-Modul nicht zur Verfügung und lässt sich auch nicht nachinstallieren. Es gibt zwar “ImageMagick” als Paket im Paketzentrum, allerdings handelt es sich hierbei um die Desktop-Version und nicht um das PHP-Modul. Allerdings könnt ihr diese Meldung normalerweise ignorieren. Das Modul wird zur Erstellung von Favicons aus hochgeladenen Logos im Theming-Bereich verwendet. Ihr könnt auch ohne das Modul das Theme verändern, nur eben keine Favicons generieren lassen. Außerdem wird das Modul von der Gallery-App benötigt, diese stellt damit verschiedene Formate, wie etwa RAW-Files dar. Habt ihr die Gallery-App und die Theming-App deaktiviert/nicht installiert, sollte die Meldung gar nicht aufscheinen.

ImageMagick ist kein offizielles PHP-Modul und der Einsatz in Nextcloud ist umstritten, da es outdated ist und Sicherheitslücken aufweist. Leider ist es aber das einzige, das die oben beschriebenen Features ermöglicht.

CalDAV- und CardDAV-URLs

Die Meldung “Ihr Webserver ist nicht richtig konfiguriert um “./well-known/caldav” (bzw. ./well-known/carddav) aufzulösen.” Erscheint nur dann, wenn ihr für Nextcloud keinen virtuellen Host konfiguriert habt. Da die, von Nextcloud vorgegebenen, Standardwerte für die URLs vom Document-Root ausgehen, Nextcloud aber in einem Unterverzeichnis liegt. Habt ihr einen virtuellen Host angelegt, ist für diesen das Unterverzeichnis der Root-Ordner und somit alles in Ordnung. Normalerweise ließe sich das Problem auf viele verschiedene Weisen lösen, indem die URL einfach um den Unterordner ergänzt wird. Aus bisher nicht bekannten Gründen funktioniert das aber auf den NAS-Geräten von Synology nicht. Euch bleibt also nur, einen virtuellen Host für Nextcloud einzurichten, oder Nextcloud direkt im Document-Root (/web) zu installieren. Ersteres bedeutet, ihr braucht einen Host (Subdomain) allein für Nextcloud, zweiteres bedeutet ihr könnt keine andere Webseite im Dokument-Root betreiben.

Fazit

Habt ihr alle Meldungen beseitigt (sofern sie sich beseitigen lassen) und habt ihr die Rechte angepasst, steht dem Betrieb eurer eigenen Cloud nichts mehr im Wege. Zumindest bis zum nächsten Update. Denn dann warten vermutlich neue Meldungen darauf von euch beseitigt zu werden.

Der Entwicklungszyklus von Nextcloud ist recht kurz und neben den regelmäßigen Updates, warten zwei Mal in Jahr neue Hauptversionen darauf installiert zu werden. Die Meldungen, die ihr in der Übersicht von Nextcloud erhaltet, hängen stark davon ab, welche Version ihr Installiert, ob ihr ein Update durchführt und welche Versionen ihr dabei ausgelassen habt und vorallem davon, wie euer Webserver bereits konfiguriert ist. Es kann daher gut sein, dass ihr Meldungen sehr, die mir noch nicht untergekommen sind. Sollte das der Fall sein, werdet ihr entweder in der Vorgängerversion dieses Artikels fündig oder ihr hinterlasst mir einen Kommentar.

Ähnliche Beiträge

88 thoughts on “Nextcloud Hub Optimierung auf einer Synology DiskStation mit DSM 6 [Update Juli 2021]

  1. Hallo Andreas,
    durfte nach einem Crash meine Nextcloud (CockerCloud) komplett neu machen und danke die wahnsinnigst für Deine Anleitung.

    Ich habe mir auch den Cron-Job auf der Synology eingerichtet. Hab mir das Ergebnis per Mail zuschicken lassen und bekomme diese Fehlermeldung:

    Aufgabe: CockerCloud
    Startzeit: Wed, 01 Jun 2022 11:27:57 GMT
    Stoppzeit: Wed, 01 Jun 2022 11:27:58 GMT Aktueller Status: 1 (Unterbrochen)
    Standardausgabe/Fehler:
    PHP Warning: PHP Startup: Unable to load dynamic library ‘mcrypt.so’ (tried: /usr/local/lib/php74/modules/mcrypt.so (/usr/local/lib/php74/modules/mcrypt.so: cannot open
    shared object file: No such file or directory), /usr/local/lib/php74/modules/mcrypt.so.so (/usr/local/lib/php74/modules/mcrypt.so.so: cannot open shared object file: No such
    file or directory)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library ‘mysql.so’ (tried: /usr/local/lib/php74/modules/mysql.so
    (/usr/local/lib/php74/modules/mysql.so: cannot open shared object file: No such file or directory), /usr/local/lib/php74/modules/mysql.so.so
    (/usr/local/lib/php74/modules/mysql.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 Could not open input file:
    /var/services/web/CockerCloudcloud/cron.php

    Die Nextcloud lässt auch nicht die Umschaltung auf CRON zu, sondern wechselt selbsttätig auf AJAX zurück.
    Habe die neuste Nextcloud 24.0.1 installiert, auf einer DS3615xs 6.2.3

    Weißt Du Rat bzw. hast eventuell eine Lösung?

    Viele Grüße
    Steffen

    1. Ich habe bei gleicher Konfiguration (DSM 7.1-42661 Update 2 mit Nextcloud 24.0.2) den gleichen Effekt:
      sudo -u http php74 /var/services/web/nextcloud/cron.php
      Meldung:
      OCP\HintException: [0]: Memcache \OC\Memcache\APCu not available for local cache (Is the matching PHP module installed and enabled?)
      Die Datei /usr/local/etc/php74/cli/conf.d/user_settings.ini habe ich wie empfohlen angelegt ….
      über Hilfe würde ich mich freuen!

      1. Hi Tim,
        ich hatte das selbe Problem.
        php74 wurde auf der Kommandozeile benötigt aber ich bekam immer den Fehler den du beschrieben hast.
        Nach gefühlt endloser Suche hat mir letztendlich das hier weitergeholfen: https://help.nextcloud.com/t/some-solutions-to-errors-on-a-synology-nas-installation-of-nextcloud/49901
        Anstatt php70 setzt man php74 und man muss halt die passende id rausfinden aber dann konnte ich endlich php74 benutzen.

        Ich hoffe das hilft jemandem weiter.
        VG
        Wenzel

        1. Ja, das hat mir weitergeholfen, Danke!

          Mein Cronjob-Befehl lautet nun:
          sudo -u http php74 -c /var/packages/WebStation/etc/php_profile/xxxxxxxxxxxxxxxxxxxxxxxxxxxx/conf.d/user_settings.ini -f /var/services/web/nextcloud/cron.php
          xxxxxxxxxxxxxxxxxxxxxxxxxxxx steht für die entsprechende php-id

    2. Ich hatte das gleiche Problem, d.h. NC meckert im 5-Minuten-Takt (cron!):

      PHP Startup: Unable to load dynamic library ‘mysql.so’ (tried: /usr/local/lib/php74/modules/mysql.so (/usr/local/lib/php74/modules/mysql.so: cannot open shared object file: No such file or directory) …

      Ich habe im /usr/local/etc/php74/cli/conf.d Verzeichnis gesehen, dass dort eine phpMyAdmin.ini-Datei auftauchte, die diese Module beinhaltet. Zu dem Zeitpunkt hatte ich das Synology-Paket phpMyAdmin laufen (normalerweise habe ich das deaktiviert). Sobald ich das Paket gestoppt habe, verschwand auch die Datei und es herrscht wieder Ruhe im Log. Cron läuft jetzt auch auf der CL ohne Fehler durch.

      Ich vermute, da phpMyAdmin ewig auf einer uralten Version von PHP basierte und erst vor nicht allzu langer Zeit auf PHP 7.4 umgestellt wurde, dass da noch irgendwelche Überbleibsel aus der Steinzeit sind. Das bestärkt mich in meinem Vorgehen, phpMyAdmin nur und nur so lange zu aktivieren, wie ich an der MariaDB herumbasteln will.

  2. Servus Andreas, vielleicht kannst du mir helfen 🙂
    Ich habe nur noch diese Fehlermeldungen.
    Ich habe die Beiträge hier zum Thema gelesen, aber ich komme nicht weiter.

    Es gibt einige Warnungen bei Deiner Systemkonfiguration.

    Dein Webserver ist nicht richtig konfiguriert, um “/.well-known/webfinger” aufzulösen. Weitere Informationen hierzu findest Du in unserer Dokumentation ↗.
    Dein Webserver ist nicht richtig konfiguriert, um “/.well-known/nodeinfo” aufzulösen. Weitere Informationen hierzu findest Du in unserer Dokumentation ↗.
    Dein Webserver ist nicht richtig konfiguriert, um “/.well-known/caldav” aufzulösen. Weitere Informationen hierzu findest Du in unserer Dokumentation ↗.
    Dein Webserver ist nicht richtig konfiguriert, um “/.well-known/carddav” aufzulösen. Weitere Informationen hierzu findest Du in unserer Dokumentation ↗.

    Ich hab auch das versucht. Geht auch nicht 🙁

    Es wird einen ebene höher /Volume1/web/ eine zusätzliche .htaccess benötigten die die Rewrite beinhaltet.
    Hier der Inhalt der .htaccess , die ———————– werden nicht benötigt
    ———————–
    RewriteEngine On

    RewriteRule ^\.well-known/host-meta /nextcloud/public.php?service=host-meta [QSA,L]
    RewriteRule ^\.well-known/host-meta\.json /nextcloud/public.php?service=host-meta-json [QSA,L]
    RewriteRule ^\.well-known/webfinger /nextcloud/public.php?service=webfinger [QSA,L]
    RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav/ [R=301,L]
    RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L]
    ———————–

  3. Hallo,
    vielen Dank auch von meiner Seite für dieses und die anderen Tutorials für Nextcloud auf einer Diskstation. Die meisten Punkte habe ich umsetzen können, allerdings bleiben dann doch einige Punkte die ich nicht lösen kann. Woran ich jetzt scheitere ist die Ausführung des Cron Jobs. Ich habe eine Aufgabe entsprechend der Hinweise angelegt, allerdings wird diese nicht ausgeführt. In der Mail die ich dazu bekomme steht der Hinweis:
    Standardausgabe/Fehler:
    sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
    sudo: a password is required
    Vom Terminal aus gestartet passiert leider auch nichts, manchmal werde ich noch nach dem Passwort gefragt, aber auch dann wird der Job wohl nicht ausgeführt und ich muss mit CTRL-C abbrechen.
    Meine Konfiguration ist DSM 7.0.1 und Nextcloud 23.0.2

    Gibt es dazu einen schon einen Lösungsvorschlag?

    Vielen Dank Ralf

    1. Na, da antworte ich mir doch direkt selbst. Der Aufgabe war nicht der Besitzer root zugeordnet. Nun läuft zumindestens der Cron Job.
      Grüße
      Ralf

  4. Haaaach, immer diese Shaise mit den occ Befehlen und wie die genau durchzuführen sind…
    Bloß gut, dass man sich Deine Seite gespeichert hat und so nicht lange rumsuchen muss.

    Fettes D A N K E wieder einmal!!!!!

    sudo -u http php73 occ….
    sudo -u http php73 occ….
    sudo -u http php73 occ….
    sudo -u http php73 occ….

    Ob ich mir das nochmal merke!

  5. Hallo Andreas,

    ich musste noch einen weiteren Eintrag bei open-basedir hinzufügen. Und zwar den Pfad je nach Netzwerkadapter, den es mir in der Weboberfläche Einstellungen > (Verwaltung) > System > Netzwerk anzeigt.

    In meinem Fall eth0

    Daher habe ich folgendes hinzufgefügt:

    /sys/class/net/eth0

    Ohne diesen Eintrag erschien im Log immer eine Fehlermeldung bei Aufruf des Menü-Punktes System
    Error: Invalid argument supplied for foreach() at / **pfad** /apps/serverinfo/lib/OperatingSystems/DefaultOs.php#149

    (**pfad**) wurde von mir editiert

    Quelle:
    https://github.com/nextcloud/serverinfo/issues/168

    VG Dominik

    1. Hallo Dominik,

      Danke das ist mir noch gar nicht aufgefallen.
      Danke für den Hinweis, ich habs im Artikel gleich ergänzt.

      Grüße
      Andreas

  6. Moin Andreas,

    danke für das Tutorial. Ich habe eine Frage zum Schritt:
    mkdir /volume1/NextcloudData/upload-tmp
    chown http:http /volume1/NextcloudData/upload-tmp
    chmod 750 /volume1/NextcloudData/upload-tmp

    Seitdem ich das ausgeführt habe ist der Ordner NextcloudData über die Filestation nicht mehr zu sehen. Über die Systemsteuerung>Freigegebene Ordner kann ich ihn finden, bei Berechtigungen ist alles leer. Ich kann meinem Adminkonto da Zugriff geben, dann erscheint der Ordner auch wieder in der Filestation, aber das bleibt nur ein paar Minuten so.

    In der Nextcloud sehe ich unter Einstellungn>Protokollierung pro Sekunde mehrere Warnungen mit dem Inhalt “Warnung| no app in context |Temporary directory chmod 750 /volume1/NextcloudData/upload-tmp is not present or writable.

    Soweit läuft aber alles, aber es ist mir ein Rätsel, wie ich das beheben kann.

    Grüße

  7. Tolle Anleitungen.
    Endlich kann ich auch mal etwas dazu beitragen:
    nginx wird seit DSM7 nicht mehr mit :
    synoservice -restart nginx
    sondern
    synosystemctl restart nginx

    neu gestartet…

  8. Nachdem ich mit Hilfe dieser Anleitung schon seit ein paar Jahren Nextcloud auf einer DS214play fehlerfrei betreibe, habe ich das Ganze jetzt auch auf meiner neuen DS920+ unter DSM 7.0 am laufen. Die Anleitung kann dazu ebenfalls verwendet werden. Funktioniert auch fehlerfrei.
    Ohne diese Seiten hätte ich das mit meinem Halbwissen nie geschafft. Danke dafür!

  9. Hallo zusammen,

    ich versuche verzweifelt den cron job auf meiner Synology einzurichten und bekomme es einfach nicht hin.

    Synology DSM7.0
    Nextcloud 21.0.2

    Wie oben beschrieben.

    Benutzer: root
    Befehl: sudo -u http php74 -f /volume1/web/Nextcloud/cron.php

    Kann mir jemand sagen, wo der Fehler liegt? Danke.

    1. Hallo,

      Wie genau lautet die Fehlermeldung. Du kannst im Aufgabenplaner einstellen, dass du für eine Aufgabe eine E-Mail-Benachrichtigung bekommst, darin steht dann die Fehlermeldung.

      Grüße
      Andreas

      1. Hallo Andreas,

        hier die Fehlermeldung. Noch als Hinweis. Ich benutze den PHP7.4

        Es macht aber kein Unterschied ob ich in den Befehl php73 oder php74 eintragen. Es hat etwas mit den Berechtigungen zutun.

        sudo -u http php73 /var/services/web/Nextcloud/cron.php

        Der Aufgabenplaner hat eine geplante Aufgabe abgeschlossen.

        Aufgabe: Nextcloud
        Start: Tue, 08 Jun 2021 22:37:35 GMT
        Ende: Tue, 08 Jun 2021 22:37:35 GMT
        Aktueller Status: 1 (Unterbrochen)
        Standardausgabe/Fehler:
        Console has to be executed with the user that owns the file config/config.php
        Current user id: 1023
        Owner id of config.php: 1026

        Gruß
        Koch

        1. Vielleicht hilft es ja:
          Hatte eben das gleiche Problem. Lösung keysensitiv -> nextcloud klein geschrieben, und es funzt

        2. Wie Peter schon sagt, auf die Groß/Kleinschreibung achten, das ist unter Unix sehr wichtig.
          Dabei handelt es sich um den Pfad zur Nextcloud-Installation, habt ihr den Nextcloud-Ordner umbenannt muss da natürlich auch hier erfolgen.

        3. Hallo Koch,

          versuche mal das:
          cd /volume1/web/Nextcloud
          chown -R http:http config

          Mit sehr hoher Wahrscheinlichkeit hast du die config.php mal editiert/hochgeladen…, auf jeden Fall scheint diese nicht dem http User zu gehören.

          Gruß
          Franz

  10. Hallo Andreas

    Super Anleitung für die Installation von Nextcloud 21 und die Optimierungen dazu. Leider kriege trotz versuchten zeitraubenden Anpassungen über das Forum folgende zwei Fehlermeldungen nicht weg:

    1) Einige Dateien haben die Integritätsprüfung nicht bestanden. Dabei handelt sich um einen INVALID_HASH bei – lib/private/Setup/MySQL.php, nachdem ich nach der erfolgreichen Installation von Nextcloud 21 die MySQL.php Datei wieder auf den Ursprung zurückgesetzt habe.

    2) Obwohl ich einen VHOST mit name.myds.me/nextcloud eingerichtet habe, erhalte ich folgende Fehlermeldungen, die ich bisher nicht wegbekommen habe:
    Dein Web-Server ist nicht richtig eingerichtet um “/.well-known/webfinger” aufzulösen. Weitere Informationen findest Du in der Dokumentation.
    Dein Web-Server ist nicht richtig eingerichtet um “/.well-known/nodeinfo” aufzulösen. Weitere Informationen findest Du in der Dokumentation.
    Dein Web-Server ist nicht richtig eingerichtet um “/.well-known/caldav” aufzulösen. Weitere Informationen findest Du in der Dokumentation.
    Dein Web-Server ist nicht richtig eingerichtet um “/.well-known/carddav” aufzulösen. Weitere Informationen findest Du in der Dokumentation.

    Kannst du mir bei den beiden Fehlermeldungen weiterhelfen?

    Besten Dank für deine Hilfe.

    Gruss Bruno
    —————–
    Meine Nextlcloud 21.0.2 Installation läuft auf einer Syno DS718+ mit DSM-Version 6.2.4-25556, mit Apache Version 2.4.43, PHP Version 7.4.9 und MYSQL Version 10.3.24

    1. Hallo Bruno

      1) Was du machen kannst, ist, dass du die MySQL.php aus der Nextcloud-zip-Datei rausnimmst und an den richtigen Ort kopierst und dann natürlich die Rechte anpasst.

      2) Der VHOST müsste aber auf name.myds.me lauten. Unterverzeichnisse (/nextcloud) solltest du beim VHOST nicht angeben, Oder meinst du damit, dass du die Domain name.myds.me auf /nextcloud zeigen lässt?
      Schau mal in die .htaccess im Nextcloud-Verzeichnis rein, dort sollten die well-known Einträge drinnen sein. Die dort angegebene URL muss auf deine Nextcloud zeigen und zwar 1:1. Rufst du deine Nextcloud über einen Unterordner auf, muss der dort mit angegeben sein. Rufst du sie ohne Unterordner auf, darf der dort nicht angegeben sein.

      Grüße
      Andreas

      1. Hallo Andreas, vielen Dank für die Tipps.

        Mit der MySQL.php aus der Nextcloud-zip-Datei hat es geklappt, den ersten Fehler zu eliminieren. Beim zweiten Fehler habe ich mich dann entschieden den bestehenden VHOST mydomain.myds.me/nextcloud anzupassen und eine neue Domain einzurichten nextcloud.mydomain.com wie du es bei der Installation von Nextcloud empfohlen hast. Damit verschwinden alle vier nervigen Fehlermeldungen auf einmal und die .htaccess-Datei musste nicht mehr angepasst werden.

        Viele Grüsse
        Bruno

      2. Hallo Andreas,
        falls jemand trotz VHOST Anpassung (ich habe gewollt eine Unterseite …/Nextcloud/index.php) die Fehler nicht weg bekommt:

        .htaccess im Verzeichnis /volume1/web öffnen (vorher Sicherheitskopie machen ;-))
        Inhalt einfügen / ergänzen / anpassen:

        Redirect 301 /ocm-provider /Nextcloud/ocm-provider
        Redirect 301 /ocs-provider /Nextcloud/ocs-provider
        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

        Seitdem läuft meine NC21.0.2 mit grünem Haken (Alle Überprüfungen bestanden.)

        Viele Grüße,
        Sebastian

      3. Servus, ich denke ich habe die richtigen well-known Einträge gefunden. (Pfad: /volume1/web/nextcloud)
        Aber welchen Pfad trag ich da ein ? ich habe nach deiner Anleitung aus dem Buch installiert.
        Ich hab die Einträge aus der Datei rein kopiert.

        Alle anderen Warnungen, habe ich durch deine Lösungsvorschläge weg bekommen
        wo füge ich die Standard-Telefonregion ein ?

        Ich entschuldige mich gleich für die vielen Fragen, ich bin leider ein richtiger Dummy in diesen Dingen.

        RewriteEngine on
        RewriteCond %{HTTP_USER_AGENT} DavClnt
        RewriteRule ^$ /remote.php/webdav/ [L,R=302]
        RewriteRule .* – [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
        RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
        RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
        RewriteRule ^remote/(.*) remote.php [QSA,L]
        RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* – [R=404,L]
        RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]
        RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* – [R=404,L]

  11. Hallo Andreas,

    seit dem Update auf die Ver. 21.0.1 scheint bei mir das PHP zu spinnen. Verwende ich PHV 7.3 dann bekomme ich die folgenden Fehlermeldungen:

    PHP Warning: PHP Startup: Unable to load dynamic library ‘mcrypt.so’ (tried: /usr/local/lib/php73/modules/mcrypt.so (/usr/local/lib/php73/modules/mcrypt.so: cannot open shared object file: No such file or directory), /usr/local/lib/php73/modules/mcrypt.so.so (/usr/local/lib/php73/modules/mcrypt.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
    PHP Warning: PHP Startup: Unable to load dynamic library ‘mysql.so’ (tried: /usr/local/lib/php73/modules/mysql.so (/usr/local/lib/php73/modules/mysql.so: cannot open shared object file: No such file or directory), /usr/local/lib/php73/modules/mysql.so.so (/usr/local/lib/php73/modules/mysql.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

    Verwende ich PHP 7.4 kann ich mich nicht mehr an der Nextcloud anmelden. Angeblich weil das ZIP-Modul nicht vorhanden ist. Habe aber das aktuelle Modul von Synology geladen und installiert (Ver. 7.4.9-0005).

    Kannst du mir weiterhelfen?

    Viele Grüße
    Steffen

    1. Hallo Steffen,

      Benutzt du irgendwelche Apps die länger nicht mehr aktualisiert wurden? mcrypt ist sein PHP 7.1 deprecated und wurde ersetzt, ich kann mir nicht vorstellen dass NC das noch nutzt.

      Wenn du dich bei PHP 7.4 nicht einloggen kannst, versuch mal die Erweiterung sodium im PHP-Profil zu aktivieren.
      Ich hab keine Ahnung wieso aber bei 2 Usern die sich mit PHP 7.4 nicht einloggen konnten hat das geholfen.

      Mein Verdacht wäre hier, dass eventuell die DSM-Version dran schuld ist. Ich selbst hab schon länger nicht mehr aktualisiert. Ich hab gehört dass User nach dem Update Probleme hatten, andere meinten wieder sie hätten keine.

      Grüße
      Andreas

      1. Hallo Zusammen,

        ich kämpfe aktuell mit dem Update von nextcloud v20 auf 22. (btw, @Andreas, Schritt 1, der Umzug des Daten-Ordners hat soweit funktioniert!, thx!)
        Hier bekomme ich unter anderem die gleiche Meldung. Abhilfe hat folgendes geschafft:

        “PHP 7.2 doesn’t come with mcrypt and mysql anymore since they’re both deprecated. But the problem is that in the ini file of phpMyAdmin they’re both still included.

        So from /usr/local/etc/php72/cli/conf.d/phpMyAdmin.ini remove the lines

        extension=mcrypt.so
        extension=mysql.so

        Save and you’re good to go….”

        Quelle:
        https://community.synology.com/enu/forum/1/post/138388

        1. Kommando zurück.

          Die Fehlermeldung (die Zeilen) kamen zwar im Ausführungsbericht des cron tasks in der Mail nicht mehr… Aber sobald ich occ Befehle mit php74 ausführen möchte in putty, kommen die Meldungen wieder…

          Der occ Befehl scheint jedoch zu funktionieren…

          Sorry 🙁

        2. nachdem ich folgenden Fehler alle 5 Minuten im Protokoll hatte, habe ich nochmal in der phpMyAdmin.ini Datei nachgesehen…
          Ich denke mich dunkel daran zu Erinnern, dass irgend eine App-Komponente in letzter Zeit geupdatet wurde. Seitdem liefert mir scheinbar der cron job wieder alle 5 Minuten diese Fehlermeldung:
          [PHP] Error: PHP Startup: Unable to load dynamic library ‘mysql.so’ (tried: /usr/local/lib/php74/modules/mysql.so (/usr/local/lib/php74/modules/mysql.so: cannot open shared object file: No such file or directory), /usr/local/lib/php74/modules/mysql.so.so (/usr/local/lib/php74/modules/mysql.so.so: cannot open shared object file: No such file or directory)) at Unknown#0

          at 2022-04-05T16:55:06+00:00

          nach dem Editieren der phpMyAdmin unter dem Pfad /usr/local/etc/php72/cli/conf.d/ wird die Fehlermeldung nicht mehr alle 5 Minuten ausgegeben…

          Evlt. hilft es ja trotzdem dem ein oder anderen… Evtl. auch dir Andreas, damit du dir einen Reim auf den Fehler machen kannst?

  12. Hallo Andreas, ich hätte noch den Vorschlag, die Open-basedir-Einträge um folgende zwei Einträge zu erweitern: /proc/cpuinfo und/proc/uptime. So wir unter Einstellungen/Systeminfo auch die CPU und die Laufzeit angegeben.

    Das Problem mit dem Memcache und dem Vollgelaufenen Speicher habe ich auch. Tests haben ergeben, dass der Speicher tatsächlich reserviert wird. Mal schauen, wann das gefixt wird.

    Viele Grüße und lieben Dank für deine super Anleitungen. Ich bin blind und kann diese, dank der super Texte, hervorragend umsetzen.

  13. Hallo Andreas,

    vielen Dank für die tollen Tutorials.

    Leider habe ich auch ein kleines Problem.
    Ich hab meine Nextcloud von 20.0.8 auf 21.0.0 geupdated und bin auch gleichzeitig auf PHP 7.4 umgestiegen. Das hat erstmal alles reibungslos funktioniert (dank deiner Anleitungen). Ich konnte dann aber leider Cron nicht mehr ausführen und auch keine occ-Befehle mehr. Es kam dann immer folgende Fehlermeldung:
    PHP Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 20480 bytes) in /volume1/web/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 133

    Dabei ist es egal ob ich PHP 7.4 oder 7.3 verwende. Ich hab das Memory-Limit erhöht, aber es kam immer wieder die Fehlermeldung. Wenn ich das Limit auf -1 setze passierte gar nichts mehr.
    Ich hab in verschiedenen Foren nach Lösungen gesucht und bei anderen hat es geholfen in den PHP-Profilen apc.enable_cli = 0 auf 1 zu setzen. Bei mir hat das leider nicht geklappt. Meine Zwischenlösung ist momentan den PHP-Memory-Cache in der Nextcloud config.php zu deaktivieren. Dann kann ich Cron etc. wieder ausführen.

    Hast du vielleicht noch eine Idee was ich machen könnte?

    Viele Grüße
    Hannes

    1. Hallo Hannes,

      Ich hab schon davon gelesen, im Release-Candidate von NC 21 gabs das Problem nicht, es scheint also ein Bug zu sein. Lösung kenn ich aber noch keine, Ich hoffe mit NC 21.0.1 wird das behoben.

      Grüße
      Andreas

        1. Ich hab das Problem auch, sowohl bei Version 21.0.1 als auch jetzt bei 21.0.2.
          In den PHP-Profilen apc.enable_cli = 0 auf 1 zu setzen bringt bei mir nichts. Den PHP-Memory-Cache in der config.php zu deaktivieren, hilft auch bei mir. – Danke für den Tipp!
          Ist schon eine Lösung absehbar?

        2. Ich habe jetzt schon einige Rückmeldungen bekommen, dass mit NC 21.0.1 alles wieder läuft. Auch ich habe mit 21.0.1 das Problem nicht.
          Mein command im Aufgabenplaner: sudo -u http php74 /var/services/web/mimir/cron.php
          In meinem PHP 7.4 Profil habe ich als memory_limit 4G eingetragen, apc.enable_cli habe ich aber weiterhin auf 0.

          Ich habe ansonsten nur noch diesen Tipp gefunden: “du musst das memory_limit in der Datei /usr/syno/etc/packages/WebStation/php70/conf.d/user_settings.ini erhöhen”

        3. In meinem PHP 7.4 Profil kann ich als memory_limit maximal 3G einstellen. Bei 4G macht Nextcloud eine Fehlermeldung (DS215J). Mit 3G ist aber alles gleich wie zuvor.
          Die Datei /usr/syno/etc/packages/WebStation/php70/conf.d/user_settings.ini ist bei mir (noch) nicht vorhanden. Wie sollte der Eintrag darin genau ausschaun?

        4. Hallo Stefan,

          die DS215j hat doch nur 512MB RAM verbaut und leeren RAM-Slot hat sie ja nicht oder?
          Da wunderts mich dass du 3G überhaupt nutzen kannst.

          Für die Datei musst du im Pfad /php70/ durch die von dir genutzte PHP-Version ersetzen z.B: php73, php 74 etc.

  14. Hi. Ich hab mal eine Frage. Bei mir läuft alles. Ich habe einen Virtuellen Host angelegt. HSTS aktiviert und trotsdem wird mir diese Meldung angezeigt.
    Können Sie mir da vielleicht helfen?

  15. Hallo Andreas, hallo liebe Mitleser,

    leider scheitere kläglich daran, die Optimierungsmaßnahmen zu Ende zu bringen – es verbleiben einige Sicherheits- und Einrichtungswarnungen, im Einzelnen:

    1) Cron Job Ausführung. Ich führe über die Synology ein Cron Job aus, der im Ordner der Nextcloud Installation angewendet wird (so mein Verständnis), allerdings scheint die Maßnahme nicht zu greifen, denn Nextcloud gibt eine Fehlermeldung aus.
    2) Einige Dateien haben die Integritätsprüfung nicht überstanden: Was ist der Hintergrund und wie behebe ich das?
    3) Es wurde kein PHP Memory Cache installiert: Nach meinem Verständnis würde ich das mit redis beheben, allerdings finde ich das Paket nicht in meinen Paketen bei Synology (dort gibt es Community Pakete, die das redis Paket umfassen sollten, leider taucht es dort nicht auf).
    4) Dieser Installation fehlen einige PHP Pakete: bcmath, gmp, imagick. Nach meinen Recherchen lässt sich imagick im Moment nicht für das Synology Setup umsetzen. Ist das richtig? Wie sieht es mit den anderen Paketen aus, wie bekomme ich die installiert/aktiviert?

    Ich schraube damit jetzt schon einige Zeit rum und komme einfach auf keinen grünen Zweig. Kannst Du/ sonst jemand hier mir einen Tipp geben?

    Gruß
    Ben

    1. Update: Ziff. 3 bekomme ich keine Fehlermeldung mehr (auch wenn ich redis immer noch nicht habe installieren können), Ziff. 4 habe ich hinbekommen (bis auf imagick, das scheint ja aber für Synology im Moment nicht behebbar zu sein).
      Zum Thema Nr. 1 komme ich leider überhaupt nicht weiter. Ich habe alle möglichen Varianten versucht, die ich sonst noch recherchieren konnte und habe auch webcron versucht. Eigenartigerweise scheint der Job irgendwann ausgeführt worden zu sein, denn auf einmal war das “Lämpchen” auf gelb und dann hieß es der letzte Job sei vor 5 Minuten gelaufen. Nur leider scheint die 5 minütige Wiederholung zu scheitern.
      Was das Thema 2) anbetrifft bin ich ähnlich ratlos. Hier kann ich so gar keine Anhaltspunkte finden.

    2. Weiteres Update:
      Ich habe übers Wochenende viel probiert und die Jungs vom Synology Forum genervt. Dabei ist einiges herausgekommen. Eins vorab: Es funktioniert jetzt (fast) alles:
      zu (1) Cron Job hat mich ewig aufgehalten und ließ sich am Ende über Anpassungen von crontab erledigen.
      zu (3) redis als Paket taucht nicht in der Paketquelle bei mir auf. Ich habe eine DS220+ und nach langer Diskussion im Synology Forum stellte sich heraus, dass die Architektur dieser DS nicht von redis unterstützt wird. Die Fehlermeldung betreffend PHP hat sich aber auch nach der Installation der PHP Pakete (siehe Ziff. 4) erledigt.

      Verbleibt nur noch das Thema (2): Auch da habe ich weitere Infos herausbekommen, allerdings hilft mir das noch nicht recht weiter. In der Nextcloud Hilfe (weiterführende Informationen) steht ein Beispiel, nach dem Dateien, die als “Extra File” aufgelistet werden, schlicht überflüssig sind. Wenn ich mir meinen Report anschaue, dann gibt es dort sicher 200 Einträge mit dieser Bewertung. Es kann doch nicht sein, dass die alle zu löschen wären, oder?

      1. Hallo,

        Welche Nextcloud-Version nutzt du? Ich kenn das Problem mit der fehlerhaften Integritätsprüfung in zwei Ausführungen, einmal wenn man vor der Nextcloud-Installation die MySQL-Datei bearbeitet hat (wegen der problematischen SQL Abfrage in Nextcloud 18 und 19) und dann gabs in älteren Versionen Probleme wo nach einem Update Dateien überflüssig wurden, diese aber durch das Update nicht gelöscht wurden. Beides sollte behoben sein. Natürlich kann sein dass ncoh irgendwo Altlasten herumliegen. Was für Files sind denn im Report?

        Das Problem mit Imagick wurde mittlerweile auch behoben sowohl das neueste PHP 7.3 als auch das 7.4 Paket haben Imagick integriert. Dazu muss auch die Web Station auf neuestem Stand sein.

        Grüße
        Andreas

        1. Hallo Andreas,

          herzlichen Dank für Deine schnelle Antwort. Installiert ist die Version 20.0.7.

          Die Liste ist lang, im Einzelnen:

          Results
          =======
          – core
          – EXTRA_FILE
          – @eaDir/index.html@SynoResource
          – @eaDir/index.html@SynoEAStream
          – @eaDir/core@SynoResource
          – @eaDir/config@SynoResource
          – @eaDir/updater@SynoResource
          – @eaDir/version.php@SynoResource
          – @eaDir/3rdparty@SynoResource
          – @eaDir/apps@SynoResource
          – @eaDir/.DS_Store@SynoResource
          – @eaDir/cron.php@SynoEAStream
          – @eaDir/Neuer Ordner@SynoResource

          Grüße Ben

        2. Hallo Ben,

          Also das @eaDir wird von der DiskStation erzeugt. Diese Ordner werden eigentlich von Indizierungsdienst angelegt um z.B. Vorschaubilder abzuspeichern. /web sollte eigentlich nicht indiziert werden, hast du da mal unabsichtlich etwas falsch eingestellt (Systemsteuerung > Indizierungsdienst)? Oder /web für was anderes genutzt?
          Jedenfalls kannst du diese Verzeichnisse löschen. Am besten über die Kommandozeile, bin mir gerade nicht sicher ob du Sie in der File Station sehen kannst.

          Grüße
          Andreas

        3. Hallo Andreas, ich springe jetzt mal in diese Ebene, weil ich unten nicht weiter kommentieren kann: Ich habe jetzt mal probeweise den Ordner “core/@eaDir” gelöscht per Terminal. Wenn ich nun dort nach dem Ordner suche ist er nicht mehr da – so weit so gut. Wenn ich mir aber nun den Fehlerbericht in Nextcloud anschaue (auch nach erneuter Prüfung), taucht dieser Ordner bzw. darin befindliche Inhalte immer noch auf! Irgendwie komme ich so nicht weiter. Hast Du eine Idee?

        4. Bitte entschuldige das Vollmüllen, Andreas. Das Problem hat sich durch das Update auf 20.0.8 erledigt. Der Integritätscheck verläuft nun ohne Ergebnis! Am besten löscht Du meine o.s. Einträge einfach – das ist hier glaube ich nicht sehr hilfreich für andere.

        5. Du kannst den Integritätscheck auf dem Kommandozeile mit occ neu anstoßen falls dir das nochmal passiert, natürlich passiert das auch bei einem Update.

  16. Hallo Andreas,
    meine NextCloud mit OnlyOffice lief super… Bis zu dem Augenblick, an dem ich das Update “Community Document Server” auf Version 0.1.9 im Browser ausgeführt habe.

    Wenn ich nun ein Doc mit OnlyOffice starten will, erhalte ich folgende Fehlermeldung, unabhängig davon, ob ich als Admin oder User eingeloggt bin:
    “ONLYOFFICE ist zurzeit nicht erreichbar. Bitte wenden Sie sich an Ihren Administrator”

    Was ist das los? – Welcher Zugriff muss gewährt werden?

    Jetzt schon herzlichen Dank und Grüße,
    Hauke

    1. Hallo,

      Nach dem Update von „Community Document Server“ muss man die libstdc++ Datei wieder rüberkopieren und die Rechte anpassen.
      Am besten man behält sich eine Kopie der Datei irgendwo auf der DS un kopiert Sie jedes mal nach dem Update. Für die Rechte kannst du das, in diesem Artikel erwähnte, Skript nutzen.

      Grüße
      Andreas

      1. Hallo Andreas,
        vielen Dank für den Hinweis. Ich habe Nexcloud noch einmal ent-zipt. Die libstdc++ scheint nicht zu Nextcloud zu gehören. Muss also zum DSM gehören.
        Wenn ich “libstdc++ für synology download” google, bekomme ich ganze Installationsanleitungen für “libstdc++.so.6”.
        Wie komme ich an diese eine Datei? (DSM 6.2.3-25426 Update 3)
        Vielen Dank schon jetzt,
        beste Grüße, Hauke

      2. Hallo Andreas,
        beim Schmökern bin ich auf einen Abschnitt in dem Blog zur Installation von OnlyOffice nach der NextCloud-Installation von dir gestoßen. Muss ich wie dort beschrieben, die Debian-Version holen, entpacken, Datei umbenennen etc?
        Dann sollte ich das hinbekommen.
        Beste Grüße, Hauke

        1. Hallo Hauke,

          Das ist die Methode, die ich damals bei meiner Recherche gefunden habe und meiner Meinung nach auch die einfachste. Das Kopieren und Rechte Anpassen ist zwar etwas umständlich, aber so oft wird der Community Document Server nicht aktualisiert. Sollte es einfachere Methoden geben, bin ich für jeden Hinweis dankbar.

          Grüße
          Andreas

      3. Hallo Andreas und interessierte,
        es hat geklappt. Um euch das Zusammensuchen der Stelle zu erleichtern:
        1.Hier https://blog.viking-studios.net/die-eigene-cloud-nextcloud-hub-installation-auf-einer-synology-diskstation-mit-dsm-6-2/ findet ihr unten bei “Installation OnlyOffice” den Hinweis, wie ihr an die libstdc++6 kommt (gehört zu Debian Linux). Dort steht auch, wo die Datei hin muss, nachdem ihr den Document Server aktualisiert habt.
        2. Unter der selben Adresse findet ihr auch (weiter oben) das Kapitel “Installation” und dort sind die beiden Kommandozeilen mit “chown” und “chmod” interessant. Ich habe sie nur auf das Verzeichnis mit der neuen libstdc++6 angewendet.

        Bleibt mir nur, dir Andreas, erneut herzlich zu danken!
        Beste Grüße, hauke

  17. Hallo Andreas, hallo Blog Leser,

    ich bin gerade dabei die Optimierungen vorzunehmen und finde leider das “redis” Paket nicht in der Synology Community. Auch sonst kann ich das Paket nicht auftreiben. Weißt Du/ wisst Ihr woran das liegt und wo ich das Paket ggf. alternativ beziehen kann?

    Gruß
    Ben

    1. Ergänzung: Jetzt taucht das Paket auf einmal auf, allerdings erhalte ich bei dem Versuch es zu installieren die Fehlermeldung das Paket könne nicht installiert werden, weil kein Zertifikat dafür vorhanden sei.

      1. Hallo Ben,

        Verwendest du schon DSM 7? Ansonsten würde ich eventuell die Paketquelle entfernen und neu hinzufügen. Ich konnte Redis problemlos auf meines DS215+ installieren und auf meiner DS218+ läufts sowieso schon.

        Grüße
        Andreas

  18. Hi, ich versuche gerade die Optimierungen mit Nextcloud 20 und PHP 7.3

    Bei dem command “sudo -u http php73 -d memory_limit=1024M occ db:add-missing-indices” kommt die Meldung
    “Current user id: 1023
    Owner id of config.php: 1024
    Try adding ‘sudo -u #1024’ to the beginning of the command (without the single quotes)
    If running with ‘docker exec’ try adding the option ‘-u 1024’ to the docker command (without the single quotes)”

    die Änderung im command funktioniert nicht. Kann mir jemand sagen, wie ich den Fehler behebe?

    1. habe meinen Fehler gefunden. Die Rechte Zuteilung war leider mangelhaft von mir.
      Mit deinem Script für die Installation hat es funktioniert

      1. Hi Nils, hi Andreas

        ich hatte diese Meldung auch, bin aber der Anweisung gefolgt und habe den Befehl entsprechend ergänzt. Das scheint dann auch geklappt zu haben. Wenn ich jetzt Deine Ausführungen lese, werde ich wieder stutzig. Wie kann ich überprüfen, ob der Befehl erfolgreich war?

        Gruß
        Ben

        1. Hallo Ben,

          Der Befehl war dann erfolgreich, wenn du in der Kommandozeile eine Ausgabe dazu bekommst, also was auf der Datenbank gemacht wird, und wenn die Meldung im Infobereich von Nextcloud verschwindet.

          Grüße
          Andreas

  19. Hallo,

    wie schaffe ich es nochmal, dass Nextcloud mir die CPU und den Arbeitsspeicher unter Einstellungen/System ausgibt? Ich denke, da ist noch ein Eintrag für OpenBaseDir notwändig oder? Bisher steht folgendes da:
    Betriebssystem: Linux 4.4.180+ x86_64
    Prozessor: Unknown Processor
    Speicher: -1.00 MB
    Server-Zeit: Wed Feb 10 00:28:51 CET 2021

    und etwas weiter unten:
    Speicher
    Informationen zum Arbeitsspeicher nicht verfügbar

    Vielen Dank im Voraus. Die Anleitungen versteht man auch als Blinder.

    1. Hallo Lars,

      Damit bekommst du den RAM /proc/meminfo bei Prozessor steht bei mir auch unknown Processor aber ich hab eine Auslastungskurve.

      Grüße
      Andreas

  20. Moin moin,
    zunächst erstmal riesen Dank für die hilfreichen und aktuellen Anleitungen.
    Als absoluter Newbie in dem Bereich, wäre ich ohne die völlig aufgeschmissen.
    Mit deiner Hilfe habe ich Nextcloud 19 bzw. jetzt 20 auf meiner ds1618+ mit DSM 6.23 erfogreich zum laufen gebracht.
    Nach der installation von redis in DSM stand ich allerdings ziemlich auf dem Schlauch, wie das modul nun in PHP aktiviert weden soll.
    Nach langem suchen habe ich folgende Lösung gefunden:
    (Scheint ab php 7.3 und grade umgestellt auf 7.4 einwandfrei zu funktionieren)

    In “/usr/local/etc/php7x/cli/conf.d/extension.ini” das modul hinzufügen:

    extension = redis.so

    Und in “/volumeX/@appstore/PHP7.x/misc/extension_list.json” unter dem “posix” Eintrag
    folgende Zeilen einfügen:

    “redis”: {
    “enable_default”: true,
    “desc”: “The phpredis extension provides an API for communicating with the Redis key-value store.”
    },

    PHP danach am besten erstmal neu starten.

    Jetzt sollte in der DSM webstation, bei den PHP-settings, redis als Erweiterung auftauchen.
    Da könnt ihr einfach ein Hächchen dran machen und mal checken ob’s läuft:

    php7x -r “if (new Redis() == true){ echo \”\r\n OK \r\n\”; }”

    Ein “OK” sollte zurück kommen.

    Danach dann weiter wie in der Anleitung oben und sich über eine wesentlich schnellere Nextcloud freuen.

    Quelle ist auf französisch, aber google hilft 😉
    https://digitalboxweb.wordpress.com/2020/02/01/redis-sur-nas-synology/

    Vielleicht ist das für den einen oder anderen ja hilfreich.
    Also besten Dank nochmal und weiter so!

    Viele Grüße,
    Iring

  21. Hallo Andreas,

    vielen Dank für das sehr gute Tutorial hier.

    Leider scheint es das redis-Paket für Geminilake (DS720+) noch nicht im Synocommunity-Repo zu geben. Ohne Redis macht Nextcloud aber nicht wirklich Spaß. Hast Du eine Idee? Docker?

    (Und ja, ich habe jetzt tatsächlich Nextcloud auf der DS installiert, weil Drive echt halbgarer Mist ist. Du hast ja so recht!)

    Beste Grüße
    Gerrit

    1. Hallo Gerrit,

      Docker wär eine Möglichkeit. Ich habe bisher nur wenig Erfahrung damit. Ich habe Nextcloud zwar über Docker installiert. Das geht ohne Probleme.
      Aber die Optimierung habe ich noch nicht geschafft. Ich hatte z.B. Probleme andere gemeinsame Ordner in Docker einzubinden und das Nachinstallieren und Konfigurieren von Paketen wie Redis habe ich noch nicht versucht. Ich weiß nur aus der Community, das es hier immer wieder Hürden gibt, da Synologys Docker nicht so funktioniert wie eine herkömmliche Docker-Installation. Machbar ist es aber schon.

      Ansonsten vielleicht mal in der Community nachfragen wie es mit einer neuen Version von Redis ausschaut.

      Grüße
      Andreas

  22. Hallo Andreas,
    sehr schöner Blog, hat mir immer wieder als Hilfestellung gedient, um NC auf dem Synology zu installieren,
    Bezüglich CalDAV- und CardDAV-URLs diese lassen sich auch bei nicht Verwendung einen vHost auflösen.
    Lösung hierzu:
    Es wird einen ebene höher /Volume1/web/ eine zusätzliche .htaccess benötigten die die Rewrite beinhaltet.
    Hier der Inhalt der .htaccess , die ———————– werden nicht benötigt
    ———————–
    RewriteEngine On

    RewriteRule ^\.well-known/host-meta /nextcloud/public.php?service=host-meta [QSA,L]
    RewriteRule ^\.well-known/host-meta\.json /nextcloud/public.php?service=host-meta-json [QSA,L]
    RewriteRule ^\.well-known/webfinger /nextcloud/public.php?service=webfinger [QSA,L]
    RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav/ [R=301,L]
    RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L]
    ———————–
    Gruß Alex

    1. Hallo Alex,

      Die .htaccess im Webroot ist eine der möglichen Lösungen, die hat aber auf Synology bei vielen Usern in der letzten Zeit nicht funktioniert. Bei mir hat sie nur zur hälfte funktioniert. Ich konnte keine vernünftige Erklärung finden, warum die .htaccess das Problem nicht gelöst hat, der Fehler wurde bei Synology vermutet. Wenn die Lösung jetzt wieder funktioniert wäre das natürlich großartig.

      Grüße
      Andreas

  23. Hallo,

    sehr gute Anleitung. Hat mir super geholfen.

    Aber im Bereich des Cron müsste der Befehl doch
    sudo -u http php73 -f /var/services/web/Nextcloud/cron.php
    lauten? (-f ?)

    Gruß und weiter so. Michae

    1. Hallo Michael,

      Bei mir funktionierts ohne dem -f und auch in anderen Quellen konnte ich das -f nicht finden.
      Schaden sollte es aber auch nicht und wenn, kannst du dich ja im Fehlerfall benachrichtigen lassen.

      Grüße
      Andreas

  24. Ich habe nun php 7.4 von der Synology Webseite heruntergeladen und manuell installiert und in der WebStation eingebunden. Leider kann ich nun nicht mehr über den Browser auf die Nextcloud zugreifen. Ich bekomme die Fehlermeldung, dass die PHP-Module zip und zlib nicht installiert sind. Wie kann ich die beiden Modul nachträglich installieren?
    Selbst der Wechsel auf das vorher verwendete php 7.3 hat nichts gebracht. Kann jemand bei dem Problem helfen?

    1. Hallo,

      Ja das ist wirklich ärgerlich. Wie hast du auf PHP 7.3 gewechselt? Hast du generell für PHP 7.4 ein neues PHP-Profil angelegt oder im bestehenden Profil die PHP-Version geändert?.

      Wenn du nur die PHP-Version geändert hast, ändere SIe zurück auf PHP 7.3 und aktiviere dann wieder die notwendigen PHP-Module.
      Wenn du ein neues PHP-Profil angelegt hast sollte es kein Problem geben, falls doch, leg die noch ein neues Profil an und wähl die PHP 7.3 Version, richte dann das Profil so ein wie in meiner Installationsanleitung beschrieben.

      Bei mir hat es geklappt, wieder zurück zu wechseln.

      Grüße
      Andreas

      1. Vielen Dank, Andreas, das war der richtige Tipp.

        Ich hatte nach dem Zurückwechseln auf PHP 7.3 nicht mehr alle Module aktiviert. Nachdem ich die fehlenden angehakt hatte, lief auch alles wieder normal.

        Viele Grüße
        Helmut

        1. Ich habe übrigens ein Support-Ticket wegen zip erstellt und auch schon eine Antwort erhalten. Die Schuld liegt hier nur teilweise bei Synology, mit PHP 7.4 wurde die Art geändert, wie man das zip-Modul nutzt. Das ist in den Release-Notes nicht sofort ersichtlich. Synology muss da also noch was umbauen. Sie sind bereits dran aber wissen noch nicht wann zip wieder kommt.

  25. Moin,
    vielen Dank für das Tutorial.
    Heute ist ja auch php7.4 mit dem imagick Modul erschienen (dafür ist das zip Modul nicht mehr standardmäßig dabei -.-).

    Müssen die Rechte im ncdatapath nach einem Update auch wieder mit dem Skript unter “Rechte anpassen” geändert werden? Das dauert immer einige Zeit und vor der Installation ändere ich sowieso nur das Webverzeichnis auf 777.

    Gruß

    1. Hallo,

      Hast du PHP 7.4 schon im Paket-Zentrum? Ich noch nicht und konnte dazu auch keine Informationen finden.

      Du hast Recht, der Teil mit dem Data-Part kann nach dem ersten ausführen aus dem Skript entfernt werden. Ja es dauert etwas länger aber das habe ich noch nicht als störend empfunden. Ich werde den Artikel mit einem Hinweis ergänzen.

      Grüße

      1. Moin,

        im Paketzentrum sind PHP und die Webstation noch nicht, ich habe sie direkt über die Synology Website heruntergeladen und dann über das Paketzentrum manuell installiert.

        Alles klar, dann nehme ich den Teil aus dem Skript raus.

        1. Hallo Christian,

          Keine Ahnung was Synology da getan hat aber zumindest lässt sich imagick nicht in der WebStation aktivieren. Vielleicht meint Synology mit “support for imagick” das jetzt imagick mit viel Aufwand per Hand installiert werden kann. Aber zumindest in der Community konnte ich noch nichts neues dazu finden. ABer ich werde die Augen offen halten.

          Gruß
          Andreas

        2. Also bei mir hat es auf Anhieb funktioniert und die Fehlermeldung in nextcloud ist auch weg.

          Hast du die Web Station bereits auf die 2.1.9-0153 geupdatet?

        3. Du hast ja dir ja die Web Station direkt von Synology geholt. Ich seh grad, auch PHP 7.3 hat ein kleines Update bekommen (das von Christian angesprochene), allerdings wurde auch das noch nicht über das Paket Zentrum ausgeliefert.
          Also scheinbar ist mit dem kommenden Update auch das erledigt.

          Interessant finde ich gerade eher die Tatsache das Synology Pakete offiziell herausgibt, diese aber nicht über das Paket Zentrum verfügbar sind. Eventuell gibts auch hier eine Verteilung in Wellen.

Schreibe einen Kommentar zu Nils Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert