25 KiB
🔘 Raspberry Pi OS Flashen 🔘 Nextcloud Installation 🔘 Nextcloud Update / Upgrade Fehler 🔘 Nextcloud Recovery 🔘
Nextcloud Upgrade Fehler
Während des Update / Upgrade-Vorgangs tauchen manchmal Fehler auf. Die unvollständige Liste enthält mögliche Lösungen.
- Nextcloud Upgrade Fehler
- Step 6 is currently in process. Please reload this page later
- Datenbank - Missing Indices
- Dateien sind nicht mehr verfügbar
- Update stoppt bei Schritt 3 Create backup
- To login you need to provide the unhashed value of updater.secret in your config file
- Postfix - E-Mail-Versand funktioniert nicht
- PHP-Fehler
- Apache auf Werkseinstellung zurücksetzen
- SVG-Unterstützung fehlt
- Benutzer deaktiviert
- Es wurden mehrere ungültige Anmeldeversuche von Ihrer IP-Adresse festgestellt. Daher wird die nächste Anmeldung um 30 Sekunden verzögert
- ClamAV Probleme bei einem anderen Modus
- Spende
Step 6 is currently in process. Please reload this page later
Dieser Fehler besagt, dass während des Schritts "Extracting" ein Fehler aufgetreten ist. Das kann dann auftreten, wenn die Verbindung zwischen Webbrowser und Nextcloud-Server unterbrochen wurde.
Log Files
Die Log Files für das Update sind im Datenverzeichnis der Nextcloud zu finden. Ganz am Ende der Datei wird der Fehler aufgelistet.
less /mnt/data/nc-data/updater.log
...
2021-11-16T21:34:21+0100 UPdI0Mztnq [info] storage location: /mnt/data/nc-data/updater-och
af6s7o0ue/downloads/
2021-11-16T21:34:34+0100 UPdI0Mztnq [info] end of verifyIntegrity()
2021-11-16T21:34:34+0100 UPdI0Mztnq [info] endStep("5")
2021-11-16T21:34:34+0100 i9WUjhpuBE [info] request to updater
2021-11-16T21:34:34+0100 i9WUjhpuBE [info] currentStep()
2021-11-16T21:34:34+0100 i9WUjhpuBE [info] Step 5 is in state "end".
2021-11-16T21:34:34+0100 i9WUjhpuBE [info] POST request for step "6"
2021-11-16T21:34:34+0100 i9WUjhpuBE [info] startStep("6")
2021-11-16T21:34:34+0100 i9WUjhpuBE [info] extractDownload()
2021-11-16T21:34:34+0100 i9WUjhpuBE [info] storage location: /mnt/data/nc-data/updater-och
af6s7o0ue/downloads/
2021-11-16T21:50:51+0100 VnJxUY1br7 [info] request to updater
2021-11-16T21:50:52+0100 VnJxUY1br7 [info] currentStep()
2021-11-16T21:50:52+0100 VnJxUY1br7 [info] Step 6 is in state "start".
2021-11-16T21:51:03+0100 kMhDfeopQ6 [info] request to updater
2021-11-16T21:51:03+0100 kMhDfeopQ6 [info] currentStep()
2021-11-16T21:51:03+0100 kMhDfeopQ6 [info] Step 6 is in state "start".
2021-11-16T21:51:46+0100 n6icXqzA3e [info] request to updater
2021-11-16T21:51:46+0100 n6icXqzA3e [info] currentStep()
2021-11-16T21:51:46+0100 n6icXqzA3e [info] Step 6 is in state "start".
2021-11-16T21:54:23+0100 vjKUkuAOIN [info] request to updater
2021-11-16T21:54:23+0100 vjKUkuAOIN [info] currentStep()
2021-11-16T21:54:24+0100 vjKUkuAOIN [info] Step 6 is in state "start".
2021-11-16T21:56:07+0100 sE8w6ZSDJr [info] request to updater
2021-11-16T21:56:07+0100 sE8w6ZSDJr [info] currentStep()
2021-11-16T21:56:07+0100 sE8w6ZSDJr [info] Step 6 is in state "start".
2021-11-16T21:56:30+0100 tQr6sk9Cvf [info] request to updater
Das Verzeichnis, das für das Update verwendet wird, also um die neueste Version der Nextcloud auf dem Server zwischenzuspeichern und das Backup anzulegen, sind in diesem Beispiel im Ordner /mnt/data/nc-data/updater-ochaf6s7o0ue
abgelegt.
sudo ls /mnt/data/nc-data/updater-ochaf6s7o0ue
Troubleshooting - Step 6 is currently in process
Die Lösung ist relativ einfach. Es werden die Dateien aus dem Unterverzeichnis nextcloud
entfernt und dann der gesamte Ordner gelöscht. Im Anschluss kann das Update wieder über die Weboberfläche gestartet werden.
sudo rm -rf /mnt/data/nc-data/updater-ochaf6s7o0ue/downloads/nextcloud
sudo rm -rf /mnt/data/nc-data/updater-ochaf6s7o0ue/downloads
Datenbank - Missing Indices
In der Datenbank fehlen einige Indizes. Aufgrund 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 "fs_id_storage_size" in der Tabelle "oc_filecache".
- Fehlender Index "fs_storage_path_prefix" in der Tabelle "oc_filecache".
- Fehlender Index "systag_by_tagid" in der Tabelle "oc_systemtag_object_mapping".
- Fehlender Index "textstep_session" in der Tabelle "text_steps".
Troubleshooting - Missing Indices
sudo -u www-data php /var/www/html/nextcloud/occ db:add-missing-indices
Check indices of the share table.
Check indices of the filecache table.
Adding additional size index to the filecache table, this can take some time...
Filecache table updated successfully.
Adding additional path index to the filecache table, this can take some time...
Filecache table updated successfully.
Check indices of the twofactor_providers table.
Check indices of the login_flow_v2 table.
Check indices of the whats_new table.
Check indices of the cards table.
Check indices of the cards_properties table.
Check indices of the calendarobjects_props table.
Check indices of the schedulingobjects table.
Check indices of the oc_properties table.
Dateien sind nicht mehr verfügbar
Dieser Fehler kann nach einem Update auf die Version 25 auftauchen.
Die Dateien werden über die Weboberfläche nicht mehr angezeigt und der Nextcloud-Client für PC/Laptop synchronisiert keine Dateien mehr.
This directory is unavailable, please check the logs or contact the administrator.
Die Lösung:
sudo cp /var/www/html/nextcloud/apps/dav/lib/Connector/Sabre/FilesPlugin.php /var/www/html/nextcloud/apps/dav/lib/Connector/Sabre/FilesPlugin.php-bak
sudo nano /var/www/html/nextcloud/apps/dav/lib/Connector/Sabre/FilesPlugin.php
In der Datei ist an einer Stelle ein Eintrag zu ändern, ?int
wird zu ?float
$propFind->handle(self::SIZE_PROPERTYNAME, function () use ($node): ?int {
return $node->getSize();
wird zu
$propFind->handle(self::SIZE_PROPERTYNAME, function () use ($node): ?float {
return $node->getSize();
Dieser Fehler führt auch dazu, dass der Sync mit dem Nextcloud-Client stoppt.
Nach der oben aufgezeigten Anpassung startet auch die Synchronisation mit dem Nextcloud-Client wieder.
Quelle:
- 🔗 [Bug]: TypeError: Return value of OCA\DAV\Connector\Sabre\FilesPlugin::OCA\DAV\Connector\Sabre{closure}() must be of the type int or null, float returned #34674
- 🔗 https://help.nextcloud.com/t/cannot-access-files-after-upgrade-to-nextcloud-25/147823/9
Update stoppt bei Schritt 3 Create backup

Der Updateprozess lässt sich ganz normal über die Weboberfläche starten. Jedoch stoppt der Vorgang im Schritt 3 mit der Meldung Create backup.
Es gibt irgendwo ein Berechtigungsproblem mit einer Datei / oder Ordner. Eine tiefergehende Fehleranalyse ist über die Weboberfläche nicht möglich, dafür muss auf die CLI gewechselt werden.
Die Lösung:
Im Ordner sudo ls -lah /var/www/html/nextcloud/apps/dav/lib/Connector/Sabre/
befindet sich die Backup-Datei FilesPlugin.php-bak
mit den falschen Rechten.
sudo ls -lah /var/www/html/nextcloud/apps/dav/lib/Connector/Sabre/
total 292K
...
-rwxrwx--- 1 www-data www-data 21K Oct 21 21:06 FilesPlugin.php
-rwxr-x--- 1 root root 21K Oct 21 21:06 FilesPlugin.php-bak
...
Löschen lässt sich die Datei FilesPlugin.php-bak
mit dem Befehl:
sudo rm /var/www/html/nextcloud/apps/dav/lib/Connector/Sabre/FilesPlugin.php-bak
Die genaue Fehleranalyse ist über die Weboberfläche nicht möglich. Es ist ein Blick in die Log-Datei zu werfen, um aussagekräftige Informationen zu bekommen.
Die Log-Datei befindet sich im Datenverzeichnis der Nextcloud. In meinem Fall ist das im Verzeichnis /mnt/data/
sudo cat /mnt/data/updater.log
To login you need to provide the unhashed value of updater.secret in your config file
Fehlermeldung
To login you need to provide the unhashed value of "updater.secret" in your config file.
If you don't know that value, you can access this updater directly via the Nextcloud admin screen or generate your own secret:
php -r '$password = trim(shell_exec("openssl rand -base64 48")); if (strlen($password) === 64) {$hash = password_hash($password, PASSWORD_DEFAULT) . "\n"; echo "Insert as \"updater.secret\": ".$hash; echo "The plaintext value is: ".$password."\n";} else {echo "Could not execute OpenSSL.\n";};'
Lösung
Es wird das "Secret" benötigt, um zurück zur Admin-Seite von Nextcloud zu gelangen.
Dazu muss das Secret in der Datei /var/www/html/nextcloud/config/config.php
mit der Eingabe über die Weboberfläche übereinstimmen.
- Login via CLI auf dem Nextcloud Server
- Den angezeigten Befehl auf dem Nextcloud-Server in der CLI ausführen
php -r '$password = trim(shell_exec("openssl rand -base64 48")); if (strlen($password) === 64) {$hash = password_hash($password, PASSWORD_DEFAULT) . "\n"; echo "Insert as \"updater.secret\": ".$hash; echo "The plaintext value is: ".$password."\n";} else {echo "Could not execute OpenSSL.\n";};'
- Den Wert "The plaintext value is:" ist in der Datei
/var/www/html/nextcloud/config/config.php
einzutragen. Der Wert in der Zeileupdater.secret
ist zu ersetzen. - Der Wert ist in der Weboberfläche einzutragen und auf den Button "Login" zu drücken.
- Das Webinterface kann neu geladen werden. Nextcloud befindet sich jedoch im Wartungsmodus.
- Wartungsmodus über die CLI beenden:
sudo -u www-data php /var/www/html/nextcloud/occ maintenance:mode --off
- Nextcloud über die CLI updaten

sudo -u www-data php /var/www/html/nextcloud/occ upgrade
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
Turned on maintenance mode
Updating database schema
Updated database
Updating <photos> ...
Updated <photos> to 2.0.1
Starting code integrity check...
Finished code integrity check
Update successful
Turned off maintenance mode
Resetting log level
- Nextcloud Webinterface erneut laden. Die Anmeldung sollte wieder wie gewohnt funktionieren.
Postfix - E-Mail-Versand funktioniert nicht
Fehlermeldung
Host or domain name not found. Name service error for name=smtp.strato.de type=MX: Host not found, try again
Ein nslookup smtp.strato.de
funktioniert.
Lösung
Postfix zieht den Nameserver zum Auflösen der DNS-Einträge nicht aus /etc/resolv.conf
sondern aus einer Postfix-eigenen resolv.conf-Datei.
In beiden Dateien sollte der gleiche Nameserver eingetragen werden. Im Anschluss daran funktioniert auch der Versand der E-Mails wieder.
sudo nano /var/spool/postfix/etc/resolv.conf
sudo systemctl restart postfix
PHP-Fehler
Die PHP-Version lässt sich bei einem Raspberry Pi nicht einfach aus den Repositories upgraden. Es muss auf einen Drittanbieter ausgewichen werden.
Ein häufig genutztes Repository wird von sury.org
bereitgestellt.
Das Upgrade von PHP-Version 7.4 auf 8.0/8.1 funktioniert wie folgt
sudo apt update && sudo apt dist-upgrade && sudo apt autoremove
sudo -s
# Neues sury.org Repository hinzufügen
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
apt update
Wieder zum normalen Benutzer zurück mit der Tastenkombination Strg + d
php lässt sich im Anschluss installieren
sudo apt install php8.2
Nach der Installation von php8.2 sollte die Version auch als aktive Version angezeigt werden:
php -version
Auflisten welche bisherigen PHP-Module auf dem Server installiert sind
sudo apt list --installed | grep php8.1
Die Liste der Module kopieren, damit möglichst alle Module auch mit der neuen PHP-Version installiert werden.
Nun können alle php8.2-Module mit sudo apt install ...
installiert werden:
sudo apt update && sudo apt install -y php-common php8.2 php-apcu php-pear php-imagick libapache2-mod-php8.2 php8.2-{apcu,bcmath,bz2,cli,common,curl,fpm,gd,gmp,igbinary,imagick,intl,mbstring,memcache,mysql,opcache,readline,redis,smbclient,xml,zip}
siehe dazu ➡️ Installation der benötigten Pakete
Nach der Installation einer neuen php-Version nicht vergessen die Anpassungen in den Konfigurationsdateien zu prüfen
Mögliche Fehler
Nach dem Upgrade auf die PHP-Version 8.1 kam dieser Fehler beim Aufrufen der Nextcloud-Weboberfläche:
Internal Server Error
The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.
Beim Aufruf des Wartungsmodus kommt dies Fehlermeldung.
sudo -u www-data php /var/www/html/nextcloud/occ maintenance:mode --on
und siehe da, es kam diese Meldung
This version of Nextcloud is not compatible with > PHP 8.0.
You are currently running 8.2.0
Die Nextcloud kann anscheinend nicht mit der Version 8.2 umgehen und verlangt die Version 8.0 oder 8.1.
Zwischen den PHP-Versionen kann einfach umgeschaltet werden.
sudo a2dismod php8.2
sudo a2enmod php8.1
Danach noch den Apache neu starten und schon wieder funktioniert die Nextcloud:
sudo systemctl restart apache2
Wenn es noch immer Probleme geben sollte, dann kann auch manuell die PHP-Version ausgewählt werden. Es werden alle auf dem Server vorhandenen PHP-Versionen aufgelistet und können mit der Eingabe der Zeilenzahl ausgewählt werden.
sudo update-alternatives --config php
There are 2 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.2 82 auto mode
1 /usr/bin/php8.1 81 manual mode
2 /usr/bin/php8.2 82 manual mode
Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/php8.1 to provide /usr/bin/php (php) in manual mode
Nachdem nun alle PHP-Module auf dem Server installiert wurden, sind in der php.ini
noch einige Anpassungen vorzunehmen. Die Einstellungen bleiben gleich wie bei der PHP-Version 7.4 und können einfach aus dieser Anleitung übertragen werden.
sudo nano /etc/php/8.1/apache2/php.ini
Der Webserver Apache2 ist neu zu starten
sudo systemctl restart apache2
Nach dem Entpacken des Archivs ist die Nextcloud-Seite nicht erreichbar. Beim Aktivieren von PHP8.1 wird der folgende Fehler ausgegeben.
Fehlermeldung
sudo a2enmod php8.1
Considering dependency mpm_prefork for php8.1:
Considering conflict mpm_event for mpm_prefork:
ERROR: Module mpm_event is enabled - cannot proceed due to conflicts. It needs to be disabled first!
Considering conflict mpm_worker for mpm_prefork:
ERROR: Could not enable dependency mpm_prefork for php8.1, aborting
:% sudo apt install libapache2-mod-php8.1
Im Webbrowser wird u.a. angezeigt
nextcloud php OC_Template::printExceptionErrorPage($ex, 500);
Lösung
sudo a2dismod mpm_event
sudo a2enmod php8.1
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime
sudo systemctl status apache2
Apache auf Werkseinstellung zurücksetzen
❗Ab hier äußertes Vorsicht ❗
Bevor weitergemacht wird, solle von allen wichtigen Dateien und der Datenbank ein Backup erstellt werden. Wird der Webserver Apache auf Werkseinstellungen zurückgesetzt ist ggf. die Nextcloud nicht mehr erreichbar.
Nach einer kompletten Neuinstallation ist die Nextcloud zu hoher Wahrscheinlichkeit über die IP-Adresse des Servers erreichbar.
Alle Zertifikate und alle Anpassungen (php
, apache2
, etc.) sind wie im Manual erneut vorzunehmen. 🔗 Nextcloud Installation
Apache auf Werkseinstellungen zurücksetzen
sudo apt-get purge apache2
Die Verzeichnisse mit den Konfigurationsdateien sind ggf. manuell zu löschen
sudo rm -R /etc/apache2
Nach der Deinstallation des Webservers kann der Server neu gestartet werden.
sudo reboot
Nach dem Neustart ist Apache erneut auf dem Server zu installieren, samt allen dazugehörigen Modulen.
Es kann auch vorkommen, dass es nach der Neuinstallation von Apache Problem mit PHP gibt. Sollte das der Fall sein, ist ein komplette Neuinstallation der PHP-Version zu empfehlen
SVG-Unterstützung fehlt
Fehlermeldung
Dem Modul php-imagick fehlt die SVG-Unterstützung. Für eine bessere Kompatibilität wird empfohlen, es zu installieren.
Lösung
sudo apt install libmagickcore-6.q16-6-extra
Benutzer deaktiviert
Fehlermeldung:
Benutzer deaktiviert
Lösung:
sudo -u www-data php /var/www/html/nextcloud/occ user:enable username
Es wurden mehrere ungültige Anmeldeversuche von Ihrer IP-Adresse festgestellt. Daher wird die nächste Anmeldung um 30 Sekunden verzögert
# MariaDB aufrufen
sudo mariadb
# Alle Datenbanken auflisten
MariaDB [(none)]> SHOW DATABASES;
# Datenbank nextcloud verwenden
MariaDB [(none)]> USE nextcloud;
# Alle Tabellen anzeigen
MariaDB [nextcloud]> SHOW TABLES;
# Inhalt der Tabelle oc_bruteforce_attempts anzeigen
MariaDB [nextcloud]> SELECT * FROM oc_bruteforce_attempts;
# IP-Adresse aus Tabelle löschen
MariaDB [nextcloud]> DELETE FROM oc_bruteforce_attempts WHERE IP="192.168.2.10";
# Die gesperrte IP-Adresse sollte aus der Tabelle entfernt worden sein
MariaDB [nextcloud]> SELECT * FROM oc_bruteforce_attempts;
# MariaDB abmelden
MariaDB [nextcloud]> quit;
Die Anmeldung sollte nun wieder funktionieren.
Erfolgt die Anmeldung nur von einem Client oder aus einem abgesicherten Netzwerksegment kann die IP-Adresse auch auf die Whitelist gesetzt werden. Die Einstellung kann mit einem Sicherheitsrisiko einhergehen und sollte genau überlegt werden ❗
Die Einstellung für die Whitelist ist zu finden unter
Verwaltungs-Einstellungen --> Sicherheit --> Brute-Force IP-Whitelist
Dort kann die IP-Adresse eingetragen werden 192.168.2.10
.
ClamAV Probleme bei einem anderen Modus
Verwendet man den Standardmodus Ausführbahre ClamAV-Datei
und nicht ClamAV-Deamon (Socket)
, dann kommt es zu einigen Problemen. Im nachfolgenden habe ich versucht eine Lösung dafür zu finden, jedoch ohne Erfolg.
Der ClamAV Scan kann Modus im Ausführbahre ClamAV-Datei
die CPU-Last und auch den SWAP zu 100% auslasten. Wenn das passiert, friert 🥶 der Raspberry Pi ein und keine Dienste sind mehr erreichbar.
Pings können an den Pi noch gesendet werden, eine Einwahl per SSH funktioniert aber schon nicht mehr.
Um das Problem der hohen CPU-Last zu lösen, gibt es mehrere unterschiedliche Lösungsansätze. Ich habe den Ansatz mit cpulimit
versucht umzusetzen, jedoch erfolglos.
In der Prozessübersicht, z.B. top, htop, oder bpytop, wird das Scanprogramm mit /usr/bin/clamscan
angezeigt.
ClamAV CPU-Verbrauch limitieren im Modus "Ausführbare ClamAV-Datei"
Die ClamAV-Dienste lassen sich alle beenden, damit ist der Server wieder erreichbar und kann ganz normal verwendet werden.
sudo systemctl stop clamav-freshclam
sudo systemctl stop clamav-daemon
Mit dem Tool cpulimit
ist es möglich ClamAV den Zugriff auf die CPU zu limitieren.
sudo apt install cpulimit
Nach der Installation von cpulimit
wird ClamAV nur die Verwendung von 15% der CPU erlaubt. Der cpulimit
-Befehl muss bei jedem Scan, also beim Aufruf von /usr/bin/clamscan
mitgegeben werden.
Der Befehl sieht dann so aus:
cpulimit -z --exe clamscan -l 15
-z
= exit if there is no suitable target process, or if it dies-e
= name of the executable program filel
= percentage of CPU allowed from 1 up. Usually 1 - 100, but can be higher on multi-core CPUs. (mandatory)
Gibt man den Befehl einfach mal in der CLI ein, dann kommt die folgende Meldung
cpulimit Warning: no target process found. Waiting for it...
Auf diesem Wege funktioniert also die CPU-Limitierung von ClamAV nicht.
Der Scan wird über die App Antivirus for files
angestoßen und muss deshalb bei jeder Ausführung mitgegeben werden.
# Ohne E-Mail-Versand
/usr/bin/cpulimit -z --exe clamscan -l 15 & /usr/bin/clamscan -ir /
# Mit E-Mail-Versand
/usr/bin/cpulimit -z --exe clamscan -l 15 & /usr/bin/clamscan -ir / | mail -s "ClamAV Scan Results for date +%D" benutzer@email.de
Der Befehl ist in das entsprechende Feld einzutragen.

Die CPU-Last von clamscan
bleibt nach der Anpassung beim Upload einer Datei im 🟩 Bereich.

Werden mehrere Dateien hochgeladen, friert der Raspberry Pi trotzdem wieder ein und alle Dienste, inkl. der Nextcloud, sind nicht mehr erreichbar.
Eine weitere Lösungsmöglichkeit habe ich nicht mehr ausprobiert.
Weitere Lösungen, um die hohe CPU-Last zu umgehen sind in hier beschrieben:
Weitere Fehler sind auch in der Anleitung 🔗 Nextcloud Installation aufgeführt.
Spende
Hat dir die Anleitung bei der Installation und Konfiguration deiner Nextcloud geholfen, dann kannst du mir gerne einen Kaffee ausgeben. ☕
PayPal 😊
Liberapay 😎
Bitcoin bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj 😄
Mehr spannende Beiträge zu Nextcloud findest du auf meiner Website:
🔗 https://strobelstefan.de/nextcloud/