Synology und Nextcloud Migration auf DSM 7.2

Mit DSM 7.2 wurde die Web Station komplett überarbeitet und auch Synologys Docker-GUI wurde überarbeitet und in Container Manager umbenannt. Grundsätzlich funktioniert Nextcloud auch unter DSM 7.2 und auch die Migration einer laufenden Nextcloud-Installation funktioniert erstaunlich problemlos. Es gibt nur ein paar Kleinigkeiten zu beachten.

Zuerst solltet ihr eure Nextcloud in den Maintenance-Mode schicken. Dadurch wissen die Clients Bescheid und es gibt keine Synchronisierungsversuche zu einem ungünstigen Zeitpunkt. Den Maintenance-Mode aktiviert ihr über occ-Command:

sudo -u http php80 occ maintenance:mode --on

Vergesst nicht, dass occ der DiskStation nicht bekannt ist. Ihr müsst also zuerst mit cd in das Verzeichnis eurer Nextcloud-Installation wechseln. Den Befehl könnt ihr via PuTTY/SSH absetzen oder via Aufgabenplaner (inklusive dem Befehl für den Ordnerwechsel) Als benutzerdefinierte Skript-Aufgabe.
Als nächstes solltet ihr – ebenfalls im Aufgabenplaner den Aufruf des Nextcloud-Crons deaktivieren.

Ein Backup eurer Daten vor dem Update auf DSM 7.2 schadet natürlich nicht. Bereitet auch eurer anderen Dienste die ihr so auf der DiskStation betreibt auf die Migration vor. Danach könnt ihr das Update starten. Wenn ihr DSM 7.2 nicht als Update in der Systemsteuerung erhaltet, müsst ihr eine manuelle Installation durchführen. Es kann notwendig sein zuerst auf das letzte DSM 7.1-Update zu aktualisieren bevor ihr DSM 7.2 erhaltet. Für einige ältere DS-Modelle steht nur das manuelle Update zur Verfügung.

Sobald das Update abgeschlossen ist, gilt es die erwähnten Kleinigkeiten zu behandeln.

Timeout

Mit DSM 7.1 wurden Variablen für das Webserver bzw. Proxy-Timeout eingeführt die in den Einstellungen des virtuellen Hosts gemacht werden konnten. Diese haben allerdings nicht funktioniert und der hier beschriebene Workaround war notwendig. Mit der Überarbeitung der DiskStation wurde das Problem behoben und das Timeout kann über den vHost eingestellt werden. Nach dem Update ist die Datei /usr/local/etc/apache2X/sites-enabled/user.conf immer noch vorhanden und wirksam. Diese könnt ihr belassen oder Löschen. Der Eintrag aus /var/packages/WebStation/target/misc/VirtualHost-nginx.mustache wurde durch das DSM-Update entfernt. Wie ihr das Timeout richtig konfiguriert seht ihr im Abschnitt virtueller Host.

PHP-Cache auf dem CLI

Wer sich erinnern kann, konnte man irgendwann auf der DiskStation den Nextcloud-Cron nicht mehr aufrufen und keine occ-Befehle mehr verwenden, sofern man in der Nextcloud-Config den PHP-Cache APCu aktiviert hatte. APCu musste für die CLI-Version von PHP extra aktiviert werden, dazu war dieser Workaround notwendig. Die gute Nachricht: die Datei samt Inhalt ist auch nach dem DSM-Update noch da, allerdings sind die Rechte wieder im, von Synology vorgesehenen Zustand. Weißt einfach nochmal die benötigte Berechtigung zu:

chmod -R 644 /usr/local/etc/php80/cli/conf.d/user_settings.ini

PHP 8.2

Wenn wir aber schon dabei sind, können wir gleich auf PHP 8.2 umstellen, denn das ist unter DSM 7.2 verfügbar. Installiert das Paket wie gewohnt. Jetzt müsst ihr den obigen Workaround auch für PHP 8.2 verfügbar machen. Ihr könnt dazu die Datei einfach kopieren, anschließend müsst ihr die Rechte anpassen:

cp /usr/local/etc/php80/cli/conf.d/user_settings.ini /usr/local/etc/php82/cli/conf.d/user_settings.ini
chmod -R 644 /usr/local/etc/php82/cli/conf.d/user_settings.ini

Anschließend müsst ihr noch den Cron-Aufruf im Aufgabenplaner aktualisieren und php80 in php82 ändern. Jetzt ist es an der Zeit uns die Änderungen in der WebStation anzuschauen.

virtueller Host

Die WebStation wurde stark überarbeitet. Die virtuellen Hosts wurden dabei in zwei Bereiche aufgeteilt. Scheinbar ist es jetzt möglich für Webanwendungen nicht mehr nur die von Synology zur Verfügung gestellten Pakete (z.B. PHP) zu verwenden, sondern Skriptsprachen auch per Docker zur Verfügung zu stellen. Wie das geht habe ich mir noch nicht näher angesehen. Bestehende virtuelle Hosts wurden aber ohne Anstand migriert.

Öffnet die WebStation, ihr könnt sehen dass der Bereich Webdienstportal in Webportal und Webdienst aufgesplittet wurde. Unter Skript-Spracheinstellungen findet ihr weiterhin die PHP-Profile. Dort müsst ihr das benutzerdefinierte open_basedir wieder aktivieren. Die Einträge für Nextcloud sind zwar noch vorhanden, allerdings ist nach dem Update “None” ausgewählt. Hier könnt ihr dann auch gleich die PHP-Version aktualisieren, sofern ihr das wollt, oder ihr legt einen eigenen Eintrag an. Speichert die Änderungen und wechselt in den Bereich Webdienst.

PHP-Profil
PHP-Profil

Hier findet ihr den Teil des virtuellen Hosts der Webserver, PHP-Version und den document root definiert. Unter “Website für native Skript-Sprachen” findet ihr für jeden virtuellen Host, den ihr unter DSM 7.1 konfiguriert hattet, einen eigenen Eintrag (erkennbar auch an der Beschreibung “vhost_migrate”). Der Name der Konfiguration spiegelt den Pfad des document root wieder. Prinzipiell müsst ihr hier keine Änderungen vornehmen. Habt ihr für PHP 8.2 ein eigenes Profil erstellt müsst ihr hier das Profil ändern. Markiert den Eintrag und klickt auf Bearbeiten. Eins wird euch gleich ins Auge springen und zwar eine Fehlermeldung, denn im generierten Namen sind Zeichen die eigentlich nicht verwendet werden dürfen. Ehe ihr Änderungen also speichern könnt, müsst ihr auch den Namen anpassen. Erlaubt sind nur Kleinbuchstaben, Zahlen, – und _ welche Namen ihr vergebt ist egal. Hier könnt ihr das Profil wechseln. Oder ihr legt auch hier wieder einen neuen Eintrag an. Außerdem findet ihr hier die Timeout-Angaben. Kontrolliert ob hier passende werte (mindestens 600) gesetzt sind. Wirklich hohe Werte sind eigentlich nur für die Installation notwendig da der Installationsassistent mehrere Minuten läuft. Wollt ihr über das Webinterface auch große Dateien hochladen müsst ihr den erhöhten Zeitbedarf aber berücksichtigen.

virtueller Host Teil 1
virtueller Host Teil 1

Zu guter Letzt schauen wir uns den Bereich Webportal an. Hier findet ihr den Teil des virtuellen Hosts, der Domain und Ports, etc. betrifft. Auch hier ist nach der Migration eigentlich kein Eingriff erforderlich. Habt ihr zuvor unter Webdienst aber den Eintrag umbenannt, müsst ihr hier den Eintrag eventuell korrigieren. Bearbeitet dazu den Eintrag eurer Nextcloud-Domain. Ganz oben unter “Dienst” müsst ihr den Webdienst-Eintrag auswählen indem ihr den document root für eure Nextcloud definiert habt. Ich weiß nicht ob der Eintrag automatisch aktualisiert wird, wenn ihr den Webdienst-Eintrag unter anderem Namen abspeichert. Hier findet ihr auch eine praktische neue Funktion, nämlich den Button Protokoll. Hier könnt ihr euch das Webserver-Log für den markierten virtuellen Host anzeigen lassen. Es ist also kein umweg über PuTTY mehr notwendig.

virtueller Host Teil 2
virtueller Host Teil 2

Abschluss

So das wars. Ihr müsst jetzt nur noch den Cron im Aufgabenplaner wieder aktivieren und eure Nextcloud aus dem Maintenance-Mode holen:

sudo -u http php80 occ maintenance:mode --off

Kontrolliert ob ihr im Adminbereich Fehler angezeigt bekommt und ob der Cron auch wieder regelmäßig ausgeführt wird. Hier nochmal kurz zusammengefasst die Schritte die für ein erfolgreiches DSM-Update erforderlich sind (ohne PHP-Update).

  • Maintenance-Mode ein
  • Cron-Aufruf deaktivieren
  • DSM-Update
  • Nötige Berechtigung für den PHP-CLI-Workaround setzen
  • benutzerdefiniertes open_basedir aktivieren
  • Timeouts kontrollieren
  • Cron-Aufruf aktivieren
  • Maintenance-Mode aus

Möchtet Ihr noch detailliertere Schritt-Für-Schritt-Anleitungen für euer Synology NAS, mit viel mehr Hintergrundinformationen, Tipps und Tricks? Dann holt euch mein Wissen als als umfassendes Praxis-Handbuch. Mehr Infos findet ihr in keinem Buch zu Synology und alles in der von mir gewohnten Qualität.

Die dritte Auflage enthält Aktualisierungen zu DSM 7.1 und den Updates von WebStation, Surveillance Station und Synology Photos.

Das Buch direkt beim Verlag

Das Buch auf Amazon

Related Posts

Schreibe einen Kommentar

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