Zum Inhalt

Cache und Dateisperren

Lokaler Cache und transaktionale Dateisperren haben unterschiedliche Aufgaben. Die folgenden Warnungen und Einrichtungsschritte gehören zusammen.

Transaktionale Dateisperren

Die Datenbank wird für transaktionale Dateisperren verwendet. Um die Leistung zu verbessern, konfigurieren Sie bitte Memcache, falls verfügbar.

Lokalen Cache und Redis einrichten

Es wurde kein Speichercache konfiguriert. Um die Leistung zu verbessern, konfigurieren Sie bitte Memcache, sofern verfügbar.

APCu wird hier ausschließlich als lokaler Cache verwendet. Für transaktionale Dateisperren richten wir auf diesem Einzelserver Redis ein. Ohne Redis kann Nextcloud weiterhin die Datenbank für Sperren nutzen; APCu ist kein Ersatz für diesen Sperr-Cache.

In einer Root-Shell installieren und den lokalen Redis-Dienst starten:

apt install php-apcu php-redis redis-server
systemctl enable --now redis-server
systemctl restart apache2
redis-cli -h 127.0.0.1 ping

Die letzte Abfrage sollte PONG liefern. Die folgenden Einstellungen setzen Redis auf 127.0.0.1:6379 ohne zusätzliche Authentifizierung voraus. Redis bleibt lokal gebunden; prüfe eine abweichende Port-, Socket- oder Passwortkonfiguration vor dem Übernehmen. Bei PHP-FPM muss dessen Dienst statt nur Apache neu geladen beziehungsweise gestartet werden.

Füge die folgenden Einträge innerhalb des vorhandenen $CONFIG-Arrays in /var/www/nextcloud/config/config.php ein. Vorhandene gleichnamige Einträge ersetzen, nicht doppelt hinzufügen:

'filelocking.enabled' => true,
'memcache.local' => '\OC\Memcache\APCu',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
    'host' => '127.0.0.1',
    'port' => 6379,
],

Für die nachfolgenden CLI-Aufrufe lässt sich APCu gezielt mit php -d apc.enable_cli=1 aktivieren. Alternativ kannst Du apc.enable_cli=1 in einer auch von PHP-CLI geladenen APCu-Konfiguration setzen. Eine Änderung nur in der Apache-php.ini wirkt nicht auf CLI.

Kontrolle: In der Administrationsübersicht prüfen, ob Cache- und Sperr-Warnungen verschwunden sind. Bei Fehlern zuerst Redis-Erreichbarkeit und das geladene PHP-Modul prüfen, statt die Warnung nur auszublenden.