Die eigene Cloud: Nextcloud Optimierung auf einer Synology DiskStation mit DSM 6 [Update: Mai 2019]

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.

Hinweis: Dieses Tutorial funktioniert auch ab Owncloud 8 und 9 sowie für Nextcloud 9.x und 10.x. Je nach Version können kleine Unterschiede auftreten, bei neuen Punkten steht die Version dabei, ab wann diese Auftreten. Meldungen von älteren Versionen treten gegebenenfalls nicht mehr auf. Das hängt davon ab welche Version ihr zuerst Installiert und wie aktuell eurer System ist.
Aktuelle Version: 16

Update: Mai 2019 – Weitere Einrichtungshinweise von Nextcloud 16 hinzugefügt.
Update: April 2019 – Weitere Einrichtungshinweise von Nextcloud 13 – 15 hinzugefügt.
Update: Jänner 2019 – Info zur Nextcloud 15 (imagick) hinzugefügt.
Update: 9. August 2017 – Seit Version 12.0 nutzt Nextcloud PHP opcache, daher kommt es zu einer neuen Einrichtungswarnung. Mehr dazu hier
Update: 12. Juli 2017 – Nextcloud funktioniert auf der DiskStation mittlerweile auch halbwegs gut mit Apache 2.4 und PHP 7. Ladet die Pakete Apache 2.4 und PHP 7 herunter. Nach der Installation von Nextcloud könnt ihr unter Web Station -> PHP-Einstellungen -> Erweiterungen -> HTTP Backend Server und PHP auf die neuen Versionen setzen. Deinstalliert die alten Pakete nicht, derzeit werden sie noch für das Update der Nextcloud benötigt.

Nextcloud 15, PHP >7.0 und imagick

Nextcloud 15 kann schon installiert werden und läuft auch, ihr bekommt aber im Adminbereich die Meldung, dass das PHP-Modul imagick nicht aktiviert wurde.
Die Sache sieht folgendermaßen aus: imagick ist im PHP 7.0-Paket von Synology nicht enthalten. Eine Nachinstallation gestaltet sich als schwierig, da das Modul für die DiskStation extra kompiliert werden müsste. Das Paket für 7.0 wird auch nicht mehr aktualisiert. PHP 7.0 selbst ist eol. Es gibt zwar mittlerweile PHP 7.2, allerdings ist imagick immer noch nicht verfügbar.

Das Modul wird für 2 Dinge gebraucht, ersten im Theming um aus dem Logo ein favicon zu generieren und 2. für die Gallery-App. Ihr könnt das Theming auch ohne imagick verwenden, habt dann nur eben kein favicon. Die Gallery-App habe ich nicht in Verwendung, daher kann ich nicht sagen, ob sie ohne imagick läuft. Habt ihr sie nicht aktiviert, könnt ihr die Meldung also getrost ignorieren.

Der Einsatz von imagick wird in der Nextcloud-Community heftig diskutiert, da es als unsicher gilt und auch nicht mehr aktualisiert wird, allerdings gibt es bisher auch keine Alternative dafür. Ob es demnächst wieder entfernt wird, steht noch nicht fest.

Vorbereitung

Nextcloud ist auf der DiskStation installiert und läuft.

Optimierung und Fehlerbehebung

Zuerst loggen wir uns in das Webinterface von Nextcloud ein und wechseln in das Administrator-Menü, dort führt Nextcloud selbst einige checks aus und teilt uns mit welche Fehler bestehen und wo noch Optimierungspotential besteht.

Nextcloud Sicherheitswarnungen
Nextcloud Sicherheitswarnungen im Administrationsmenü

Die Warnungen die angezeigt werden hängen davon ab wie Nextcloud installiert wurde bzw. welche Konfigurationen schon vorher am Webserver durchgeführt wurden. Ich werde auf die gängigsten Meldungen eingehen und wie man sie beheben kann. Noch eine kleine Anmerkung, diese Warnungen bedeuten nicht das Nextcloud nicht funktioniert, sie deuten lediglich auf Sicherheitsrisiken und mögliche Performanceoptimierungen hin.

Hinweis: Änderungen an Konfigurationsdateien und Rechten sollten immer über putty oder WinSCP erfolgen. Erstens trägt der DSM-Texteditor immer den root als Besitzer der bearbeiteten Datei ein und zweitens sind nicht alle User und Gruppen in der Rechteauswahl der DSM verfügbar.

Datenverzeichnis

Solltet ihr euch an diese Anleitung oder an die Nextcloud-Dokumentation gehalten haben, solltet ihr diese Meldung nicht zu Gesicht bekommen. Habt ihr aber keinen eigenen Ordner für eure Daten angegeben nutzt Nextcloud den Standardordner data der dann im web-Verzeichnis eurer DiskStation liegt. Die Meldung „Dein Datenverzeichnis und deine Dateien sind wahrscheinlich vom Internet aus erreichbar.“ weist euch auf diesen Umstand hin. Natürlich kann jetzt der Zugriff auf den data-Ordner einschränken, am besten ist es aber, die Dateien aus dem web-Verzeichnis herauszunehmen.

HSTS

Diese Meldung wird euch mit ziemlicher Sicherheit begegnen: „Der ‚Strict-Transport-Security‘ HTTP-Header ist nicht auf mindestens „15768000“ Sekunden eingestellt. Um die Sicherheit zu erhöhen, empfehlen wir das Aktivieren von HSTS, wie es in unseren Sicherheitshinweisen erläutert ist.“
Dieses Problem zu beheben ist etwas tricky. Da seit DSM 6 ngingx als Standard-Webserver verwendet wird, muss man etwas suchen bis man die richtige Stelle gefunden hat um HSTS zu aktivieren. In DSM 5 gab es noch eine Option die man aktivieren konnte. An dieser Stelle geht ein Dankeschön an FalkenaugeMihawk und das deutsche Synology-Forum für diese Lösung.

  1. Verbindet euch über SSH mit eurer DiskStation, loggt euch mit euren Administrator ein.
  2. Erlangt root Rechte mit sudo su – und erneut dem Passwort.
  3. Erstellt eine neue Datei in /etc/nginx/conf.d mit dem Namen „http.*.conf“ (den Stern ersetzt durch einen Namen der euch logisch erscheint) und öffnet diese (z.B. Kommando vi /etc/nginx/conf.d/http.hsts.conf).
  4. Fügt folgende Zeile ein: add_header Strict-Transport-Security „max-age=15768000; includeSubDomains; preload;“;
  5. Datei speichern und schließen.
  6. nginx Config neu laden lassen mit nginx -s reload
HSTS im nginx aktivieren
HSTS im nginx aktivieren

Alternativ kann man einen virtual Host einrichten und dort HSTS aktivieren.

Solltet ihr Nextcloud auf einem Apache laufen haben (entweder noch unter DSM 5 oder ihr habt den Apache manuell ausgewählt) dann fügt folgenden Textblog in die Datei /volumeX/web/Nextcloud/.htaccess ein:

Alternativ könnt ihr auch hier wieder einen virtual Host anlegen.

Memcache

Auch die nachfolgende Meldung liest man recht häufig.

Memory-Cache Warnung
Memory-Cache Warnung im Administratormenü

Diese Meldung lässt sich beheben, indem man eine der 4 möglichen Memory-Cache-Varianten aktiviert. Die DiskStation bietet glücklicherweise 2 davon an: APC und APCu. Um den Memory-Cache zu aktivieren loggt euch in den DSM ein. Öffnet über das Menü den Webserver und geht auf PHP Einstellungen, dort hakt ihr „PHP Cache aktivieren“ an und speichert die Änderung ab.

PHP Cache aktivieren
PHP Cache aktivieren im DSM

Jetzt müsst ihr noch die Nextcloud-Konfigurationsdatei bearbeiten.

  1. Verbindet euch über SSH mit eurer DiskStation, loggt euch mit euren Administrator ein.
  2. Erlangt root Rechte mit sudo su – und erneut dem Passwort.
  3. Öffnet die Nextcloud-Konfigurationsdatei mit vi /volumeX/web/Nextcloud/config/config.php
  4. Fügt folgende Zeile innerhalb der Klammern hinzu: ‚memcache.local‘ => ‚\\OC\\Memcache\\APCu‘,
  5. Speichert und schließt die Datei.
Nextcloud config.php
Nextcloud config.php

PHP Opcache

Seit 12.0 nutzt Nextcloud PHP Opcache. Diese PHP-Erweiterung soll für eine höhere Geschwindigkeit von Nextcloud sorgen. Ist Opcache nicht konfiguriert, kann man im Admin-Menü folgende Meldung sehen:

The PHP Opcache is not properly configured. For better performance we recommend to use following settings in the php.ini:
opcache.enable=On
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Wie die Meldung schon sagt, wird Opcache normalerweise in der php.ini konfiguriert. Auf der DiskStation läuft das etwas anders. Es gibt mehrere php.ini und Änderungen sind oft nicht wirksam, bzw. werden sie bei Updates wieder überschrieben. Noch dazu hat sich ein kleiner Fehler in die Meldung eingeschlichen, es muss heißen opcache.enable=1 und nicht On.
Diesmal brauch ihr auch keine Konsole. Öffnet im DSM die Web Station, geht dort auf „PHP Einstellungen“. Wählt die PHP-Version, die ihr für Nextcloud verwendet und öffnet dann „Erweiterte Einstellungen“. Im Tab „Erweiterungen“ seht ihr eine Liste mit allen Variablen die ihr editieren könnt. Scrollt runter, bis ihr zu den opcache-Enträgen kommt und tragt dort die vorgeschlagenen Werte ein (1 statt On nicht vergessen). Die Werte die von Nextcloud nicht erwähnt werden, lasst ihr unverändert.
Startet die DiskStation oder zumindest den Webserver neu, die Meldung sollte dann verschwunden sein.

imagick

Seit Version 15:

Hierfür gibt es auf der DiskStation noch keine Lösung. Es gibt zwar imagemagick als Paket, leider hilft es nicht dieses zu installieren oder gar in PHP zu konfigurieren. 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 für die neueste Version der Gallery-App benötigt, diese kann jetzt auf RAW-Files darstellen. Verwendet ihr die Gallery-App nicht, braucht ihr das Modul nicht.

ImgaeMagick 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. Mit etwas Glück, wird es in einem der nächsten Releases entfernt https://github.com/nextcloud/server/issues/13099.

Redirects

Seit Version 15.0.5:

Dieser Punkt ist etwas schwierig, nicht jeder sieht diese Meldung, außerdem gibt es verschiedene Lösungen die aber nicht für alle funktioniert haben. Ich versuche einige Lösungen aufzulisten, da ich selbst die Meldung nicht gesehen habe kann ich auch nicht sagen welche bei mir geholfen hat.

Für die provider-Meldung sollte es reichen im /web-Verzeichnis eine .htaccess anzulegen mit folgendem Inhalt:

Habt ihr schon eine .htacces, ergänzt die Einträge einfach.

Für die Meldung zu caldav/carddav sollte es reichen im Installationsordner eurer Nextcloud (/web/nextcloud) in der .htaccess folgende Einträge hinzuzufügen:

Leider funktioniert diese Lösung nicht bei jedem.
Redirects für carddav und caldav

Das funktioniert bei vielen aber nicht, alternativ könnt ihr auch versuchen in /etc/apache2/sites-available/nextcloud.conf folgende Einträge hinzuzufügen:

Die URL müsst ihr an eure eigene anpassen. Je nachdem ob ihr für Nextcloud einen vhost verwendet oder nicht, kann eine andere Lösung erforderlich sein. Im Internet und unter help.nextcloud.com findet ihr noch weitere Lösungsvorschläge.

4-Byte-Zeichen

Seit Version 15.0.6:

  • MySQL wird als Datenbank verwendet, unterstützt jedoch keine 4-Byte-Zeichen. Um beispielsweise 4-Byte-Zeichen (wie Emojis) ohne Probleme mit Dateinamen oder Kommentaren verarbeiten zu können, wird empfohlen, die 4-Byte-Unterstützung in MySQL zu aktivieren. Für weitere Details lesen Sie bitte die Dokumentationsseite hierzu.

Datenbank umstellen

  1. Verbindet euch via SSH (putty) mit eurer DiskStation.
  2. Legt eine neue Datei mit folgendem Befehl an:

    Nutzt ihr noch MariaDB5, lasst das 10 im Pfad weg.
  3. Fügt folgende Zeilen in die Datei ein:
  4. Im Paketzentrum deaktiviert und aktiviert ihr MariaDB wieder.
  5. Im phpMyAdmin (oder alternativ über die Kommandozeile) führt ihr folgendes SQL-Statement aus:

    Heißt eure Nextcloud-Datenbank anders, verwendet den richtigen Namen statt nextcloud.

Eure Datenbank unterstützt jetzt 4Byte-Zeichen, jetzt müsst ihr noch die bestehenden Einträge in den Tabellen aktualisieren.

Tabellen reparieren

  1. In der Kommandozeile wechselt in den Ordner eurer Nextcloud-Installation damit ihr die occ-Befehle ausführen könnt.
  2. Führt folgenden Befehl aus:
  3. Jetzt noch den Reperatur-Vorgang starten:

    Der Vorgang kann einige Zeit dauern und sollte für jede Tabelle der Nextcloud-Datenbank folgenden Output erzeugen:

    Hier werden die Tabellen an die durchgefühten Änderungen angepasst.
    Repair-Vorgang

Die Hinweismeldung ist jetzt verschwunden.

PHP memory_limit

Seit Version 16:

Nach Update auf 16.0.x erhaltet ihr die Meldung „Das PHP Speicherlimit liegt unter dem empfohlenen Wert von 512MB.“
Diesen konnte man früher zusammen mit der maximalen Uploadgröße im Adminbereich einstellen, die Werte wurden in der .htaccess abgelegt. Die entsprechende Option ist aus dem Adminbereich und der .htaccess verschwunden. Ein manuelles Eintrage hilft nicht. Die Lösung ist aber denkbar einfach.

  • Loggt euch im DSM ein.
  • Öffnet die WebStation und geht dort auf PHP-Einstellungen.
  • Wählt das Profil aus, dass ihr für eure Nextcloud verwendet (falls ihr mehrere habt).
  • Geht auf Bearbeiten und wählt dann den Tab Kern.
  • Sucht jetzt nach „memory_limit“ und tragt dort mindestens „512M“ ein, noch besser ist „1G“ oder „2G“, je nachdem wie viel RAM eure DS hat.
  • Sucht auch gleich nach „upload_max_filesize“ und „post_max_size“ und tragt dort ebenfalls „1G“ ein. Diese beiden erzeugen zwar keine Meldung im Adminbereich, konnen aber ebenfalls nicht mehr dort eingestellt werden.

Fehlende Indizes

Seit Version 16:

In der Datenbank fehlen einige Indizes. Auf Grund der Tatsache, dass das Hinzufügen von Indizes in großen Tabellen einige Zeit in Anspruch nehmen kann, wurden diese nicht automatisch erzeugt. Durch das Ausführen von „occ db:add-missing-indices“ können die fehlenden Indizes manuell hinzugefügt werden, während die Instanz weiter läuft. Nachdem die Indizes hinzugefügt wurden, sind Anfragen auf die Tabellen normalerweise schneller.
Fehlender Index „twofactor_providers_uid“ in der Tabelle „oc_twofactor_providers“.
Fehlender Index „version“ in der Tabelle „oc_whats_new“.
Fehlender Index „cards_abid“ in der Tabelle „oc_cards“.
Fehlender Index „cards_prop_abid“ in der Tabelle „oc_cards_properties“.

Diese Meldung ist habt ihr eventuell schon bei einer älteren Version (ich glaube es war 13) gesehen. Hier müsst ihr einfach den erwähnten Befehl in der Kommandozeile (putty) aufrufen.

  • Verbindet euch mit putty zu eurer DiskStaion.
  • Wechselt in das Installationsverzeichnis eurer Nextcloud:
  • Gebt den Befehl ein:
  • Wartet bis der Befehl ausgeführt wurde. Ihr könnt putty danach schließen.

Rechte und Ownership

Als letztes passen wir noch die Rechte der Ordner und Dateien an, diese werden so strikt wie möglich gesetzt. Am besten ihr legt euch ein Script an (Endung .sh), welches ihr auf der DS ablegt. Für ein Update der Nextcloud müsst ihr die Rechte wieder lockern. Mit einem Script können sie danach schnell wieder angepasst werden. Inhalt des Scripts ist folgender:

Das Script führt ihr mit sh /volumeX/Pfad/zum/Script.sh aus.
Ihr habt jetzt die wichtigsten Einstellungen vorgenommen. Ruft erneut das Nextcloud Webinterface auf und loggt euch ein. Kontrolliert auf der Administrator-Seite ob alle Meldungen verschwunden sind.

Mögliche Fehlerquellen

Sollten die Rechte für den data-Ordner nicht richtig gesetzt sein, und der Webserver das Verzeichnis nicht lesen können, wird eine entsprechende Meldung auf der Administrator-Seite angezeigt.
Sollte der Aufruf von Nextcloud nur eine weiße Seite oder einen Error 500 liefern, liegt das Problem meist in der Konfigurationsdatei von Nextcloud. Sollte beim Einfügen der Zeile das Format verfälscht worden sein, kann die Datei nicht mehr gelesen werden. Kontrolliert ob ihr die Zeile innerhalb der Klammern hinzugefügt habt. Kontrolliert ob die Zeile mit einem Komma abgeschlossen wird, sollten sich danach noch weitere Einträge befinden.
Kontrolliert ob Rechte und Besitzer richtig gesetzt wurden.
Ich selbst hatte ein Problem mit den Rechten, diese waren schon gehärtet, als ich die config.php (über putty) bearbeitet habe. Obwohl auch danach die Rechte immer noch gestimmt haben, konnte die Datei von Webserver nicht gelesen werden. Das Entfernen der Zeile hat den Aufruf von Nextcloud wieder möglich gemacht. Um die Zeile dennoch hinzuzufügen habe ich die Rechte mit dem Script aus diesem Artikel aufgelockert, die Zeile hinzugefügt und die Rechte wieder strikter gesetzt.

 

Hapt ihr noch andere Fehlermeldungen oder Hinweise? Hinterlasst ein Kommentar und ich übernehme sie in den Artikel.
Im nächsten Artikel werde ich erklären wie ihr eure Nextcloud updaten könnt.

54 thoughts on “Die eigene Cloud: Nextcloud Optimierung auf einer Synology DiskStation mit DSM 6 [Update: Mai 2019]

  1. Ich betreibe eine synology DS218+ und habe die aktuellste Version DSM installiert. Gleichzeitig möchte ich mit Docker Bitwarden (Passwortmanager) selber hosten, habe aber immer wieder an der einen oder anderen Stelle Schwierigkeiten, sodass ich das ganze nie zum laufen bekomme habe. Vorallem das erzeugen der eigenen Domain in Verbindung mit SSL Lets encryt macht mir Schwierigkeiten. Gleichzeitig nutze ich einen Mac sodass ich mit dem terminal die shells „abarbeite“. Auch hier treten hin und wieder Probleme auf. Ich würde mich riesig freuen mal eine dwirklich detaillierte Beschreibung einer Bitwarden Installion (web hosting) mit Docker zu erhalten.

    Übrigens werde ich mich demnächst mal an nextcloud machen. Weiß nur noch nicht ob auf der Synology oder dem Rasperry Pi 4 der noch irgendwo bei einem Händler steht 🙂

    Großes Kompliment für diene seite.
    Grüße
    Thomy

    1. Hallo,

      Ich habe selbst kurz angefangen mich in Docker einzulesen, allerdings war mir das ganze dann doch zu komplex und meine Zeit momentan zu begrenzt um da weiter zu machen. Zumal auf meiner DS215 Docker eigentlich nicht angeboten wird.

      Danke für das Kompliment.
      Grüße
      Andreas

  2. sudo -u php72 -d memory_limit=512M occ db:add-missing-indices

    ging nicht,

    aber

    sudo -u php72 http -d memory_limit=512M occ db:add-missing-indices

    hat geholfen.

  3. …mir hat das keine Ruhe gelassen und ich habe versucht weiter zu kommen. Dabei habe ich festgestellt, dass bei der Anwendung von „occ db:convert-filecache-bigint“ auf der Konsole bei mir die Fehlermeldung: „./occ db:convert-filecache-bigint
    This version of Nextcloud requires at least PHP 7.1You are currently running 5.6.11. Please update your PHP version.root@Cocker-DS:/volume1/web/CockerCloud#“ ausgeworfen wird. Was mich aufhorchen lies. In den Einstellungen meiner Synology (virtualisierte DS3615xs) doch eingestellt ist, das der Apache 2.4 und PHP 7.2 laufen sollten.

    Was ist hier faul?

    Viele Grüße
    Steffen

    1. Wie rufst du den Befehl auf?
      Du musst php72 verwenden und nicht nur php also „sudo -u http php 72 occ …“
      Hast du damit Probleme, kannst du das hier probieren. Sollte aber mittleiweile auch ohne diesen Trick funktionieren.

      1. Sorry das klappt nicht – aber vielleicht stelle ich mich nur zu dämlich an.

        sudo -u http php 72 occ db:add-missing-indices => Could not open input file: 72

        1. Dein Problem ist das Leerzeichen zwischen php und 72. Du willst den Befehl in PHP ausführen. Standardmäßig erhältst du auf der DS mit ‚php‘ nur Version 5.6, auch wenn du nur Version 7.2 installiert hast. Daher musst du mit ‚php72‘ gezielt die PHP-Version ansprechen.

          Wenn du aber ‚php 72‘, also mit Leerzeichen dazwischen schreibst, dann verwendest du wieder nur PHP 5.6 und übergibst den Parameter 72 und damit kann PHP nix anfangen.

        2. Hallo

          für alle die den Fehler auch haben, bei mir hat es mit dieser Befehlezeile geklappt:

          sudo -u http php72 occ db:add-missing-indice

          Viele Grüße

  4. Hi Andreas,

    da Nextcloud auf die Version 16 mittlerweile gewechselt hat, entstehen da wieder neue Problechens. So kann man jetzt den PHP-Cash nicht mehr so ohne weiteres einstellen und und … Dies sieht man auch bei meinem Fehlerprotokoll (siehe am Ende). Auch bin ich noch nicht weiter gekommen mit den Redirects. Kannst du dir das mal anschauen und mir weiter helfen?

    ….mein Fehlerprotokoll (es läuft PHP Vers. 7.2; Apache 2.4 auf einer Xpenology DS3615)

    Sicherheits- & Einrichtungswarnungen
    Für die Sicherheit und Performance Deiner Instanz ist es wichtig, dass alles richtig konfiguriert ist. Um Dir dabei zu helfen, führen wir einige automatische Prüfungen durch. Weitere Informationen kannst Du der verlinkten Dokumentation entnehmen.

    Es gibt einige Warnungen bei Deiner Systemkonfiguration.
    Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB.
    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.
    In der Datenbank fehlen einige Indizes. Auf Grund der Tatsache, dass das Hinzufügen von Indizes in großen Tabellen einige Zeit in Anspruch nehmen kann, wurden diese nicht automatisch erzeugt. Durch das Ausführen von „occ db:add-missing-indices“ können die fehlenden Indizes manuell hinzugefügt werden, während die Instanz weiter läuft. Nachdem die Indizes hinzugefügt wurden, sind Anfragen auf die Tabellen normalerweise schneller.
    Fehlender Index „parent_index“ in der Tabelle „oc_share“.
    Fehlender Index „owner_index“ in der Tabelle „oc_share“.
    Fehlender Index „initiator_index“ in der Tabelle „oc_share“.
    Fehlender Index „fs_mtime“ in der Tabelle „oc_filecache“.
    Fehlender Index „twofactor_providers_uid“ in der Tabelle „oc_twofactor_providers“.
    Fehlender Index „version“ in der Tabelle „oc_whats_new“.
    Fehlender Index „cards_abid“ in der Tabelle „oc_cards“.
    Fehlender Index „cards_prop_abid“ in der Tabelle „oc_cards_properties“.
    Dieser Installation fehlen einige empfohlene PHP-Module. Für bessere Leistung und bessere Kompatibilität wird dringend empfohlen, diese zu installieren.
    imagick
    Bei einigen Spalten in der Datenbank fehlt eine Konvertierung in big int. Aufgrund der Tatsache, dass das Ändern von Spaltentypen bei großen Tabellen einige Zeit dauern kann, wurden sie nicht automatisch geändert. Durch Ausführen von „occ db:convert-filecache-bigint“ können diese ausstehenden Änderungen manuell übernommen werden. Diese Operation muss ausgeführt werden, während die Instanz offline ist. Weitere Einzelheiten findest Du auf der zugehörigen Dokumentationsseite.
    filecache.mtime
    filecache.storage_mtime
    Bitte überprüfe noch einmal die Installationsanleitungen ↗ und kontrolliere das Protokoll auf mögliche Fehler oder Warnungen.

    Überprüfe die Sicherheit Deiner Nextcloud über unseren Sicherheitsscanner ↗.

    Version
    CockerCloud 16.0.0

    Deine Version ist aktuell.

    1. Hallo,

      – Die PHP-Speichergrenze liegt unterhalb des empfohlenen Wertes von 512MB.
      Hier sollte es ausreichen in der .htacces (im Nextcloud-Installationsordner) das PHP-Memory-Limit anzuheben, ich habe hier 1G eingetragen.

      Sollte das allein nicht ausreichen, muss man eventuell auch in der php.ini etwas eintragen.

      – 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.

      Eine mögliche Lösung steht oben im Artikel, ansonsten gibts im Nextcloud-Forum viele verschiedene Lösungsmöglichkeiten, leider scheinen hier die Lösungen nicht bei allen gleich zu funktionieren.

      – In der Datenbank fehlen einige Indizes. Auf Grund der Tatsache, dass das Hinzufügen von Indizes in großen Tabellen einige Zeit in Anspruch nehmen kann, wurden diese nicht automatisch erzeugt. Durch das Ausführen von „occ db:add-missing-indices“ können die fehlenden Indizes…

      Hier reichts aus den Befehl auszuführen, aber eben aufpassen, dass du php72 im Befehl verwendest: sudo -u http php72 occ…

      – Dieser Installation fehlen einige empfohlene PHP-Module. Für bessere Leistung und bessere Kompatibilität wird dringend empfohlen, diese zu installieren.
      imagick

      Derzeit nicht lösbar, kannst du aber auch ignorieren, im Artikel findest du die Details dazu.

      – Bei einigen Spalten in der Datenbank fehlt eine Konvertierung in big int. Aufgrund der Tatsache, dass das Ändern von Spaltentypen bei großen Tabellen einige Zeit dauern kann, wurden sie nicht automatisch geändert. Durch Ausführen von „occ db:convert-filecache-bigint“ können…

      Hier wieder den Befehl richtig ausführen.

      Ich hoffe das hilft dir weiter.

  5. Hallo, und vielen Dank für deine ausführlichen Anleitungen!
    Ich habe es damit erfolgreich geschafft, Nextcloud auf einer DS418 aufzusetzen – leider lässt die Performance selbst gegenüber den kleinsten vServern, die man sich im Internet so zusammenklicken kann, deutlich zu wünschen übrig – ist das normal, oder muss ich mir Sorgen machen? Seiten laden mehrere Sekunden (5-15 s pro Klick), der Web-basierte Updater ist aufgrund von Timeouts überhaupt nicht nutzbar, und die Dateiübertragung ist somit auch alles andere als berauschend.
    Laut Speicher-Manager sind fast alle Dateien fragmentiert – eine Defragmentierung macht das System aber scheinbar nicht. Was kann ich noch tun?

    1. Hallo,

      Seltsam, ich hab in meiner DS215+ nur 2 Kerne, deine CPU hat 4. Bei mir liefen vorallem NC13 und 14 etwas langsamer aber seit 15 läufts recht flott.
      Hast du noch andere Pakete auf deiner DS laufen?
      Was bei mir immer stark die Performance drückt, ist wenn die Medienindizierung läuft, also neue Bilder/Videos/Lieder in Ordnern hochgeladen wurden, die indiziert werden.
      Was die Timeouts beim Webupdate anbelangt, kannst du hier nachlesen wie du die wegbekommst.
      Leider brauchen Apache und PHP doch einiges an Performance, nginx soll da performanter sein, leider hab ich nginx noch nicht brauchbar zum laufen bekommen.

      LG
      Andreas

      1. Hallo Andreas,
        danke für deine Antwort. Mit dem Einschalten des Memcache hat sich das Performance-Problem einigermaßen gelöst, zumindest lädt jetzt alles etwas schneller.
        Ich habe herausgefunden, dass bei einigen Operationen die DS selbst an ihre Grenzen stößt (das Volume ist zu 100% ausgelastet), und das dann in der Folge zu Fehlern führen kann (aber immerhin nichts permanentes).

  6. Hallo, vielen Dank für deine Tutorials.
    Ich habe nach dem Upgrade auf V15 noch folgende Fehlermeldungen:
    „Dein Webserver ist nicht ordnungsgemäß für die Auflösung von „/ocm-provider/“ eingerichtet.“
    „Dein Webserver ist nicht ordnungsgemäß für die Auflösung von „/ocs-provider/“ eingerichtet.“
    Ich habe versucht in der nginx.conf Änderungen einzutragen, aber die Datei wird nach jedem Neustart neu geschrieben.
    Würe mich über mögliche Lösungen sehr freuen.

    1. Hallo,

      Erst mal die Frage, läuft Nextcloud bei dir mit Apache oder nginx?
      Sollte sie mit Apache laufen, dann musst du in die .htaccess im Nextcloud-Ordner folgendes eintragen:
      Redirect 301 /ocm-provider /nextcloud/ocm-provider
      Redirect 301 /ocs-provider /nextcloud/ocs-provider
      nextcloud gegebenenfalls mit dem Ordnernamen deiner Nextcloud-Installation ersetzen.

      Solltest du Nextcloud tatsächlich mit nginx laufen haben, würdest du dein Config mit uns teilen?
      An nginx bin ich bisher gescheitert.

      LG
      Andreas

      1. Andreas, vielen herzlichen Dank für deine Hilfe!
        Habe überall nach Lösungen gesucht, jedoch nichts gefunden.
        Ich habe NC als Virtual Host unter Apache laufen. Auf NGINX habe ich es noch nicht versucht, weil die Anleitung damals nur den VIRTUAL HOST Weg erklärt hat.
        Ich frage mich nur, warum habe ich noch kein Update, noch keine Installation von NC oder OC gehabt, die mal einfach auf Anhieb, OHNE Fehlermeldung, funktioniert hat?
        Jetzt habe ich noch den Fehler:
        „Dein Web-Server ist nicht richtig eingerichtet um „/.well-known/caldav“ aufzulösen“ und imagick übrig.
        Hierzu habe ich in der .htaccess folgendes drin:
        „RewriteRule ^/\.well-known/caldav /nextcloud/remote.php/dav/ [R=301,L]“
        und
        „Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav“
        Ist das falsch, oder muss es noch woanders stehen?

        Nochmals vielen Dank für deine Hilfe!

      2. Weder in der .htaccess im web, noch im nextcloud Verzeichnis lösen diese Einträge das Problem. Auch der Caldav-Eintrag, der vorher in der web-.htacces funktionierte, funktioniert in 15.0.5 nicht mehr.

      3. Ich hab die Probleme mit 15.0.5 nicht, daher ist es etwas schwierig für mich eine Lösung zu bieten.
        Was die .well-known/caldav Einträge angeht, die habe ich seit einiger Zeit in meiner .htaccess (der im Nextcloud folder).
        Ich habe die Einträge im Rewrite-Block hinzugefügt, wo schon andere RewriteRules vorhanden sind.

        RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
        RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]

  7. Hallo Andreas,
    Deine Anleitungen zu Installation, Optimierung und Update haben mir sehr geholfen. Vielen Dank dafür! :-).
    Ich synce die Synology-Nextcloud Installation zu Windows und Mac. Während man beim Mac-Agent Desktop-Benachrichtigungen einstellen kann, bietet der Windows-Agent lediglich Server-Benachrichtigungen an.
    Gibt es eine Möglichkeit auch für Windows Desktopbenachrichtigungen über z.B. neue erstellte, geändert, gelöschte Dateien, Ordner, etc. zu erhalten?

  8. Tipp zum Fehler
    nginx: [emerg] unknown directive „includeSubDomains“ in /etc/nginx/conf.d/http.hsts.conf:

    Ich hatte den Text hier mit copy und paste in die Datei eingefügt:
    add_header Strict-Transport-Security „max-age=15768000; includeSubDomains; preload;“;

    Die im Deutschen üblichen Anführungsstriche („…“) mag er nicht.
    add_header Strict-Transport-Security „max-age=15768000; includeSubDomains; preload;“;

    Das ist besser

    1. vielen Dank für den Hinweis, bei mir kam die gleiche Fehlermeldung.
      Es scheint als hätte sich in deiner Antwort aber wieder der Fehler eingeschlichen, die Anführungszeichen sind wieder falsch
      (vermutlich durch Autokorrekt?) es hat mich jedoch auf die richtige Fährte gebracht 🙂

      korrekt wäre wohl:
      add_header Strict-Transport-Security „max-age=15768000; includeSubDomains; preload;“;

      (Unterschied in den ersten Anführungszeichen die oben und nicht unten sind)

      1. … und jetzt wo es hier eingetragen ist stelle ich fest, dass eine Autokorrektur der Anführungszeichen durch die Blogsoftware passiert.

        @Andreas: vielleicht kann man das ja deaktivieren um Missverständnissen vorzubeugen?

        1. Leider hab ich auf dei schnelle nichts gefunden, das liegt an der Formattierung bzw auch an der Schriftart. Ich werde weiterhin die Augen offen halten und auch eine Warnung in dne Blogtext einfügen.

  9. Hallo,
    vielen Dank erstmal für die tolle Anleitung, der Server läuft einwandfrei. Nur das Script für die Absicherung der Nutzungsrechte scheitert (kann danach Nextcloud nicht mehr aufrufen) und erhalte folgende Fehlermeldung

    The server was unable to complete your request.
    If this happens again, please send the technical details below to the server administrator.
    More details can be found in the server log.
    Technical details

    Remote Address: 192.168.178.157
    Request ID: 4VokUvtnaDfmVxaEFncq

    Wenn ich alles wieder auf 777 zurücksetze geht es wieder. Hast Du eine Idee wie ich das beseitige?

    1. Hallo,

      Also die Rechte sind eigentlich die die laut Nextcloud-Dokumentation funktionieren sollten.
      Als möglicher Fehlern würd mir der Owner einfallen, also entweder ist der Owner falsch eingestellt oder die Rechte auf einem übergeordneten Ordner passen nicht zusammen.

      Hast du deinen data-Ordner auserhalb von /web? Wenn ja, kannst du mal versuchen die Rechte für den Nextcloud Ordner in /web allein zu setzen und den /data Ordner zu lassen wie er ist.
      Bzw. generell die Rechte und Ownership für die Ordner im Nextcloud-Verzeichnis einzeln zu ändern und nach jedem Ordner nachzusehen obs noch geht und so rauszufinden wo es dann Probleme macht.

      LG

  10. Hallo Andreas!

    Ich wollte HSTS aktivieren, wie oben beschrieben und hab die entsprechende Datei „http.hsts.conf“ angelegt.
    Allerdings tauchte dann das Problem auf, dass die DS den Fehler ausgab nicht mehr startbar zu sein und es war nicht mehr möglich via https (5001, Nectcloud, etc) auf die DS zuzugreifen! http 5000 ging Gott sei Dank noch!

    Nach dem Löschen der „http.hsts.conf“ Datei & reboot war wieder alles beim Alten…

    LG, Stefan

    1. Hallo Stefan,

      Der Fehler tritt meist dann auf, wenn die Konfigurationsdatei einen Fehler enthält.
      Mit nginx -t kannst du die NGINX-Konfig überprüfen, da siehst du gleich ob ein Syntaxfehler drin ist.
      Eventuell gabs beim Copy-Pasten einen Fehler. Oft werden Zeichen wie “ falsch interpretiert wenn man sie in die Kommandozeile einfügt.

      LG
      Andreas

  11. Cron-Job: Einrichten
    Danke für die Anleitung. Mir war der DSM abgeraucht und ich musste nach einem reset alles neu aufsetzen. Ich habe Nextcloud 13.0.4 und DSM 6.1.7.
    Was mich viel nerven gekostet hat war, dass zwar Nextcloud nach php70 schreit, der installer aber nur mit php56 geht. Mein letztes Problem war, dass der Cron-Job nicht mehr ging. Der läuft bei mir auch noch mit php56
    sudo -u http php56 cron.php
    Dabei gab es Probleme, weil php bestimmte Module (zip, posix, gd, curl, openssl) nicht finden konnte, obwohl in der webstation alle Module ausgewählt wurden. Die Lösung habe ich von hier:
    https://blackswan.ch/archives/594
    Ich musste bei mir in der Datei /usr/local/etc/php56/php.ini (Verzeichnis bekommt man nach php56 –ini) ändern:
    extension_dir = „/volume1/@appstore/PHP5.6/usr/local/lib/php56/modules
    Und einfügen:
    extension = zip.so
    extension = gd.so
    extension = curl.so
    extension = openssl.so
    extension = posix.so

  12. Hi und erstmal danke für die Super Anleitung.
    Ich habe aktuell das Problem das ich den Datenordner umgezogen habe auf dem Synology NAS.
    Nun liegen die Daten in meinem Gemeinsamen Ordner mit dem ich arbeite.
    Ich würde der Cloud gerne „hintenrum“ Dateien zuschieben. Leider macht die Cloud keinen Rescan automatisch.
    Daher wollte ich gerne den Rescan über diesen Befehl abfeuern: sudo -u http php56 occ files:scan –all -v
    Der wird mir aber mit einer Fehlermeldung quittiert.

    Hat dafür schon jemand eine Lösung?

    root@NAMEDESNAS:/volume1/web/owncloud# sudo -u http php70 occ files:scan –all -v
    An unhandled exception has been thrown:
    Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occured in driver: could not find driver in /volume1/web/owncloud/lib/private/DB/Connection.php:62
    Stack trace:
    #0 /volume1/web/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(992): OC\DB\Connection->connect()
    #1 /volume1/web/owncloud/lib/private/DB/Connection.php(210): Doctrine\DBAL\Connection->executeUpdate(‚PRAGMA read_unc…‘, Array, Array)
    #2 /volume1/web/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(623): OC\DB\Connection->executeUpdate(‚PRAGMA read_unc…‘)
    #3 /volume1/web/owncloud/lib/private/DB/Connection.php(145): Doctrine\DBAL\Connection->setTransactionIsolation(2)
    #4 /volume1/web/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php(172): OC\DB\Connection->__construct(Array, Object(Doctrine\DBAL\Driver\PDOSqlite\Driver), Object(Doctrine\DBAL\Configuration), Object(Doctrine\Common\EventManager))
    #5 /volume1/web/owncloud/lib/private/DB/ConnectionFactory.php(145): Doctrine\DBAL\DriverManager::getConnection(Array, Object(Doctrine\DBAL\Configuration), Object(Doctrine\Common\EventManager))
    #6 /volume1/web/owncloud/lib/private/Server.php(493): OC\DB\ConnectionFactory->getConnection(’sqlite3′, Array)
    #7 /volume1/web/owncloud/lib/composer/pimple/pimple/src/Pimple/Container.php(113): OC\Server->OC\{closure}(Object(OC\Server))
    #8 /volume1/web/owncloud/lib/private/AppFramework/Utility/SimpleContainer.php(111): Pimple\Container->offsetGet(‚DatabaseConnect…‘)
    #9 /volume1/web/owncloud/lib/private/ServerContainer.php(87): OC\AppFramework\Utility\SimpleContainer->query(‚DatabaseConnect…‘)
    #10 /volume1/web/owncloud/lib/private/Server.php(1160): OC\ServerContainer->query(‚DatabaseConnect…‘)
    #11 /volume1/web/owncloud/lib/private/Server.php(370): OC\Server->getDatabaseConnection()
    #12 /volume1/web/owncloud/lib/composer/pimple/pimple/src/Pimple/Container.php(113): OC\Server->OC\{closure}(Object(OC\Server))
    #13 /volume1/web/owncloud/lib/private/AppFramework/Utility/SimpleContainer.php(111): Pimple\Container->offsetGet(‚AppConfig‘)
    #14 /volume1/web/owncloud/lib/private/ServerContainer.php(87): OC\AppFramework\Utility\SimpleContainer->query(‚AppConfig‘)
    #15 /volume1/web/owncloud/lib/private/Server.php(1089): OC\ServerContainer->query(‚AppConfig‘)
    #16 /volume1/web/owncloud/lib/private/Server.php(547): OC\Server->getAppConfig()
    #17 /volume1/web/owncloud/lib/composer/pimple/pimple/src/Pimple/Container.php(113): OC\Server->OC\{closure}(Object(OC\Server))
    #18 /volume1/web/owncloud/lib/private/AppFramework/Utility/SimpleContainer.php(111): Pimple\Container->offsetGet(‚AppManager‘)
    #19 /volume1/web/owncloud/lib/private/ServerContainer.php(87): OC\AppFramework\Utility\SimpleContainer->query(‚AppManager‘)
    #20 /volume1/web/owncloud/lib/private/Server.php(1359): OC\ServerContainer->query(‚AppManager‘)
    #21 /volume1/web/owncloud/lib/private/legacy/app.php(346): OC\Server->getAppManager()
    #22 /volume1/web/owncloud/lib/private/legacy/app.php(110): OC_App::getEnabledApps()
    #23 /volume1/web/owncloud/lib/base.php(579): OC_App::loadApps(Array)
    #24 /volume1/web/owncloud/lib/base.php(998): OC::init()
    #25 /volume1/web/owncloud/console.php(64): require_once(‚/volume1/web/ow…‘)
    #26 /volume1/web/owncloud/occ(11): require_once(‚/volume1/web/ow…‘)
    #27 {main}PHP Fatal error: Uncaught Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occured in driver: could not find driver in /volume1/web/owncloud/lib/private/DB/Connection.php:62
    Stack trace:
    #0 /volume1/web/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(992): OC\DB\Connection->connect()
    #1 /volume1/web/owncloud/lib/private/DB/Connection.php(210): Doctrine\DBAL\Connection->executeUpdate(‚PRAGMA read_unc…‘, Array, Array)
    #2 /volume1/web/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(623): OC\DB\Connection->executeUpdate(‚PRAGMA read_unc…‘)
    #3 /volume1/web/owncloud/lib/private/DB/Connection.php(145): Doctrine\DBAL\Connection->setTransactionIsolation(2)
    #4 /volume1/web/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php(172): OC\DB\Connection->__construct(Array, Object(Doctrine\DBAL\Driver\PDOSqlite\Driver), Object(Doctrine\DBAL\Configuration), Object(Doctrine\Common\EventManager))
    #5 /volume1/web/owncloud/lib/private/DB/ConnectionFactory. in /volume1/web/owncloud/lib/private/DB/Connection.php on line 62

    DANKE!!

    1. Hallo,

      Ich seh du benutzt im rescan command PHP7 (root@NAMEDESNAS:/volume1/web/owncloud# sudo -u http php70 occ files:scan –all -v). Ich hab mitbekommen, dass die OCC commands mit PHP7 Probleme machen. Als schnelle Lösung kannst du es mit PHP 5.6 versuchen, bis es eine offizielle Lösung für PHP 7 gibt.

      Grüße,
      Andreas

      1. Hallo!

        Ich hatte genau dasselbe Problem mit Nextcloud auf Synology und hatte mir bis jetzt mit dem Workaraound cron.php mit php56 auszuführen. Allerdings geht das nicht mehr mit Upgrade auf v14 da jetzt PHP7 vorausgesetzt wird.
        Geholfen hat mir extension.ini von php56 nach php70 zu kopieren:
        sudo cp /usr/local/etc/php56/conf.d/extension.ini /usr/local/etc/php70/conf.d/

        Die anderen ini-files von php56 sollte man dann vielleicht auch gleich prüfen.

        LG, Plauderer

        1. Sehr interessant. Ich habe unter den von dir angegebenen Pfaden gar keine extension.ini.
          Das ist eine Sache die mich an Synology stört, viele Config-Pfade entsprechen nicht dem Unix/Linux-Pendant bzw. sind je nachdem wie etwas eingerichtet wurde von User zu USer unterschiedlich und viele davon werden bei einem Neustart oder Update wieder überschireben.

  13. Erstmal danke für die ganzen Anleitungen.

    Zu HSTS:
    Geht bei mir leider nicht. Ich verwendet den Apache 2.2 und PHP 5.6, wenn ich die .htaccess (web/nextcloud) bearbeiten will steht default ganz oben schon das drin:

    SetEnvIfNoCase ^Authorization$ „(.+)“ XAUTHORIZATION=$1
    RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION

    SetEnvIfNoCase Authorization „(.+)“ HTTP_AUTHORIZATION=$1

    Jetzt habe ich versucht das draus zu machen, also einfach die eine Zeile hinzugefügt:

    SetEnvIfNoCase ^Authorization$ „(.+)“ XAUTHORIZATION=$1
    RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
    [size=150]Header always set Strict-Transport-Security „max-age=15768000″[/size]

    SetEnvIfNoCase Authorization „(.+)“ HTTP_AUTHORIZATION=$1

    Die Meldung kommt in der Verwaltung immer noch.

    1. Hallo,

      Versuch mal HSTS im nginx einzuschalten. Seit DSM 6 den nginx gebracht hat wird der immer als Proxy verwendet, auch wenn du dann den Apache als Webserver benutzt. Es ist daher immer recht schwer nachzuvollziehen wo welche Konfiguration hingehört. Sollte das auch nichts helfen kannst du immer noch einen virtuellen Host einrichten und dort HSTS aktivieren.
      WIe das geht kannst du im Beitrag zum externen Zugriff auf die DS lesen.

      Grüße,
      Andreas

  14. Hallo
    danke für die Anleitung!! Alles prima soweit, aber die Skripte funktionieren bei mir leider nicht.
    Hier ein Beispiel
    *.sh: line 12: $’\r‘: command not found
    chown Directories
    chown: invalid user: ‘root\r:http\r’
    chown: invalid user: ‘http\r:http\r’
    chown: invalid user: ‘http\r:http\r’
    chown: invalid user: ‘http\r:http\r’
    chown: invalid user: ‘http\r:http\r’
    Irgendwie hängt der sowohl an die Variablen als auch die User ein \r und dadurch findet er nix. Hab auf veschiedene Art und Weise versucht das Script zu erzeugen (unter Windows)
    Danke und viele Grüße Stephan

    1. Hallo,

      Leg das Script direkt auf der DiskStation an, entweder über putty und vi oder mit dem Texteditor der DiskStation. Windows und Linux haben unterschiedliche Textformatierungen und je nachdem welches Programm du unter Windows benutzt, kommen diese Formattierungen mit in den Klartext und Linux weiß damit nichts anzufangen.

      Grüße
      Andreas

  15. Hallo und erstmal vielen Dank für die genaue Anleitung, funktioniert soweit auch alles!!

    Habe aber noch 2 generelle Frage zu dem Thema:
    nach der dem EInrichten ist das Data Verzeichnis nicht mehr über die FileStation auffinbar, das ich denke ich ein Rechteproblem?

    Gibt es auch die Möglichkeit, sowohl die gemeinsamen Ordner des Synologys NAS zu nutzen und einen Hardlink in den Data Ordner zu setzen, sodass die Daten nicht doppelt gespeichert werden müssen??

    Besten Dank und nochmals Daumen Hoch für die gelungene Anleitung!

    1. Ja, das liegt an den gesetzten Rechten. Solltest du unbedingt Zugriff über die FileStation brauchen könntest du die Rechte anpassen. Sicherer ist es aber die Rechte wie angegeben zu lassen.

      Was meinst du mit Daten doppelt speichern? Um welche Daten handelt es sich und was genau willst du damit machen?
      Prinzipiell sollten die Daten nur über die Nextcloud verwaltet werden. Daten die direkt über das Filesystem gespeichert werden, werden von der Nextcloud nicht erkannt. Solltest du aber Anwendungsfälle haben wo du das brauchst, kannst du einen beliebigen Ordner/Shared Folder als externe Quelle in Nextcloud einbinden. Das geht im Nextcloud Webinterface.

      1. Hallo Andreas, danke für die schnelle Antwort!

        OK das google ich mal. Würde gern die Daten unter dem Volume lassen und die Nextcloud als Add On nutzen, da ich die die SynoCLoud Lösung nicht optimal finde, aber gern weiterhin das Active Directory nutzen möchte!
        Vielleicht kannst du auch kurz aufzeigen, wo das im Webinterface zu finden ist.

        Danke und wie gesagt Daumen hoch!!!

        1. Hallo,

          Du gehst rechts oben auf dein Profil und dort unter Apps installierst du external Storage support.
          Dannach gehst du wieder auf dein Profil und auf Verwaltung. Dort hast du links den zusätzlichen Punkt Externer Speicher. Schau ob dort das Hinzufügen von externen Speicher erlaubt ist.

          Ab jetzt musst du etwas herumprobieren, das letzte mal das ich das gemacht habe war noch unter Owncloud.
          Das Hinzufügen direkt im Adminbereich hat nicht geklappt, du kannst alternativ im Benutzerbereich (klick auf dein Profil und dann auf Persönlich) ebenfalls externen SPeicher hinzufügen, das hat dann funktioniert.
          Ist aber wie gesagt lange her und wenn du mehrere Benutzer hast dann wärs natürlich praktische den externen Speicher im Admin-Bereich hinzuzufügen.
          Ich habs damals als SMB und als WebDav getestet, ich glaube mit WebDav hats am besten funktioniert. Du musst in der DiskStation aber vorher auch einstellen, dass der Zugriff über SMB bzw. WebDav erlaubt ist.
          Wenn du auf der sicheren Seite sein willst, leg dir auf der DS einen eigenen Nutzer an, der nur auf das enstprechende Verzeichnis Zugriff hat und benutze den dann für die Authentifizierung des externen Speichers.

          Grüße
          Andreas

  16. Sauber! 1000 Dank für deine Beiträge zu nextcloud und Synology. Nextcloud läuft jetzt auf meinem NAS und meldet „Alle Überprüfungen bestanden“.

  17. Hallo Jonathan,

    ich habe mir auch einen Wolf gesucht wegen der Opcache-Meldungen.

    Bei mir hat das Eintragen der geforderten Werte in der Datei /usr/local/etc/php56/conf.d/opcache.ini zur Beseitigung der Meldungen geführt.

    $HTTP_RAW_POST_DATA-Meldungen habe ich auch im nextcloud.log und suche noch.

    In welcher Log-Datei taucht denn die DBA_DEFAULT-Meldung auf?

  18. Hallo,
    danke für die Anleitung.

    ich habe noch ein paar Fehler, die ich nicht weg bekomme.

    Erstens bekomme ich unter Administration folgendes angezeigt:

    PHP Opcache ist nicht korrekt eingerichtet. Für bessere Leistung empfehlen wir ↗ folgende Einstellungen in der php.ini:

    opcache.enable=1
    opcache.enable_cli=1
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=10000
    opcache.memory_consumption=128
    opcache.save_comments=1
    opcache.revalidate_freq=1

    Zweite Fehlermeldung (im Logging):
    Error Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set ‚always_populate_raw_post_data‘ to ‚-1‘ in php.ini and use the php://input stream instead. at Unknown#0

    Drittens (im Logging):
    PHP Startup: No such handler: DBA_DEFAULT at Unknown#0

    Ich habe schon zwei php.ini bearbeitet und hatte leider kein erfolg.
    Vielleicht könnt ihr mir ja bei diesen Fehlern helfen

    Appache HTTP Server 2.2
    PHP 5.6
    MariaDB 5
    Nextcloud 12.0.0

    1. Hallo,

      Tut mir Leid für die späte Antwort. Ich habe heute erst 12.0.1 als stable installiert. opcache wird seit 12.0 benutzt.
      Geh dazu in die WebStation auf PHP Einstellungen. Dort wähle die PHP Version aus die du nutzt (5.6 in deinem Fall).
      Geh dann auf „Erweiterte Einstellungen“ und dort auf den Tab „Erweiterungen“ (Extensions).
      Dort kannst du dann runterscrollen bis zu den opcache-Werten.
      Stell dort die Werte so ein wie Nextcloud sie vorschlägt. Die Werte die Nextcloud nicht angibt lass einfach wie sie sind.
      Starte dann den Webserver neu (oder die DiskStation), dannach sollte die Meldung verschwunden sein.

      always_populate_raw_post_data = -1 hab ich in der .user.ini im Nextcloud-Verzeichnis schon eingetragen sowie in der .htaccess

      „PHP Startup: No such handler: DBA_DEFAULT at Unknown#0“ – Hast du dein Nextcloud data Verzeichnis außerhalb von /web/Nextcloud? Uns wenn ja, hast du es in open_basedir eingetragen?

      1. Hallo,
        erstmal großes Danke an deinen Blog. Echt super Arbeit! Hat mir sehr gut geholfen mit meiner Diskstation und der Nextcloud.
        Ein Problem habe ich auch noch mit dem opcache, an welchem ich mir schon seit Wochen den Kopf zerbreche und auch keine Antworten finde.
        Ich dachte, dass mir deine Anleitung weiterhelfen kann. Tut sie auch, leider nur bedingt. Wenn ich in dem Fenster „Erweiterungen“ nach dem Modul opcache suche, finde ich rein gar nichts. Auch unter dem Pfad /usr/local/etc/php56/conf.d/ , welcher auch in einem Kommentar erwähnt wurde befindet sich keine opcache.ini. Ich bin mittlerweile relativ ratlos was ich noch ausprobieren kann.
        Hast du vielleicht eine Idee?

        Ich freue mich auf eine Antwort und bedanke mich!
        Schöne Grüße
        Daniel

        Specs:
        Nextcloud 15.0.0
        PHP 7.0.3
        DSM918+

  19. Danke für alles! Du hast 2 Fehlermeldungen beseitigt, die ich nie (1 Jahr lang) wegbekommen habe UND du hast mir mit diesen ekligen Berechtigungen geholfen.
    Mein Problem ist jetzt noch folgendes:
    Manche Dateien haben die Integritätsprüfung nicht bestanden. Weitere Informationen um den Fehler zu beheben finden Sie in unserer Dokumentation. (Liste der ungültigen Dateien… / Erneut scannen…)
    Bitte überprüfen Sie noch einmal die Installationsanleitungen emoji unicode: 2197 und kontrollieren Sie das Log auf mögliche Fehler oder Warnungen.

    Und die Dateien sind alle diese /@eaDir/help.php@SynoEAStream-Dateien…

    Hängen offenbar mit der Photostation zusammen. Wie kann ich ihm sagen, dass diese Dateien nicht schlimm sind?!

    1. Freut mich dass es dir geholfen hat.
      Hast du den /photo Ordner als externen Speicher eingebunden oder benutzt du den direkt als Ordner für die Nextcloud?
      Die Photostation verwendet nur den /photo Ordner.

  20. Danke für die wirklich tolle Anleitung!
    Soweit funktioniert Nextcloud auf meiner DS214+, mittlerweile unter DSM 6.1, auch schon ganz gut. Um das ganze ein wenig zu optimieren, wollte ich das Ganze nun auf Virtual Host umstellen. Dazu habe ich den (externen) FQDN als Virtual Host eingetragen, als Document Root „web/nextcloud“ (ich habe im Pfad bewusst nur Kleinbuchstaben verwendet). Meine Daten liegen, gem. deiner Anleitung, unter einem eigenen Share „nextcloud/data“. Über den herkömmlichen Aufruf (*meinExternerFQDN*/nextcloud) funktioniert es weiterhin. Wenn ich NC aber über den Namen des Virtual Host öffnen will (nc.meinExternerFQDN), bekomme ich vom Nextcloud die folgende Meldung:

    Daten-Verzeichnis (/volume1/nextcloud/data) ist ungültig
    Bitte stellen Sie sicher, dass das Datenverzeichnis auf seiner ersten Ebene eine Datei namens „.ocdata“ enthält.
    Erstellen des „data“-Verzeichnisses ist nicht möglich (/volume1/nextcloud/data)
    Dies kann normalerweise repariert werden, indem dem Webserver Schreibzugriff auf das Wurzelverzeichnis gegeben wird.

    Dies ist aber definitiv gegeben, da über den herkömmlichen Domainnamen weiterhin alles gut funktioniert. Kannst du dir darauf einen Reim machen?

    1. Update für die Nachwelt:
      Ich habe die Lösung für mein Problem an anderer Stelle gefunden.
      Und zwar musste in meinem Fall (Datenverzeichnis ausgelagert nach nextcloud/data, Betrieb mit Virtual Host) folgende Angabe im PHP open_basedir angehängt werden (falls dort etwas drinsteht, zuerst mit einem Doppelpunkt : abtrennen):
      /dev/urandom:/volume1/nextcloud

      1. Freut mich, dass du die Lösung gefunden hast.
        Ich selbst habe derzeit keinen virtuellen host eingerichtet, werde das aber demnächst vielleicht umsetzen und den Artikel aktualisieren. Da werd ich dann deine Lösung erwähnen.

Schreibe einen Kommentar

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