Im letzten Beitrag habe ich erklärt, wie man gängige Fehler und Sicherheitslücken behebt und Nextcloud für ein produktives Umfeld optimiert. In diesem Beitrag zeige ich euch, wie ihr eure Nextcloud update könnt und zwar sowohl per manuellem Update als auch per Updater-App.
Update: Mai 2019 – Abschnitt mit Hinweisen zu einzelnen Versionen hinzugefügt.
Update: Jänner 2019 – Info zur Nextcloud 15 (imagick) hinzugefügt.
Update: Dezember 2017 – nginx Timeout während dem Update per App.
Update: Juli 2017 – Hinweis zu Apache 2.4 und PHP 7 hinzugefügt.
Manuelles Update
- Erstellt ein Backup eurer Nextcloud-Datenbank.
- Maintenance-Mode.
- Verbindet euch via putty mit der Diskstation.
- Loggt euch als Administrator ein.
- Erlangt root-Zugriff mit sudo -i und eurem Passwort.
- Wechselt in den Nextcloud-Ordner unter /volumeX/web.
- Aktiviert den Maintenance-Mode mit:
sudo -u http php56 occ maintenance:mode --on
Achtet auf der DiskStation darauf http als Nutzer zu verwenden und php56 zu schreiben um occ verwenden zu können. Alternativ könnt ihr den Maintenance-Mode auch direkt in der config.php aktivieren.
- Stoppt den Webserver (WebStation im Paket Zentrum stoppen).
- Benennt euren Nextcloud-Ordner unter /volumeX/web um (z.B. Nextcloud-Old).
- Ladet euch den neuesten Nextcloud Release hier herunter.
- Ladet das Archiv auf eure DiskStation und entpackt es unter /volumeX/web.
- Benennt das Verzeichnis um, falls ihr vorher einen anderen Namen benutzt habt.
- Kopiert euere config.php aus eurem alten Verzeichnis in das neue.
- Solltet ihr euer data-Verzeichnis noch innerhalb eures Nextcloud-Verzeichnisses haben, müsst ihr es auch in das neue Verzeichnis kopieren. Habt ihr es außerhalb des /web Ordners müsst ihr nichts tun, da der Pfad in den config.php steht.
- Habt ihr 3rd-Party-Apps installiert, schaut im neuen Verzeichnis unter /apps ob sie dort vorhanden sind, wenn nicht, kopiert sie dort hin. Achtung: macht das nur für Apps die ihr tatsächlich installiert habt. Lasst apps die ihr nicht kennt und im neuen Verzeichnis nicht finden könnt aus. Es kommt vor, dass Apps in neuen Nextcloud-Versionen nicht mehr enthalten sind, diese werdet ihr auch nicht mehr im /apps-Verzeichnis finden.
Rechte anpassen
- Legt euch ein Script auf der Diskstation mit folgendem Inhalt an:
#!/bin/bash chown -R http:http /volume1/web/Nextcloud/ chmod -R 777 /volume1/web/Nextcloud/
Habt ihr Nextcloud mit der Anleitung aus diesem Artikel installiert und das Script schon angelegt, könnt ihr euch diesen Schritt sparen. Ihr könnt die Rechte auch direkt über putty oder WinSCP anpassen. Ich empfehle aber die Script-Variante, da ihr bei jedem Update die Rechte ändern müsst, ihr spart euch dadurch das ständige eintippen in putty bzw. das Setzen der Rechte via WinSCP.
- Verbindet euch via putty mit der Diskstation
- Loggt euch als Administrator ein.
- Erlangt root-Zugriff mit sudo -i und eurem Passwort.
- Führt die beiden Zeilen per putty aus oder ruft das Script mit sh /volumeX/Pfad/zum/Script.sh aus.
Update ausführen
- Startet den Webserver wieder.
- Wechselt in putty in euer Nextcloud-Verzeichnis.
- Deaktiviert den Maintenance-Mode wieder, der upgrade Befehl scheint den Maintenance-Mode selbst zu aktivieren, ist der Modus schon vorher aktiv lässt sich das Update nicht starten:
sudo -u http php56 occ maintenance:mode --off
- Startet das Update mit occ:
sudo -u http php56 occ upgrade
- Der Vorgang dauert, abhängig von der Größe eurer Installation, einige Zeit. In der Kommandozeile werdet ihr über die einzelnen Schritte informiert und nach Abschluss des Updated erhaltet ihr eine Meldung.
- Deaktiviert den Maintenance-Mode wieder:
sudo -u http php56 occ maintenance:mode --off
- Eure Nextcloud ist jetzt aktualisiert, fahrt mit den Schritten nach dem Update fort.
Update per Updater-App
ACHTUNG: Das Updater per Updater funktioniert erst ab Nextcloud 10.0.1 einwandfrei. Ältere Nextcloud-Versionen sowie Owncloud verwenden noch den Owncloud-Updater, welcher als sehr instabil gilt bzw. über den unter Nextcloud keine neuen Versionen ausgeliefert werden.
Ein Update per Updater könnt ihr dann ausführen, wenn euch Nextcloud per Notification auf ein vorhandenes Update hinweist. Die Notification bekommt ihr entweder über den Nextcloud-Client oder über das Webinterface.
Ein weiterer Fehler der wärend dem Update auftreten kann ist ein Timeout.
Parsing response failed. <html> <head><title>504 Gateway Time-out</title></head> <body bgcolor="white"> <center><h1>504 Gateway Time-out</h1></center> <hr><center>nginx</center> </body> </html> <!-- a padding to disable MSIE and Chrome friendly error page -->
Für Apache nutzer mag der Hinweis auf nginx etwas verwirrend sein, allerdings ist es so, dass, seit nginx mit DSM 6 eingeführt wurde, dieser als Proxy dient, auch wenn man den Apache als Webserver auswählt. Das Timeout muss also im nginx angehoben werden.
- Dazu braucht ihr putty oder ein ähnliches Tool und damit Zugriff auf eure DS.
- Öffnet die Datei /etc/nginx/proxy.conf mit vi oder nano.
- Setzt bzw erhöht den wert von proxy_read_timeout XXX; (300 sollte ein guter Wert sein).
- Startet den nginx neu mit synoservice –restart nginx.
Rechte anpassen:
Dies ist die einzige Aufgabe die der Updater (bewusst) nicht übernimmt. Damit das Update ausgeführt werden kann, müssen die Rechte entsprechend gesetzt werden. Die Rechte werden am besten über putty oder WinSCP gesetzt. Diejenigen die schon den ersten Artikel dieser Serie gelesen haben und sich wie empfohlen das Script angelegt haben, sparen hier Zeit und Arbeit und können bei Punkt 2 fortfahren.
- Alle anderen legen sich am besten irgendwo auf der DS ein Script an (Textdatei mit der Endung .sh), der Inhalt ist folgender:
#!/bin/bash chown -R http:http /volume1/web/Nextcloud/ chmod -R 777 /volume1/web/Nextcloud/
- Verbindet euch via putty mit der Diskstation
- Loggt euch als Administrator ein.
- Erlangt root-Zugriff mit sudo -i und eurem Passwort.
- Führt die beiden Zeilen per putty aus oder ruft das Script mit
sh /volumeX/Pfad/zum/Script.sh
aus.
Updater ausführen:
- Loggt euch in das Nextcloud-Webinterface ein.
- Wechselt in den Administrator-Bereich. Dort solltet ihr den Hinweis auf die neue Version finden.
- Öffnet den Updater über den eingeblendeten Button. Der Updater zeigt dann nochmal die aktuelle Version und die neue Version auf die er aktualisieren wird.
Der Updater führt einige Checks durch, bevor der eigentliche Update-Prozess gestartet wird. Unter anderem wird überprüft ob Dateien und/oder Ordner vorhanden sind, die in der aktuellen Nextcloud-Version nicht mehr benutzt werden. Diese können im Normalfall einfach gelöscht werden. Der Updater kann dann über den Button neu gestartet werden.
Als Nächstes werden die Rechte überprüft. Habt ihr diese vorhin nicht angepasst, schlägt dieser Punkt fehl. Überprüft in diesem Fall die Rechte und fahrt dann fort. Dieser Punkt kann einige Minuten in Anspruch nehmen.
Der Updater legt ein Backup an und beginnt mit dem Aktualisieren der Dateien.
Datenbank aktualisieren:
Dieser Prozess kann auf 2 verschiedene Arten durchgeführt werden. Entweder über das Webinterface oder über die Kommandozeile (putty). Bei sehr großen Datenbanken kann es bei dem Update zu einem PHP-Timeout kommen. In diesem Fall muss man das Update über die Kommandozeile machen. Lasst den Maintanance Mode aktiv in dem ihr auf “Yes” klickt und fahr bei der obigen Anleitung für das manuelle Update unter “Update ausführen” Punkt 4 fort.
- Für das Update über das Webinterface klickt auf “No”.
- Ein neuer Button taucht auf. Klickt ihn um das Webinterface erneut aufzurufen.
- Wie bei der Erstinstallation könnt ihr den zweiten Teil des Updates starten.
Auch dieser Teil kann wieder einige Zeit dauern. Der Abschluss wird mit einer Meldung bestätigt. Hier erfahrt ihr auch, ob und welche Apps deaktiviert wurden.
Nach dem Update
- Ladet die Seite neu und ihr befindet euch wieder im Webinterface.
- Hier könnt ihr im Admin-Bereich kontrollieren ob Nextcloud richtig aktualisiert wurde, indem ihr die Versionsnummer überprüft. Auch eventuelle Fehlermeldungen und Hinweise werden hier angezeigt.
- Als Nächstes könnt ihr die deaktivierten Apps wieder aktivieren.
- Wenn ihr euch sicher seid, dass das Update funktioniert hat, ist es Zeit die Rechte wieder anzupassen. Habt ihr den letzten Artikel gelesen und das Script bereits angelegt, könnt ihr euch diesen Schritt wieder sparen. Wenn nicht, legt euch ein zweites Script mit folgendem Inhalt an:
#!/bin/bash ncpath='/volume1/web/nextcloud' ncdatapath='/volume1/ncdata' #Setzt hier den Pfad zu eurem data-Verzeichnis ein, sofern ihr es, wie empfohlen als eigenen Shared Folder angelegt hab. 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
- Ruft mit putty das Script mit sh /volumeX/Pfad/zum/Script.sh auf.
Das wars, eure Nextcloud ins aktualisiert und wieder einsatzbereit. Ich kann euch nur empfehlen euch die Zeit zu nehmen und die beiden Script anzulegen, solltet ihr das noch nicht gemacht haben. Ihr spart euch bei allen zukünftigen Updates die Zeilen einzeln in putty einzugeben. Ihr braucht auch nicht mehr nachsehen, wo ihr welche Rechte setzen müsst, lediglich ein Aufruf vor und nach dem Update reicht aus.
Hinweise zu einzelnen Versionen
Nach einem Update können im Admin-Bereich neue Meldungen auftauchen. Solche wie ihr sie direkt nach der Installation gesehen habt. Das bedeutet nicht unbedingt, dass es sich um einen Fehler handelt, meist enthalten neue Versionen Optimierungen, die einige Anpassungen an eurem System erfordern.
Wie ihr die Meldungen wegbekommt, könnt ihr in diesem Artikel nachlesen.
Nextcloud 16
PHP-Limits wurden aus dem Admin-Bereich und der .htaccess entfernt. Außerdem muss die Datenbank erneut aktualisiert werden.
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.
Mittlwerweile wurde ein Update für die WebStation sowie ein Paket für PHP 7.2 veröffentlicht, imagick ist darin nicht enthalten, eine Installation bzw. ein aktivieren des Moduls ist bisher in der Community noch nicht gelungen.
ABER: Imagic wird für 2 Dinge genutzt, zum einen generiert es ein Favicon aus dem Logo im Themeing-Bereich, zum anderen verbessert es die Vorschauen in der Gallery-App und ermöglicht das Ansehen von RAW-Dateien.
Habt ihr imagick nicht, wird ganz einfach kein favicon generiert und im Themeing-Bereich wird eine entsprechende Meldung ausgegeben. Die Gallery-App verwende ich nicht, so weit ich gelesen habe, kann man sie auch ohne imagick verwenden, muss aber auf die erwähnten Features verzichten und erhält Fehlermeldungen im Log.
Der Einsatz von imagick ist in Nextcloud-Kreisen umstritten, da es nicht mehr weiterentwickelt wird, es Sicherheitsbedenken gibt und auch de Performance angezweifelt wird. Ich werde euch weiterhin auf dem Laufenden halten.
Nextcloud 14 und höher
Ab Nextcloud 14 benötigt ihr mindestens PHP 7.0. Da aber auch 7.0 demnächst eol geht, solltet ihr das vor kurzen veröffentlichte PHP 7.2-Paket über das Paketzentrum installieren. Nach dem installieren müsst ihr entweder ein neuen PHP-Profil in der WebStation anlegen, oder ihr ändert im bestehenden PHP-Profil einfach die PHP-Version. Ein neues Profil zu erstellen kann mühsam sein, da ihr alle Einstellungen aus dem alten Profil übernehmen müsst. Habt ihr außerdem redis im Einsatz, müsst ihr auch noch über die Kommandozeile einige Änderungen durchführen.
Geht ihr aber dennoch den Weg über ein neues Profil und ihr habt einen vHost für eure Nextcloud eingestellt, vergesst nicht, dort das neue Profil auszuwählen.
Mit den 3 Artikeln zur Installation, der Optimierung und dem Update habt ihr alle wichtigen Werkzeuge für die Einrichtung und den Betrieb von Nextcloud auf eurer Diskstation. Die Artikelserie ist damit aber noch nicht zu Ende, es gibt noch so einiges was man mit Nextcloud auf der DiskStation anstellen kann. Nach einer kleinen Winterpause gehts wieder weiter.
Das geht alles einfacher mit dem offiziellen Updater, aber von der Konsole gestartet, nicht im Browser:
“Using the command line based updater”:
https://docs.nextcloud.com/server/20/admin_manual/maintenance/update.html#using-the-command-line-based-updater
Siehe auch https://gist.github.com/alainwolf/480d1b50b49f3e84fb021c793023d8b8 für ein Script.
Hallo Andreas,
vielen Dank für diese Anleitung. Anhand der Anleitung wollte ich ein manuelles Update von 15.0.8 auf 16.0.11 durchführen. Ich scheitere jedoch immer am letzten Schritt mit “sudo -u http php56 occ upgrade” das Update dann auszuführen. Nach Eingabe des Befehls erhalte ich immer folgende Fehlermeldung:
_______
Nextcloud or one of the apps require upgrade – only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
Setting log level to debug
Danke!
Jan
Turned on maintenance mode
Updating database schema
Updated database
UnexpectedValueException: The files of the app “settings” were not correctly replaced before running the update
Update failed
Maintenance mode is kept active
Resetting log level
______
Ich habe bereits selbst recherchiert und verschiedene Lösungsansätze gelesen, dass der entsprechende App-Ordner gelöscht werden sollen oder der App-Ordner der alten Installation darüber kopiert werden soll. Für die App “settings” gibt es jedoch im Ordner apps keinen Ordner. Hast du vielleicht eine Idee woran das liegen könnte und was ich tun kann?
Hallo Jan,
Den Fehler seh ich zum ersten mal. Ich weiß nicht genau was die App “Settings” ist. Aber wenn du rausfindest welche das ist, könntest du sie installieren und wieder deinstallieren, vielleicht hilft das. Ansonsten wäre es noch möglich die Datenbank aufzuräumen bevor du das Update machst mit “sudo -u http php56 occ maintenance:repair”. Hilft auch das nicht könntest du über phpMyAdmin direkt in der Datenbank versuchen die entsprechende Tabelle zu säubern. Das erfordert aber natürlich etwas Detektivarbeit und Datenbank-Kenntnisse und ist auch keine Garantie für einen Erfolg. Der letzte Ausweg wäre ein Datenbank-Backup und eine Neuinstallation mit der gewünschten Version und dann das Backup importieren. Aber damit kanns natürlich sein, dass du dir den Fehler mitnimmst.
Grüße
Andreas
Hallo,
funktioniert diese Anleitung speziell in Bezug auf den Web_Updater auch bei eime Update von 22.1.1 auf 22.2.0?
Reicht es aus “einfach” in der Weboberfläche den Updater zu starten?
Hallo Leo,
Ja, ich hab das Update auch mit dem Web Updater gemacht.
Wenn du einen virtuellen Host verwendest, schau dir aber mal diesen Artikel hier an. Beim Updater kanns nämlich zum Timeout kommen.
Grüße
Andreas
Vielen Dank,
Timeout habe ich angepasst.
Leider wird der Step Backup wird mit der Fehlermeldung “Bei der Verarbeitung dieser Anforderung ist ein Fehler aufgetreten.” abgebrochen. Was kann die Ursache sein?
Nachdem ich mich statt über den Hostnamen über die IP-Adresse mit Nextcloud verbunden habe, wurde vom Updater statt “Retry Update” der Button “Continue Update” angeboten. Damit lief das Update weiter. Allerdings hängt Nextcloud nun im Mainteance-Mode fest und lässt keinen Login zu. Setze ich in der config.php maintenance auf false, bietet die Startseite der Weboberfläche an, das Update zu starten:
Nextcloud wird auf Version 22.2.2 aktualisiert
Bitte stelle vor dem Fortsetzen sicher, dass die Datenbank, der Konfigurationsordner und der Datenordner gesichert wurden.
Zur Vermeidung von Zeitüberschreitungen bei größeren Installationen kannst Du stattdessen den folgenden Befehl in Deinem Installationsverzeichnis ausführen:
./occ upgrade
Leider bricht das Update dann mit folgender Meldung ab:
Nextcloud
Aktualisierung auf 22.2.2
Es ist ein Fehler aufgetreten.
Detaillierte Protokollmeldungen
Update vorbereiten
Log-Level auf “debug” gesetzt
Wartungsmodus eingeschaltet
Repair MySQL collation
All tables already have the correct collation -> nothing to do
Repair SQLite autoincrement
Copy data from accounts table when migrating from ownCloud
Drop account terms table when migrating from ownCloud
Das Datenbankschema wird aktualisiert
Datenbank aktualisiert
Suche nach einer Aktualisierung für die App “accessibility” im App-Store
App-Store auf Aktualisierung für die App “accessibility” geprüft
Suche nach einer Aktualisierung für die App “activity” im App-Store
App-Store auf Aktualisierung für die App “activity” geprüft
Suche nach einer Aktualisierung für die App “bruteforcesettings” im App-Store
App-Store auf Aktualisierung für die App “bruteforcesettings” geprüft
Suche nach einer Aktualisierung für die App “circles” im App-Store
App-Store auf Aktualisierung für die App “circles” geprüft
Suche nach einer Aktualisierung für die App “cloud_federation_api” im App-Store
App-Store auf Aktualisierung für die App “cloud_federation_api” geprüft
Suche nach einer Aktualisierung für die App “comments” im App-Store
App-Store auf Aktualisierung für die App “comments” geprüft
Suche nach einer Aktualisierung für die App “contactsinteraction” im App-Store
App-Store auf Aktualisierung für die App “contactsinteraction” geprüft
Suche nach einer Aktualisierung für die App “dashboard” im App-Store
App-Store auf Aktualisierung für die App “dashboard” geprüft
Suche nach einer Aktualisierung für die App “dav” im App-Store
App-Store auf Aktualisierung für die App “dav” geprüft
Suche nach einer Aktualisierung für die App “federatedfilesharing” im App-Store
App-Store auf Aktualisierung für die App “federatedfilesharing” geprüft
Suche nach einer Aktualisierung für die App “federation” im App-Store
App-Store auf Aktualisierung für die App “federation” geprüft
Suche nach einer Aktualisierung für die App “files” im App-Store
App-Store auf Aktualisierung für die App “files” geprüft
Suche nach einer Aktualisierung für die App “files_pdfviewer” im App-Store
App-Store auf Aktualisierung für die App “files_pdfviewer” geprüft
Suche nach einer Aktualisierung für die App “files_rightclick” im App-Store
App-Store auf Aktualisierung für die App “files_rightclick” geprüft
Suche nach einer Aktualisierung für die App “files_sharing” im App-Store
App-Store auf Aktualisierung für die App “files_sharing” geprüft
Suche nach einer Aktualisierung für die App “files_trashbin” im App-Store
App-Store auf Aktualisierung für die App “files_trashbin” geprüft
Suche nach einer Aktualisierung für die App “files_versions” im App-Store
App-Store auf Aktualisierung für die App “files_versions” geprüft
Suche nach einer Aktualisierung für die App “files_videoplayer” im App-Store
App-Store auf Aktualisierung für die App “files_videoplayer” geprüft
Suche nach einer Aktualisierung für die App “firstrunwizard” im App-Store
App-Store auf Aktualisierung für die App “firstrunwizard” geprüft
Suche nach einer Aktualisierung für die App “logreader” im App-Store
App-Store auf Aktualisierung für die App “logreader” geprüft
Suche nach einer Aktualisierung für die App “lookup_server_connector” im App-Store
App-Store auf Aktualisierung für die App “lookup_server_connector” geprüft
Suche nach einer Aktualisierung für die App “nextcloud_announcements” im App-Store
App-Store auf Aktualisierung für die App “nextcloud_announcements” geprüft
Suche nach einer Aktualisierung für die App “notifications” im App-Store
App-Store auf Aktualisierung für die App “notifications” geprüft
Suche nach einer Aktualisierung für die App “oauth2” im App-Store
App-Store auf Aktualisierung für die App “oauth2” geprüft
Suche nach einer Aktualisierung für die App “password_policy” im App-Store
App-Store auf Aktualisierung für die App “password_policy” geprüft
Suche nach einer Aktualisierung für die App “photos” im App-Store
App-Store auf Aktualisierung für die App “photos” geprüft
Suche nach einer Aktualisierung für die App “privacy” im App-Store
App-Store auf Aktualisierung für die App “privacy” geprüft
Suche nach einer Aktualisierung für die App “provisioning_api” im App-Store
App-Store auf Aktualisierung für die App “provisioning_api” geprüft
Suche nach einer Aktualisierung für die App “recommendations” im App-Store
App-Store auf Aktualisierung für die App “recommendations” geprüft
Suche nach einer Aktualisierung für die App “serverinfo” im App-Store
App-Store auf Aktualisierung für die App “serverinfo” geprüft
Suche nach einer Aktualisierung für die App “settings” im App-Store
App-Store auf Aktualisierung für die App “settings” geprüft
Suche nach einer Aktualisierung für die App “sharebymail” im App-Store
App-Store auf Aktualisierung für die App “sharebymail” geprüft
Suche nach einer Aktualisierung für die App “support” im App-Store
App-Store auf Aktualisierung für die App “support” geprüft
Suche nach einer Aktualisierung für die App “survey_client” im App-Store
App-Store auf Aktualisierung für die App “survey_client” geprüft
Suche nach einer Aktualisierung für die App “systemtags” im App-Store
App-Store auf Aktualisierung für die App “systemtags” geprüft
Suche nach einer Aktualisierung für die App “text” im App-Store
App-Store auf Aktualisierung für die App “text” geprüft
Suche nach einer Aktualisierung für die App “theming” im App-Store
App-Store auf Aktualisierung für die App “theming” geprüft
Suche nach einer Aktualisierung für die App “twofactor_backupcodes” im App-Store
App-Store auf Aktualisierung für die App “twofactor_backupcodes” geprüft
Suche nach einer Aktualisierung für die App “updatenotification” im App-Store
Es ist ein Fehler aufgetreten.
Bitte die Seite neu laden.
Nach den neu laden der Seite ist Nextcloud wieder im Wartungsmodus.
Was kann ich tun?
Hey zusammen
Vielen Dank erstmal. Dank diesen Tutorials betreibe ich schon seit einiger Zeit eine eigene Nextcloud Instanz und bin sehr zufrieden damit. Nun habe ich ein Problem beim Updaten. (Bin nicht sicher, ob der Kommentar hier oder in der Optimierungsseite besser wäre.)
Sobald ich von Version 20 auf 21 Update, kommt folgender Fehler bei OCC Kommandos
“PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) in /volume1/web/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 133”
Nach kurzer Recherche kam ich auf folgende Infos: https://help.nextcloud.com/t/solved-occ-command-php-fatal-error-allowed-memory-size-of-xxx-bytes-exhausted/108521
Wenn ich nun aber in der WebStation die apc.enable_cli auf 1 setze, dann ändert sich nichts an der Fehlermeldung.
Wenn ich APCu deaktiviere in der nextcloud config.php, dann läuft es.
Ich habe nun mein Backup zurückgespielt und bin wieder auf der Version 20. Vielleicht gibt es bald eine Anleitung, wie man diesen Fehler beheben kann? Das wäre toll. 🙂
Lieben Dank für all die Erklärungen und das Engagement.
Hallo,
Wenn du das occ Command ausführst, gibst du dann ein Memory-Limit mit ‘-d memory_limit=XXXXM’ an?
Grüße
Andreas
Hallo Andreas,
Ja, das mache ich.
“sudo -u http php74 -d memory_limit=512M occ maintenance:mode –on”
Hast du schon versucht das Memory-Limit zu erhöhen?
Habe es mit verschiedenen Memory-Limits versucht. Ich habe nun das Backup zurückgespielt und nochmals versucht.
Der erste Fehler passiert schon, nachdem ich den alten Nextcloud-Ordner umbenannt , die Nextcloud21 heruntergeladen und entpackt und die config.php in den neuen Nextcloud Ordner kopiert habe (plus Rechte angepasst gemäss Script). Also unter Punkt 3 bei “Update ausführen”, Maintenance Mode wieder abstellen. Dann kommen folgende Fehlermeldungen:
—-
root@syno:/volume1/web/nextcloud# sudo -u http php74 occ maintenance:mode –off
PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) in /volume1/web/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 133
Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) in /volume1/web/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 133
———————————-
root@syno:/volume1/web/nextcloud# sudo -u http php74 -d memory_limit=1024M occ maintenance:mode –off
PHP Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 266240 bytes) in /volume1/web/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 133
Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 266240 bytes) in /volume1/web/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 133
———————————
root@syno:/volume1/web/nextcloud# sudo -u http php74 -d memory_limit=3000M occ maintenance:mode –off
PHP Fatal error: Allowed memory size of 3145728000 bytes exhausted (tried to allocate 20480 bytes) in /volume1/web/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 133
Fatal error: Allowed memory size of 3145728000 bytes exhausted (tried to allocate 20480 bytes) in /volume1/web/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 133
———————————
root@syno:/volume1/web/nextcloud# sudo -u http php74 -d memory_limit=4096M occ maintenance:mode –off
PHP Fatal error: Allowed memory size of 4294967296 bytes exhausted (tried to allocate 20480 bytes) in /volume1/web/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 133
Fatal error: Allowed memory size of 4294967296 bytes exhausted (tried to allocate 20480 bytes) in /volume1/web/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php on line 133
———————————-
Es scheint wirklich nicht ein Problem der Speicherzuweisung zu sein, sondern ein Problem mit der APCu Konfiguration.
Habe vor dem Update in den PHP7.4 Einstellungen in der WebStation die “apc.enable_cli=1” schon gesetzt. (Was gemäss meinem obigen Link die Fehlerquelle sein sollte…) Trotzdem taucht der Fehler auf.
Liebgruss und nochmals: Danke für das Teilen deines Wissens. 🙂
Hallo,
Ja es handelt sich um einen Bug: https://github.com/nextcloud/server/issues/25742
Das Ticket wurde zwar kurzfristig geschlossen aber der Fix mit apc.enable_cli=1 funktioniert nicht bei jedem, außerdem würde der Cron dann trotzdem nicht funktionieren.
Heißt also abwarten. Ich würde sowieso die X.0.0 Versionen immer auslassen. Bisher gabs bei jeder Hauptversion immer kleine Probleme am Anfang. Ich selbst warte immer bis ein Update per Updater-App verfügbar ist und das ist dann erst bei x.0.1 oder später der Fall.
Grüße
Andreas
Habe nach langer Zeit nun herausgefunden, wo die Fehler liegen.
(php7.4)
unter /usr/local/etc/php74/cli/php.ini muss eingestellt werden
apc.enable_cli = 1
apc.shm_size = 512M
unter /usr/local/etc/php74/cli/conf.d/extensions.ini muss hinzugefügt werden (eigene zeile)
extension = apcu.so
Dann läuft es wieder. 🙂
Die Lösung habe ich auch schon hier gepostet.
oh, das ging mir wohl durch die lappen. 🙂
Hallo,
bitte auch hier für die Rechte ein Skript einführen, bspw. wie folgt:
#!/bin/bash
ncpath=’/volume1/web/nextcloud’
webserver_user_group=’http:http’
chown -R ${webserver_user_group} ${ncpath}/
chmod -R 777 ${ncpath}/
Gruß, Till
Hi,
danke für deine sehr ausführlichen Tutorials zu Nextcloud.
Ich habe eine kurze Frage: die Installation von NC18 gestaltet sich ja etwas anders als die Installation von NC17.
Die Verhält es sich denn beim Update? Ich bin im Moment noch auf NC17.0.4 und würde gerne auf NC18.0.3 updaten. Muss ich da was beachten oder kann ich dies über den Updater einfach durchführen?
LG Johannes
Hallo,
Solle problemlos Über den Updater laufen, du musst dann nur die notwendigen Apps nachinstallieren, wenn du die Collaboration-Funktion nutzen willst. Hier kannst du mehr zu den Collaboration-Apps nachlesen. Ich bin gerade am Umziehen, daher konnte ich das Update selbst noch nicht durchführen.
LG
Andreas
Hi,
perfekt. Es hat alles gekappt. Danke noch mal auch für die Anleitungen und ein schönes Wochenende.
Gruß Johannes
Falls einige auch das Problem haben, dass der Zugriff auf das data-Verzeichnis nicht richtig funktioniert, hat folgendes bei mir geholfen:
Fehlermeldung war insoweit: Berechtigungen können zumeist korrigiert werden indem dem Web-Server Schreibzugriff auf das Wurzel-Verzeichnis eingeräumt wird. Siehe auch https://docs.nextcloud.com/server/17/go.php?to=admin-dir_permissions.
Einfach dem Script folgende (letzte) Zeile hinzufügen:
…
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/
chown -R ${htuser}:${htgroup} /volume1/web/nextcloud/data/
…
Muss wärend eines backups nextcloud nicht in den maintainace modus gesetzt werden? Damit keine schreib/datenbank operationen wärend des Backups passieren, oder?
Geht das mit Hyperbackup?
Guter Punkt, ich verwende eigentlich nur noch den Updater, daher hab ich hier auch noch keine Probleme gehabt.
Ich habe das Backup meist im PHPMyAdmin erstellt, hier müsste MariaDB eigentlich selbst dafür sorgen, dass hier nichts schief läuft.
Mit Hyper-Backup direkt geht das nicht. Für ein manuelles Update brauchst du aber sowieso putty, da kannst du den Maintenance-Mode vorher einschalten. Oder falls du Backups über Hyper-Backup automatisiert hast, kannst dir im Aufgabenplaner zwei Aufgaben erstellen, die den Befehl zum ein- und ausschalten des Maintenance-Modes enthalten.
Die Aufgaben kannst du dann zeitlich vor und nach dem Backup-Task ausführen lassen.
Hallo Andreas,
ich nutze nextcloud 13.0.12 auf meiner DS918+.
habe diese vor ca einem Jahr mit einem online Tuturial mit php5.6 sowie mariaDB 5 und 10 und apache 2.4 erstellt.
Leider habe ich keinen Dau, wie ich jetzt das ganze upgraden kann, ohne dass ich meine Einstellungen sowie Daten verliere.
Kann man bei dir eine Teamviewer Session buchen, sodass du mir das upgradest? telefon eventuell via Skype/Discord etc.
Danke für eine kurze Rückmeldung (auch gern via Mail wenn du möchtetst).
Lg
Christoph
Hallo,
Ich betreibe den Blog nur nebenher und habe momentan nur sehr wenig Zeit, aber ich kann dich gerne per Mail unterstützen.
Du kannst mich unter blog@viking-studios.net erreichen.
LG
Andreas
Hallo Andreas,
vielen Dank für deine tollen Anleitungen rund um die Diskstation und Nextcloud.
Dank dieser Anleitungen habe ich erfolgreich Nextcloud auf der Diskstation installiert und bisher auf Nextcloud 13 aktualisiert.
Eine Aktualisierung auf Nextcloud 14/15 und MariaDB10 habe ich aber leider nicht hinbekommen, danach lief dann nichts mehr.
Dank Hyper Backup von MariaDB5 und Sicherung des Nextcloud Verzeichnisses habe ich zwar den alten Zustand wieder hinbekommen, aber ich würde mich sehr über Tipps/Anleitungen zu eine entsprechenden Migration/Aktualisierung freuen.
Gruß Norbert.
Hallo Norbert,
Ich würde das ganze schrittweise angehen. Zuerst einmal würde ich MariaDB aktualisieren.
– Erstelle ein Backup deiner Datenbank (im phpMyAdmin oder wenn die Datenbank zu groß ist, per command line, nicht über HyperBackup).
– Deaktiviere MariaDB5.
– Installiere MariaDB10.
– Spiel das Backup (über phpMyAdmin oder command line) in die MariaDB10 ein.
– In der config von Nextcloud (web/nextcloud/config/config.php) musst du die DB-Serveradresse ändern (127.0.0.1:3307, localhost funktioniert nicht).
– Jetzt sieh dir an on Nextcloud noch läuft. Erst wenn alles funktioniert würde ich mit dem Update auf eine höhere Version fortfahren.
Noch eine Frage zum Update, du musst für Nextcloud 14 Apache 2.4 und PHP 7.0 laufen haben. Es gibt für die DiskStaion mittlerweile PHP 7.2. Da läuft bei mir problemlos. Also am Besten aktualisierst du deinen Webserver bevor du das Update ausführst.
Grüße,
Andreas
Hallo Andreas,
habe die Nextcloud etwas länger ruhen lassen und wollte jetzt deine Tipps umsetzten.
Ein Update auf PHP7.2 und Apache 2.4 hat geklappt und die Optimierungen habe ich soweit nach deinen Angaben gemacht.
Wenn ich jetzt aber versuche ein Update von mittlerweile 14.0.8 auf 14.0.12 zu machen bekomme ich immer einen Parsing Fehler mit langen Fehlertext (Ausschnitt hieraus siehe weiter unten) .
In diesem steht auch etwas von “Copyright (c) 2019 Synology Inc.”, was ich in diesem Zusammenhang überhaupt nicht verstehe.
Nach einem Abbruch habe ich grundsätzlich erstmal immer alles wieder hergestellt, Einstellungen angepasst und es erneut probiert. Aber leider ohne Erfolg.
Habe schon den Timeout in der proxy.conf und httpd-default.conf (2,4) auf 600 gesetzt, hat leider alles nichts genützt.
Das die Datenbank immer noch MariaDB5 ist sollte ja kein Problem sein oder?
Konnte die alten Sicherungen wieder zurückspielen aber komme irgendwie nicht weiter.
Hast du noch eine Idee?
Schöne Grüße Norbert
Fehlermeldung im Schritt Backup bzw. einmal bin ich bis zum Schritt “Move new Files in Place” gekommen (musste die Fehlermeldung komplett einkürzen da der Text sonst nicht angenommen wurde):
Parsing response failed. …… /* Copyright (c) 2019 Synology Inc. All rights reserved. */ (
Hallo,
Das “Copyright (c) 2019 Synology Inc” kommt daher, dass es sich nicht um eine Fehlermeldung von Nextcloud handelt sondern vom Webserver. Ich hatte schon mal ein ähnliches, wenn nicht sogar das gleiche Problem. Kann dir aber leider nicht mehr sagen was es war.
Der viele Test den du siehst, ist nicht die eigentliche Fehlermeldung, sondern HTML-Code.
Du müsstest die eigentliche Fehlermeldung finden. Am einfachsten tust du dir, wenn du den ganzen Text in einen Texteditor kopierst und als .html-Datei speicherst und diese dann im Browser öffnest.
Wichtig ist, dass du bei Anfängst und mit aufhörst.
Hallo Andreas,
das Problem mit dem Update auf eine neuer Nextcloud Version (15.0.10) habe ich durch das manuelle Update lösen können. Allerdings komme ich bei der Aktualisierung auf MariaDB10 nicht weiter, bei meinen bisherigen Versuchen werden nur Fehlermeldungen ausgegeben.
Könntest du mir bitte die Befehle für das Backup und Restore über command line einmal mitteilen,
Müssen eigentlich als User und Pass die Einträge dbuser / dbpassword aus der Nextcloud config.php genommen werden? Ich bin mir nicht sicher ob ich für den User ‘oc_Username’ noch das Passwort weiß.
Schöne Grüße Norbert
Hast du versucht über PHPMyAdmin ein Backup anzulegen? Das ist einfacher als über die Kommandozeile.
Was genau meinst du mit User und Pass? Wo musst du die angeben?
Hallo Andreas, nein ich habe ein mysqldump über die Console gemacht.
Als ich dort den User versucht habe der auch in der config.php vorhanden ist, habe ich eine Fehlermeldung bekommen. Mit dem root User der mariaDB5 Datenbank habe ich dann ein Backup erstellen können.
Muss ich jetzt beim Import in mariaDB10 erst eine neue (leere) Datenbank erstellen, einen (welchen?) DBUser anlegen und diesem dann die entsprechenden Privilegien zuteilen bevor ich den Import beginne?
Und nutze ich dazu den root user oder den User Eintrag aus der config.php damit es mit dem Nextcloud Zugriff klappt?
Muss der Fingerprint aktualisiert werden (occ maintenance:data-fingerprint)?
Möchte mir ungern meine Installation zerschießen.
Schöne Grüße Norbert
Also ich habe für das Backup auch den root-User verwendet, das sollte schon so passen.
Ob du die Datenbank erstellen musst kommt glaub ich aufs Backup an. Im PHPMyAdmin konnte man glaub ich ein create Database und create Table Statements mit in das Backup übernehmen, da musste man dann gar nichts mehr anlegen.
Du kannst auch DB-User exportieren, ich würde den User aus der config.php aus MariaDB5 exportieren und dann in MariaDB10 importieren und dann erst das Backup einspielen.
Und du musst in MariaDB10 beim Nexcloud-User im Feld “Hostname” von localhost auf die lokale IP der DS umstellen.
In der config.php musst du eigentlich nur den db_host anpassen, dort trägst du die lokale IP ein + :3307.
Hallo Andreas!
Zuerst mal vielen herzlichen Dank für deine tollen Anleitungen. Somit habe ich Nextcloud schon seit längerem auf meiner Diskstation laufen.
Nun möchte ich aufgrund von diversen Problemen den DSM neu aufsetzten und brauche dazu natürlich ein Backup der Nextcloud-Datenbank. Dass man ein solches bei einem Update anlegen soll, hast Du zwar angeführt, aber nicht wie. Denn die allgemeine Anleitung von Nextcloud funktioniert bei mir auf der Diskstation nicht (oder liegt es nur am php7-Problem?). Habe aktuell Nextcloud 14 und php 7.0.
Wie spiele ich das Backup dann wieder in die saubere Neuinstallation ein? Bzw. was könnten mögliche Fehlerquellen sein und worauf ist besonders zu achten?
LG, Stefan
Hallo Stefan,
Du hast 2 Möglichkeiten.
1. Du gehst in den phpMyAdmin und dort in die Datenbank mit deinen Nextcloud-Tabellen. Du kannst die ganze Datenbank exportieren. Wenn du dann alles neu Aufgesetzt hast, kannst du auch über den phpMyAdmin das Backup wieder einspielen. Ab einer gewissen Datenbankgröße kann das wegen Tiemouts des Webservers Probleme bereiten und ich hab gehört, dass ab 60 MB der Import über den phpMyAdmin nicht mehr funktioniert.
2. Du installierst dir Hyper Backup auf der DiskStation. Dort erstellst du dir eine Backupaufgabe und gibst dort unter den Anwendungen “MariaDB” an. Nach dem neu aufsetzen der DS installierst du Hyper Backup wieder und spielst das Backup wieder ein.
Als 3. Möglichkeit gäbs noch die Kommandozeile, mit der hab ichs aber noch nicht gemacht und ich finde die Lösung mit Hyper Backup am einfachsten, die nutze ich selbst.
Aber Achtung: Die Datenbank allein sichern reicht nicht, den Data-Ordner musst du extra sichern.
Wenn du Nextcloud komplett sichern möchtest, geht das am einfachsten auch über Hyper Backup, du musst in das Backup den Nextcloudordner in /web angeben, deinen Dataordner und eben die MariaDB. Dann hast du alles drin, was zur Nextcloud gehört.
In meinem Blog findest du übrigens auch einige Artikel zur (Neu-)Installation der DiskStation und wie man diverse Pakete und Einstellungen einrichtet. Ich hab meine DS selbst erst neu aufgesetzt.
Viel Erfolg,
Andreas
Hallo Andreas!
Danke! Mit Hyper Backup klappts einwandfrei! Musste schon mal zurücksichern, hat alles wieder funktioniert! 🙂
Eine neue Frage:
Kann man den Webserver und die dazugehörigen Pakete (Apache HTTP, myPHPAdmin) nicht auch via Kommandozeile (putty) stoppen sowie nach dem Update wieder starten? Über das Paket Zentrum dauert das immer eine gefühlte Ewigkeit…
LG, Stefan
Hallo Stefan,
Ja sollte gehen, allerdings ändert sich das von DSM-Version zu DSM-Version. Beim Apache sollte es dieses sein: /usr/syno/etc/rc.d/S97apache-user.sh restart
Das Internet ist voll von verschiedenen Commands, die nicht immer alle gehen.
Also am besten googlest du danach und probierst sie der Reihe nach durch. Ich hab auch immer den Umweg über das Package Center gemacht.
Einen Tipp hab ich noch: Leg einen vhost an und lösch ihn wieder. Dadurch wird der Apache auch neu gestartet.
LG
Andreas
Hallo Andreas,
danke für deine nette Antwort. Ja, nachdem ich die Hilfefrage geschrieben hatte, fand ich deinen Beitrag dazu. Mit dem PHP Script konnte ich nun PHP7.0 Befehle absetzen und Nextcloud 14 installieren. Läuft soweit ohne Probleme. Find es nur schade, das Synology anscheinend PHP7.0 derart beschneidet, dass der normale Weg wie unter PHP56 nicht möglich ist.
Grüße aus Bayern
Hallo mir ist ein Fehler im Script.sh aufgefallen
find /volume1/ncdata/ -type f -print0 | xargs -0 chmod 0640
find /volume1/ncdata/ -type d -print0 | xargs -0 chmod 0750
kann so nicht richtig sein und wirft auch einen Fehler. Ich gehe davon aus das die Zeilen nicht benötigt werden da diese nur eine Kopie der Zeilen davor sind.
Also entweder durch
find ${ncpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ncpath}/ -type d -print0 | xargs -0 chmod 0750
ersetzen oder eher löschen.
Hallo Andreas,
Die 2 Zeilen sind kein Fehler.
Die ersten beiden Zeilen setzen die Rechte für das Installationsverzeichnis ({ncpath}).
Die zweiten 2 Zeilen setzen die Rechte für das Data-Verzeichnis, sofern das Verzeichnis, wie empfohlen in einem separaten Shared Folder liegt. /Volume1/ncdata/ ist nur ein Beispielpfad, entschuldige falls, falls das nicht ganz ersichtlich ist.
Ich werde das noch extra erwähnen.
Grüße
Andreas
Danke für deine tollen Anleitungen.
Aufgrund deren habe ich inzwischen Nextcloud 13 seit einigen Monaten auf meiner DS415+ laufen und bereits mehrfach upgedatet. Heute ist Nextcloud 14 erschienen. Habe probiert ein Upgrade durchzuführen. Die 14er Version benötigt PHP7.0. Leider ohne Erfolg. Bei den occ Befehlen kommen immer Fehlermeldungen, welche ich nicht nachvollziehen kann. Webserver in der Syno ist Apache 2.4 und PHP7.0 eingestellt. Komme hier nicht weiter. Evtl. könntest du helfen bzw hierfür eine Anleitung schreiben. Mir fehlen hier die speziellen Linux Kenntnisse.
Evtl. vielen Dank schon einmal!
Hallo,
Dazu hab ich sogar schon was geschrieben: https://blog.viking-studios.net/synology-php-7-cli-fehlerfrei-nextcloud-und-php-7/
Die Fehlermeldung war für mich auch nicht ganz nachvollziehbar, im deutschen Synology Forum gabs aber zum Glück jemanden mit den entsprechenden PHP/Linux-Kenntnissen.
Würde mich freuen wenn du berichten könntest ob damit Nextcloud 14 läuft. Ich selbst habe noch nicht aktualisiert.
LG
Andreas
Tag,
habe versucht meine Nextcloud version auf 13.0.4 über das webinterface abzugraden ohne davor die anleitung zu lesen.
Bei der Anleitung hänge ich nun an folgenden Punkt:
sudo -u http php56 ./occ upgrade
Die Ausgabe ist:
The posix extensions are required – see http://php.net/manual/en/book.posix.php
Im DSM unter php ist die erweiterung natürlich aktiviert.
Ich bekomme auch die nextloud nicht mer aus dem wartungsmodus. Zeile in config.php ist auf false.
Weiß der Autor Rat
Hallo, tut mir Leid für die späte Antwort, ich war auf Urlaub.
Hast du auf deiner DiskStation mehrere PHP versionen installiert? Wenn ja, dann braucht jede PHP Version ein eigenes Profil und in jedem Profil kann man Extensions beliebig aktivieren/deaktivieren. Schau also mal ob du die Extensions im richtigen Profil aktiviert hast. Du kannst auch testen ob die Extensions geladen sind indem du in eine Datei mit php-Endung schreibst und die dann irgendwo in /web abspeicherst und aufrufst. Du solltest dann eine komplette Auflistung der PHP-Konfiguration bekommen inklusive aller geladenen Extensions.
Wenn du die Konfig richtig geändert hast aber die NC nicht reagiert, sollte ein neustart des Apache/der WebStation/der DiskStation helfen.
Und gerade kam die Meldung, dass jetzt 13.0.3 verfügbar ist. Ein einfaches vier Klicks Update in der Web-Oberfläche von 13.0.2 hat ohne negative Log-Einträge funktioniert.
Ja, ich war selbst überrascht wie gut das Update funktioniert hat. Davor hatte ich immer wieder mal kleinere Probleme.
Hallo Andreas,
sehr schöne Artikel, danke. Ich hatte mit Hilfe eines anderen Artikels https://think.unblog.ch/nextcloud-installation-auf-synology/ initial Nextcloud 12 auf unserer RS816 DSM 6.1 installiert als vhost mit Frontend Apache 2.4 und PHP 7.0 installiert, data Verzeichnis allerdings nicht “extern”. Hatte mich gestern dann kurzer Hand für ein Update auf Nextcloud 13 entschieden und dafür den Updater ohne viel Nachdenken gestartet. Auch ohne die Rechte zuvor wieder zu öffnen scheint dies ganz gut geklappt zu haben. Ich hatte mit ein paar Problemen zu kämpfen, bei denen mir Deine Posts geholfen haben, die aber evtl. schon die ganze Zeit existiert haben. Hier meine Schritte, um alle (Fehler-)Meldungen loszuwerden.
1. Nach dem Update kam eine Fehlermeldung zum Code Integrity Check, allerdings in komischen tmp Verzeichnissen. Wollte dort nachsehen und die Verzeichnisse gab es dann gar nicht mehr. Dann bin ich erstmals in die Logs und habe tausende “Temporary directory /var/services/tmp is not present or writable” und “is_writable(): open_basedir restriction in effect. File(/var/services/tmp) is not within the allowed path(s): (/volume1/web/nextcloud:none) at /volume1/web/nextcloud/lib/private/TempManager.php#260” Fehler/Warnings gesehen. Lösung war dass der PHP 7 Default /var/services/tmp nicht als PHP open_basedir eingetragen war (war bis dato “none”, verwunderlich, dass das Update dann überhaupt ging). Ein Rescan danach brachte dann keinen Fehler mehr.
2. Ich habe dann auch noch die von Dir in der Optimierung angesprochen (Fehler-)Meldungen gefixt. Danke dafür. Einen weiteren hatte ich auch noch, dass PHP nicht auf /dev/urandom zugreifen konnte, was ich ebenfalls mit dem Hinzufügen zu open_basedir nun beheben konnte.
3. Beim Übermitteln der “Umfrage zur Benutzung” (usage survey) kam dann noch der Fehler “is_readable(): open_basedir restriction in effect. File(/proc/meminfo) is not within the allowed path(s): (/volume1/web/nextcloud:/dev/urandom:/var/services/tmp) at /volume1/web/nextcloud/apps/serverinfo/lib/SystemStatistics.php#74” den ich in gleicher Weise behoben habe. In der Summe ist es jetzt /dev/urandom:/var/services/tmp:/proc/meminfo
Vielleicht hilft es ja, so wie mir Deine Artikel aber auch Kommentare dazu geholfen haben.
LG, Jürgen
Hallo Jürgen,
Ich danke dir für die Ergänzungen. Mit PHP 7 bzw. generell mit PHP und der WebStation ist das leider so eine Sache. Es kommt immer ganz darauf an was man schon vorher alles gemacht bzw. in welcher DSM Version man das gemacht hat.
Ich hab vor Nextcloud Owncloud laufen gehabt, noch unter DSM 5.x. Mit der Umstellung auf DSM 6 war dann vieles anders aber die vorherigen wurden Übernommen auch wenn sie so nicht mehr verfügbar waren. Gerade die PHP-Profile waren bei mir schon vorkonfiguriert bzw. kann ich mich nicht erinnern da viel eingestellt zu haben. Unter DSM 6 scheint das aber nicht mehr der Fall zu sein. Deswegen und aus anderen Gründen habe ich meine DiskStation völlig neu aufgesetzt. Die WebStation und Nextcloud stehen heute an. Wenn mir da grobe Unterschiede auffallen, werde ich die auch hier aktualisieren.
LG, Andreas
Hallo Andreas
danek für die Anleitung, hat soweit auch alles einwandfrei funktioniert.
EInzig hab ich nach dem Update auf 12.3 keinen Zugriff mehr auf den external storage support. Wenn man versucht, die admin Seite aufzurufen dann geht eine Seite mit einer Fehlermldung aus.
Im Log finden ich dazu nur das:
Error PHP PHP Startup: No such handler: DBA_DEFAULT at Unknown#0 2017-10-03T02:22:34+0200
Error PHP PHP Startup: No such handler: DBA_DEFAULT at Unknown#0 2017-10-03T02:22:19+0200
Error files_external Sabre\HTTP\ClientHttpException: Unauthorized 2017-10-03T02:22:06+0200
Error no app in context OCP\Files\StorageInvalidException: Sabre\HTTP\ClientHttpException: Unauthorized 2017-10-03T02:22:06+0200
Error files_external Unauthorized 2017-10-03T02:22:06+0200
Error no app in context Sabre\HTTP\ClientHttpException: Unauthorized
Vielleicht hast du auch hierfür eine lösung oder Idee?
danke und viele Grüße
Hallo Stephan,
Möglicherweise wurde die “external storage” App deaktiviert. Beim Update werden externe Apps wie Kalender und Kontakte deaktiviert. Das reaktivieren funktioniert leider immer noch nicht automatisch.
Log dich ins Webinterface ein ung geh direkt in die App-Verwaltung und aktiviere die “external storage” App falls die deaktiviert ist.
Grüße
Andreas
Hallo Andreas
danke für deine schnelle Antwort. Da habe ich als erstes nachgeschaut,auch schon probiert, zu aktivieren und deaktivieren. leider alles ohne Erfolg, da externen storage bleibt nicht aktivierbar.
Falls Du noch ein Idee hast, oder weitere Informationen brauchst, sage ich vorab schonmal danke!
Viele Grüße
Stephan
Hallo Stephan
Du könntest eventuell noch auf der DiskStation das logfile von Nextcloud aufmachen und dort die letzten Einträge rauskopieren, eventuell geben die Aufschluss.
Ansonsten könnte es ein Bug in der neuesten NC Version sein. Da wärs am besten du wendest dich an help.nextcloud.com
Ich hab external storage nur kurze Zeit in NC 10 aktiv genutzt, daher kann ich dazu leider nur recht wenig sagen.
Grüße
Andreas
Hallo Andreas,
eine Frage zur Rechtevergabe:
Ich habe meinen “data” Ordner nicht im “web” Ordner:
“/volume1/web/nextcloud/data”
Sondern ausgelagert in einen eigenständigen Ordner außerhalb der web Freigabe:
“/volume1/nextcloud/data”
Welche Rechte sollte dieser Ordner bekommen um maximale Sicherheit zu gewährleisten?
Vielen Dank,
Michi
Hallo,
Der Owner sollte http:http sein und die Rechte für die Ordner und Files legst du mit:
find /volume1/ncdata/ -type f -print0 | xargs -0 chmod 0640
find /volume1/ncdata/ -type d -print0 | xargs -0 chmod 0750
fest.
Wenn du das große Script aus dem Punkt “nach dem Update” angelegt und ausgeführt hast, dann bist du auf der sicheren Seite. Das sind die offiziellen Nextcloud-Empfehlungen.
Für das Update brauchst du die Rechte am ausgelaerten Ordner übrigens nicht mehr lockern, nur für die Nextcloud-Installation unter /web.
LG
Andreas
Hallo,
ich wollte den Vorgang “Update per Updater-App” die Rechte setzenbekomme aber nur eine Fehlermeldung.
chown: cannot access ‘/volume1/web/Nextcloud/’: No such file or directory
Pfad usw. stimmen.
Ich habe die NC auf der Synology laufen mit der DSM 6.
Können Sie mir bitte weiterhelfen.
Danke
DR
Hallo,
mir fallen da erstmal 2 Gründe ein.
Entwerder der Pfad stimmt doch nicht: Auf den ‘/’ vor ‘volume achten, der darf nicht fehlen. Heißt das Synology-Volume auch ‘volume1’? Heißt der Ordner der Nextcloud-Installation auch tatsächlich ‘Nextcloud’? Und auch Groß-/Klein-Schreibung achten.
Oder aber die Rechte passen nicht und zwar die Rechte das ausführenden Users. Wird das Script bzw. der Befehl als root User ausgeführt, also haben Sie sich nach dem Anmelden in putty root-Rechte geholt (sudo -i)? Ersichtlich an root@ in der Kommandozeile.
Was liefert ‘ls /volume1/web/Nextcloud/’ für ein Ergebnis?