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 wird auf diesem Einzelserver Redis eingerichtet. 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 -y 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; abweichende Port-, Socket- oder Passwortkonfigurationen vor der Übernahme prüfen. Bei PHP-FPM muss dessen Dienst statt nur Apache neu geladen beziehungsweise gestartet werden.

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

vi /var/www/nextcloud/config/config.php
  '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 kann man 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.