Nextcloud-Fehlerbehebung: „Transaktionsdateisperrung ist nicht konfiguriert“

Wenn Nextcloud eine Warnung anzeigt, dass die Transaktionsdateisperrung nicht konfiguriert oder deaktiviert ist, sind Dateivorgänge möglicherweise weniger gut vor gleichzeitigen Schreibvorgängen und unterbrochenen Übertragungen geschützt. Die übliche Lösung besteht darin, einen unterstützten Key-Value-Speicher wie Redis oder Valkey für die Sperrung zu konfigurieren. Ermitteln Sie zunächst, wie Nextcloud installiert ist, und konfigurieren Sie dann den Cache-Dienst und Nextcloud gemeinsam; die alleinige Installation von Redis behebt die Warnung nicht.

Das aktuelle Nextcloud-Administrationshandbuch besagt, dass Transaktionssperren standardmäßig die Datenbank nutzen. Die Verwendung eines Datenbank-Backends ist zwar möglich, erhöht aber die Datenbanklast. Redis oder Valkey bieten ein dediziertes Sperr-Backend. Der genaue Warntext variiert je nach Nextcloud-Version: Die aktuelle Dokumentation lautet: „Transaktionssperrung von Dateien ist deaktiviert. Dies kann zu Race Conditions führen.“ Eine separate Warnung bezüglich des Speichercaches bezieht sich nicht auf dasselbe Problem. Weitere Informationen finden Sie im offiziellen Leitfaden zur Transaktionssperrung von Dateien und in der Warnhinweis-Referenz auf der Admin-Seite .

Bevor Sie den Server wechseln

Diese Schritte setzen voraus, dass Sie den Nextcloud-Host administrieren. Die folgenden Befehle verwenden Debian oder Ubuntu mit einer herkömmlichen Paketinstallation; Paketnamen, Dienstnamen, PHP-Versionen und Konfigurationspfade können auf anderen Linux-Distributionen abweichen. Wenn Sie Nextcloud AIO, Docker, Snap, TrueNAS oder ein Image Ihres Hosting-Anbieters verwenden, befolgen Sie die Anweisungen dieser Bereitstellung zur Installation und zum Neustart der Dienste. Die Installation von PHP-Paketen auf dem Host ändert möglicherweise nichts an der PHP-Umgebung innerhalb eines Containers oder einer Appliance.

  • Suchen Sie das Nextcloud-Webverzeichnis und dessen aktives Verzeichnis config/config.php.
  • Erstellen Sie vor der Bearbeitung eine Sicherungskopie dieser Datei. Sie kann Datenbankzugangsdaten und andere vertrauliche Informationen enthalten.
  • Prüfen Sie, ob Nextcloud einen oder mehrere Webserver verwendet. Eine Multi-Node-Konfiguration benötigt einen gemeinsam genutzten Redis-/Valkey-Server oder -Cluster, der von jedem Nextcloud-Knoten aus erreichbar ist.
  • Planen Sie ein kurzes Wartungsfenster ein, wenn Ihre Benutzer auf ununterbrochene Datei-Uploads angewiesen sind.

Schritt 1: Warnhinweis und Installationstyp bestätigen

Melden Sie sich als Administrator an und öffnen Sie die Administrationseinstellungen . Überprüfen Sie anschließend die Übersicht sowie die Sicherheits- und Einrichtungswarnungen. Notieren Sie sich die genaue Meldung. Falls lediglich angezeigt wird, dass kein Arbeitsspeichercache konfiguriert ist, ist dies ein anderer Punkt. Konfigurieren Sie gegebenenfalls einen lokalen Cache wie APCu, gehen Sie jedoch nicht davon aus, dass dieser Transaktionssperren bereitstellt. Nextcloud dokumentiert, dass die Cache-Einstellungen explizit aktiviert werden müssen config.php.

Bei einer herkömmlichen Linux-Installation verwenden Sie die Shell, um den Bereitstellungspfad zu ermitteln und die Konfigurationsdatei zu überprüfen, ohne Geheimnisse in einem gemeinsamen Terminalprotokoll auszugeben. Zum Beispiel vom Server aus:

cd /var/www/nextcloud
ls -l config/config.php

Ersetzen Sie dies /var/www/nextclouddurch Ihren tatsächlichen Pfad. Bei Containern identifizieren Sie den Container und seine eingebundene Konfiguration, anstatt eine hostseitige Datei zu bearbeiten, die von der laufenden Instanz nicht verwendet wird.

Schritt 2: Installieren und Starten eines Key-Value-Speichers

Unter Debian oder Ubuntu verwendet das traditionelle Redis-Backend typischerweise den Redis-Dienst und die PHP-Redis-Erweiterung. Installieren Sie Pakete, die mit der vom Webserver verwendeten PHP-Version kompatibel sind:

sudo apt update
sudo apt install redis-server php-redis
sudo systemctl enable --now redis-server
sudo systemctl status redis-server

Die Statusausgabe sollte anzeigen, dass der Dienst aktiv ist. Stellen Sie sicher, dass die PHP-Laufzeitumgebung von Nextcloud die Redis-Erweiterung laden kann. Bei einer Standardinstallation php -m | grep -i redislässt sich dies schnell über die Kommandozeile überprüfen. Beachten Sie jedoch, dass PHP-Versionen und Web-PHP unterschiedliche Versionen oder Konfigurationsdateien verwenden können. Falls das Modul in der Web-Laufzeitumgebung fehlt, installieren oder aktivieren Sie das entsprechende Paket und starten Sie PHP-FPM oder den Webserver neu.

Nextcloud 34.0.2 und höher bieten ein integriertes KeyValueCacheBackend für Redis-kompatible Stores. Die PHP-Redis-Erweiterung ist nicht erforderlich. Dies ist nützlich, wenn in einer Hosting-Umgebung keine PHP-Module installiert werden können, aber dennoch ein laufender Redis- oder Valkey-Dienst benötigt wird. Die aktuelle Nextcloud-Anleitung zum Speicher-Caching beschreibt beide Vorgehensweisen. Wählen Sie unten eine Backend-Konfiguration aus, anstatt beide hinzuzufügen.

Schritt 3: Sperren in Nextcloud konfigurieren

Bearbeiten Sie das aktive Array config/config.phpund fügen Sie die ausgewählten Einträge darin ein $CONFIG. Achten Sie auf die korrekte PHP-Syntax und die korrekte Kommasetzung. Erstellen Sie kein zweites Konfigurationsarray und verwenden Sie keine doppelten Schlüssel. Behalten Sie die vorhandenen Cache-Einstellungen bei, es sei denn, Sie wissen genau, warum sie geändert werden müssen.

Option A: Redis mit der PHP-Redis-Erweiterung

Verwenden Sie diese Option, wenn die unterstützte PHP-Weblaufzeitumgebung phpredisinstalliert ist. Ein lokaler Redis-Server, der auf Port 6379 lauscht, kann beispielsweise folgende Konfiguration verwenden:

'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
    'host' => '127.0.0.1',
    'port' => 6379,
    'timeout' => 0.0,
],

Falls Redis eine Authentifizierung erfordert, konfigurieren Sie das korrekte Passwort config.phpund sichern Sie die Dateiberechtigungen. Stellen Sie Redis nicht öffentlich zur Verfügung. Binden Sie es an localhost oder ein geschütztes privates Netzwerk und verwenden Sie gegebenenfalls einen Unix-Socket.

Option B: KeyValueCache mit Redis oder Valkey

Verwenden Sie diese Option, wenn Ihre Nextcloud-Version den integrierten Provider unterstützt und Sie keine PHP-Redis-Erweiterung installieren möchten. Ein Minimalbeispiel für einen lokalen Dienst, der auf Port 6379 lauscht, lautet:

'memcache.locking' => '\OC\Memcache\KeyValueCache',
'memcache.kvstore' => [
    'server' => [
        'host' => '127.0.0.1',
        'port' => 6379,
    ],
],

Fügen Sie die dokumentierten Authentifizierungs-, TLS-, Socket-, Sentinel- oder Cluster-Einstellungen hinzu, falls Ihr Dienst diese verwendet. Kopieren Sie keine Anmeldeinformationen aus einem Beispiel. Detaillierte Parameter und unterstützte Topologien finden Sie in der offiziellen Cache-Konfigurationsreferenz .

Schritt 4: Überprüfen Sie die Konnektivität und die Einstellungen für mehrere Server.

Nextcloud muss den konfigurierten Cache-Server über denselben Host, Port, Socket und dieselben Anmeldeinformationen wie der Dienst erreichen können. Ein häufiger Fehler ist die Konfiguration localhostauf jedem Nextcloud-Webknoten, während Redis nur auf einem separaten Host läuft. In einer Multi-Server-Umgebung müssen alle Webknoten so konfiguriert werden, dass sie denselben Redis-Server oder -Cluster verwenden. Der Netzwerkzugriff auf die Nextcloud-Knoten muss eingeschränkt und Redis mit geeigneten Authentifizierungs- und Firewall-Regeln geschützt werden.

Stellen Sie bei einem Unix-Socket sicher, dass das PHP-/Webserver-Konto Lese- und Schreibzugriff auf den Socket hat. Berechtigungs- oder Gruppenänderungen unterscheiden sich je nach Betriebssystem. Beachten Sie daher die Dokumentation von Redis/Valkey und Ihrer Distribution, anstatt weitreichende Berechtigungen wie weltweiten Schreibzugriff zu vergeben. Eine Verbindungsablehnung, ein Authentifizierungsfehler oder ein Socket-Berechtigungsfehler können verhindern, dass Nextcloud den Sperranbieter verwendet, selbst wenn der Konfigurationsschlüssel vorhanden ist.

Schritt 5: Starten Sie die richtigen Dienste neu.

Nach dem Speichern der Konfiguration starten Sie den Redis-Dienst neu, falls sich dessen Einstellungen geändert haben, und anschließend die PHP-Laufzeitumgebung, die Nextcloud bereitstellt. Beispielsweise kann bei einer Apache-Installation ein Apache-Neustart erforderlich sein, während bei einer PHP-FPM-Installation der zugehörige PHP-FPM-Dienst neu gestartet werden muss. Dienstnamen enthalten auf manchen Distributionen PHP-Versionsnummern. Bei Containern erstellen oder starten Sie den entsprechenden Dienst mithilfe der vom Deployment unterstützten Methode neu. Vermeiden Sie es, auf einem Produktivserver ohne vorherige Ankündigung nicht benötigte Dienste neu zu starten.

Falls Nextcloud einen Konfigurations- oder Syntaxfehler zurückgibt, stellen Sie das Backup wieder her und prüfen Sie, ob ein Komma fehlt, ein Anführungszeichen nicht übereinstimmt, ein Schlüssel doppelt vorhanden ist oder die falsche Einstellung vorgenommen wurde config.php. Die Array-Einstellungen von PHP müssen innerhalb der bestehenden Konfigurationsstruktur verbleiben.

Schritt 6: Konfiguration überprüfen und Dateivorgänge testen

Aktualisieren Sie die Administratorübersicht und prüfen Sie, ob die Warnung zur Transaktionsdateisperrung verschwunden ist. Falls Sie einen lokalen Cache konfiguriert haben und weiterhin eine Warnung zum Arbeitsspeicher-Cache angezeigt wird, prüfen Sie dies separat. Nextcloud empfiehlt APCu für das lokale Caching in vielen Einzelserver-Umgebungen, während Redis für Sperrung und verteiltes Caching zuständig ist. Fügen Sie Redis nicht standardmäßig als lokalen Cache hinzu, insbesondere nicht in einer Mehrserver-Konfiguration.

Sie können die effektive Sperreinstellung auch mit dem Nextcloud-Befehlszeilentool überprüfen. Führen Sie es occim Nextcloud-Verzeichnis als Webserver-Konto aus; unter Debian/Ubuntu ist dies üblicherweise www-data:

sudo -u www-data php occ config:system:get memcache.locking

Der Wert muss dem gewählten Backend entsprechen, z. B. „server“ oder \OC\Memcache\Redis„server \OC\Memcache\KeyValueCache“. Falls der Befehl die Einstellung nicht findet, überprüfen Sie den Pfad, den ausführenden Benutzer und die aktive Konfigurationsdatei. Die offizielle OCC-Anleitung erklärt, wie administrative Befehle ausgeführt werden.

Laden Sie abschließend eine kleine Testdatei hoch, benennen Sie sie um, laden Sie sie herunter und prüfen Sie, ob ein Desktop- oder Mobilclient die Änderung synchronisieren kann. Diese Prüfungen simulieren zwar nicht jede gleichzeitige Arbeitslast, bestätigen aber, dass normale Dateivorgänge nach der Änderung weiterhin funktionieren. Überwachen Sie bei einem stark ausgelasteten oder geclusterten Server das Nextcloud-Protokoll und die Verfügbarkeit von Redis/Valkey im Normalbetrieb. Falls die Warnung weiterhin besteht, überprüfen Sie, ob die Web-PHP-Laufzeitumgebung die erforderliche Erweiterung besitzt (bei Verwendung von Option A), der Cache-Host erreichbar ist, die Anmeldeinformationen und Socket-Berechtigungen korrekt sind und alle Knoten dasselbe Backend verwenden.

Was die Transaktionsdateisperrung bewirkt – und was nicht

Transaktionssperren verhindern Dateibeschädigungen bei sich überschneidenden Operationen, verarbeiten unterbrochene Transaktionen und koordinieren Änderungen an gemeinsam genutzten Dateien und externen Speichern. Sie reservieren kein Dokument, sodass nur eine Person es bearbeiten kann, zeigen nicht an, wer es sonst noch bearbeitet, und führen keine gleichzeitigen Bearbeitungen zusammen. Behandeln Sie die Warnung als Serverkonfigurationsproblem und testen Sie anschließend normale Uploads und Synchronisierungen, nachdem das Backend konfiguriert wurde. Für die gemeinsame Bearbeitung sollten Sie eine Anwendung verwenden, die speziell für die gemeinsame Dokumentenerstellung entwickelt wurde, anstatt sich auf Dateisperren zu verlassen.

Einen Kommentar hinterlassen

Die 10 besten Ping-Sweep-Tools zum Auffinden von Geräten in Ihrem Netzwerk

Die 10 besten Ping-Sweep-Tools zum Auffinden von Geräten in Ihrem Netzwerk

Vergleichen Sie 10 Ping-Sweep-Tools für die schnelle LAN-Erkennung, plattformübergreifende Scans und IP-Adressverwaltung. Erfahren Sie, was ein Sweep liefern kann – und was nicht.

Die 6 besten Netzwerkmanagement-Tools zur Leistungsüberwachung

Die 6 besten Netzwerkmanagement-Tools zur Leistungsüberwachung

Vergleichen Sie sechs Netzwerkmanagement-Tools für die Leistungsüberwachung, einschließlich SNMP-Abdeckung, Mapping, Warnmeldungen, Bereitstellungsmodelle und Kosten-Nutzen-Verhältnisse.

Die besten WLAN-Analysatoren für Windows, iOS und Android

Die besten WLAN-Analysatoren für Windows, iOS und Android

Vergleichen Sie die besten Wi-Fi-Analyseprogramme für Windows, iPhone und Android, einschließlich Tools für Kanalüberlastung, Signalabdeckung, Heatmaps und Netzwerk-Fehlerbehebung.

QoS in Netzwerken: Was Quality of Service bewirkt und wie es funktioniert

QoS in Netzwerken: Was Quality of Service bewirkt und wie es funktioniert

Erfahren Sie, was QoS in der Netzwerktechnik bedeutet, wie DSCP-Markierungen und Datenverkehrswarteschlangen Sprach-, Video- und Geschäftsanwendungen priorisieren und was QoS nicht beheben kann.

Beste SFTP-Server-Software für sichere Dateiübertragungen

Beste SFTP-Server-Software für sichere Dateiübertragungen

Vergleichen Sie zuverlässige SFTP-Server-Software für Windows und Linux, darunter OpenSSH, Bitvise, SolarWinds und SFTPGo. Finden Sie die passende Lösung für Ihre Sicherheits- und Dateitransferanforderungen.

Die 10 besten Tools zum Scannen und Analysieren drahtloser Geräte für Windows, iOS und Android

Die 10 besten Tools zum Scannen und Analysieren drahtloser Geräte für Windows, iOS und Android

Vergleichen Sie 10 Tools zum Scannen und Analysieren drahtloser Netzwerke für Windows, iOS und Android mit klaren Hinweisen zu Wi-Fi-Kanälen, Abdeckungskarten, LAN-Prüfungen und Plattformbeschränkungen.

Bewährte Methoden für die Netzwerküberwachung: Was sollte überwacht werden und welche Tools eignen sich?

Bewährte Methoden für die Netzwerküberwachung: Was sollte überwacht werden und welche Tools eignen sich?

Erstellen Sie eine praktische Netzwerküberwachung mit klarer Geräteabdeckung, nützlichen Leistungskennzahlen, umsetzbaren Warnmeldungen und einem Vergleich von SolarWinds NPM, PRTG und OpManager.

Die 7 besten IP-Adressverwaltungstools für Netzwerkteams

Die 7 besten IP-Adressverwaltungstools für Netzwerkteams

Vergleichen Sie sieben IP-Adressverwaltungstools für Subnetzerkennung, DNS- und DHCP-Koordination, Netzwerkinventarisierung und Open-Source-IPAM.

Die 10 besten Netzwerk-Scanner-Tools zur Erkennung von Geräten und IPs

Die 10 besten Netzwerk-Scanner-Tools zur Erkennung von Geräten und IPs

Vergleichen Sie Netzwerk-Scanner-Tools für die schnelle Geräteerkennung, plattformübergreifende IP-Scans und Enterprise IPAM mit Hinweisen zur Auswahl der passenden Option für Ihr Netzwerk.

Wie man Nmap für Traceroute verwendet und den Netzwerkpfad liest

Wie man Nmap für Traceroute verwendet und den Netzwerkpfad liest

Verwenden Sie die Option --traceroute von Nmap, um Hops einem autorisierten Host zuzuordnen, die Hop- und RTT-Ausgabe zu verstehen und fehlende Antworten zu beheben, ohne übermäßig zu scannen.