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.