Nextcloud Redis-Caching unter Ubuntu 24.04 einrichten

Nextcloud 34.0.2 führte ein integriertes, Redis-kompatibles KeyValueCacheBackend ein, sodass aktuelle Nextcloud-Versionen Redis nutzen können, ohne die Redis-Erweiterung für PHP installieren zu müssen. Auf einem einzelnen Ubuntu-24.04-Server wird APCu für den schnellen lokalen Cache und Redis für verteiltes Caching und transaktionale Dateisperrung verwendet. Die Verbindung erfolgt über einen Unix-Socket. Dadurch bleibt Redis vom Netzwerk getrennt und Nextcloud erhält einen gemeinsamen Cache, der für alle PHP-Anfragen nutzbar ist.

Wählen Sie zuerst das richtige Redis-Backend aus.

Das aktuelle Nextcloud 35-Administrationshandbuch beschreibt zwei Redis-Pfade. Für Nextcloud 34.0.2 und höher wird die KeyValueCacheVerwendung des mit Nextcloud mitgelieferten Predis empfohlen. Sie installieren den Redis-Server und konfigurieren ihn memcache.kvstore, benötigen aber keine weitere Konfiguration. Ältere Nextcloud-Versionen verwenden die PhpRedis-Erweiterung und einen anderen Block. Überprüfen Sie Ihre Version mit php-redisdem Befehl `npm install --version` und ersetzen Sie den Pfad, falls Ihre Installation an einem anderen Ort liegt.config.phpsudo -u www-data php /var/www/nextcloud/occ status

Diese Anleitung setzt voraus, dass Nextcloud und Redis auf demselben Ubuntu-Host laufen, der Webserver als Hostname ausgeführt wird www-dataund Sie PHP und Redis direkt verwalten. Wenn Sie Nextcloud über Snap, AIO, Docker oder eine andere Appliance installiert haben, befolgen Sie die Service- und Dateisystemkonventionen des jeweiligen Pakets, anstatt Host-Befehle unreflektiert anzuwenden. APCu ist für lokales Caching schneller als Redis, während Redis für verteiltes Caching und Dateisperren geeignet ist. Weitere Informationen finden Sie in der Nextcloud-Dokumentation zum Speicher-Caching .

Installieren Sie Redis und APCu.

Aktualisieren Sie den Paketindex von Ubuntu, installieren Sie den Redis-Server und das APCu-PHP-Modul und aktivieren Sie Redis beim Systemstart:

sudo apt update
sudo apt install redis-server php-apcu
sudo systemctl enable --now redis-server
Ubuntu-Terminal zeigt apt update und die Installation von redis-server und php-apcu an.
Installieren Sie die Redis-Server- und APCu-Pakete, bevor Sie eine der Konfigurationsdateien bearbeiten.

Unter Ubuntu 24.04 ist die Standard-PHP-Version 8.3 und php-apcuentspricht dem Paketnamen der Distribution. Redis ist ein separater Dienst; APCu wird von PHP geladen. Starten Sie den PHP-Handler nach der Installation von APCu neu, damit der webbasierte PHP-Prozess das Modul lädt. Bei Verwendung von PHP-FPM ist dies üblicherweise der Befehl `php --help` php8.3-fpm; bei Apache mit mod_php starten Sie den Befehl `php --help` neu apache2. Überprüfen Sie vor dem Neustart die Namen Ihrer aktiven Dienste.

Redis lokal auf dem Server installieren

Für diese Einzelhost-Konfiguration verwenden Sie einen Unix-Socket und deaktivieren den TCP-Listener von Redis. Bearbeiten Sie die Konfigurationsdatei /etc/redis/redis.conf. Aktualisieren Sie die vorhandenen aktiven Direktiven, anstatt mehrere widersprüchliche Kopien zu hinterlassen, und legen Sie dann Folgendes fest:

port 0
unixsocket /run/redis/redis-server.sock
unixsocketperm 770
Der Redis-Konfigurationseditor zeigt TCP deaktiviert und einen Unix-Socket-Pfad mit Modus 770 an.
Verwenden Sie in Redis und Nextcloud denselben Socket-Pfad und beschränken Sie den Zugriff auf die Redis-Gruppe.

port 0Der TCP-Port wird deaktiviert; Redis lauscht stattdessen über den Socket-Pfad. Der Berechtigungsmodus 770ermöglicht dem Redis-Besitzer und der Redis-Gruppe den Zugriff auf den Socket, während anderen lokalen Benutzern der Zugriff verweigert wird. Fügen Sie das Webserver-Konto der Redis-Gruppe hinzu:

sudo usermod -aG redis www-data
sudo systemctl restart redis-server

Starten Sie den PHP-FPM-Dienst oder Apache nach einer Änderung der Gruppenzugehörigkeit neu, da laufende Prozesse ihre alte Gruppenliste beibehalten. Verwenden Sie den Dienst, der tatsächlich das PHP von Nextcloud ausführt. Die Redis-Dokumentation empfiehlt, den Zugriff auf vertrauenswürdige Clients zu beschränken; ein lokaler Socket vermeidet die Offenlegung eines Cache-Ports auf einer öffentlich zugänglichen Schnittstelle. Siehe die Sicherheitsrichtlinien von Redis .

Nextcloud an die Steckdose anlegen

Sichern Sie die Datei config/config.phpund fügen Sie diese Einträge anschließend in das bestehende PHP-Konfigurationsarray ein. Überschreiben Sie dabei nicht den restlichen Inhalt der Datei. Verwenden Sie den Pfad zu Ihrer Nextcloud-Installation.

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\KeyValueCache',
'memcache.locking' => '\OC\Memcache\KeyValueCache',
'memcache.kvstore' => [
    'server' => [
        'host' => '/run/redis/redis-server.sock',
    ],
],
Der Nextcloud config.php-Editor zeigt APCu-Lokalcache- und KeyValueCache-Einträge unter Verwendung des Redis-Sockets an.
Halten Sie APCu lokal und legen Sie sowohl das Redis-Cache-Backend als auch den Socket-Host in der config.php fest.

Der führende Schrägstrich im Hostpfad weist Nextclouds KeyValueCache an, einen Unix-Socket zu verwenden, sodass keine TCP-Port- oder Protokolleinstellung erforderlich ist. Redis stellt sowohl `APCu` memcache.distributedals auch `APCu` bereit memcache.locking; letzteres verlagert Transaktionsdateisperren von der Datenbank weg. Aktivieren Sie memcache.localAPCu für einen lokalen Cache-Zugriff mit geringerer Latenz. Die genauen Einträge und Socket-Optionen finden Sie in den Anweisungen zu Nextclouds KeyValueCache und Unix-Sockets sowie im Leitfaden zu Transaktionsdateisperren .

Überprüfen Sie die Verbindung und beheben Sie Probleme mit den Berechtigungen.

Prüfen Sie zunächst, ob der Redis-Dienst aktiv ist und ob die Socket-Verbindung antwortet:

sudo systemctl status redis-server
redis-cli -s /run/redis/redis-server.sock ping
Ubuntu-Terminal, das redis-cli gegen den Nextcloud Redis-Socket ausführt und PONG anzeigt.
Eine PONG-Antwort bestätigt, dass Redis eine lokale Verbindung über den konfigurierten Socket akzeptiert.

Die erwartete Antwort auf den zweiten Befehl lautet „“ PONG. Melden Sie sich anschließend bei Nextcloud an und öffnen Sie die Übersicht der Administrationseinstellungen. Prüfen Sie, ob die Warnung zum lokalen Cache nicht mehr angezeigt wird, und überprüfen Sie das Nextcloud-Protokoll, falls weiterhin eine Redis- oder Cache-Warnung vorliegt. Sie können auch den Befehl ausführen, sudo -u www-data php /var/www/nextcloud/occ statusum zu überprüfen, ob die Instanz noch geladen wird. Dieser Befehl prüft die Nextcloud-Verfügbarkeit, nicht den Cache selbst.

Wenn Redis „Zugriff verweigert“ meldet oder Nextcloud keine Verbindung herstellen kann, prüfen Sie, ob der Socket existiert, www-datazur redisrichtigen Gruppe gehört und ob Gruppe und Modus des Sockets den Zugriff erlauben. Starten Sie Redis und den PHP-Handler nach einer Änderung der Gruppenzugehörigkeit neu. Kann Redis den Socket nicht erstellen, prüfen Sie den konfigurierten Pfad auf Tippfehler und untersuchen Sie die Konfiguration sudo journalctl -u redis-server -n 50. Beheben Sie Socket-Berechtigungsprobleme nicht, indem Sie Redis für das öffentliche Netzwerk freigeben.

Ältere Nextcloud-Versionen: Verwenden Sie stattdessen phpRedis.

Wenn Ihre Nextcloud-Version älter als 34.0.2 ist, installieren Sie die PHP-Redis-Erweiterung, die zur PHP-Version Ihres Nextcloud-Systems passt. Unter Ubuntu 24.04 mit PHP 8.3 lautet das Paket ` php-redis<Paketname>`; Ubuntu listet es als PHP-8.3-Redis-Erweiterung auf. Starten Sie den aktiven PHP-Handler nach der Installation neu. config.phpVerwenden Sie in `<Konfigurationsdatei>` die älteren Redis-Klassen und den Verbindungsblock anstelle der oben genannten KeyValueCache-Einträge.

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
    'host' => '/run/redis/redis-server.sock',
    'port' => 0,
],

Die Paketliste von Noble php-redis unter Ubuntu bestätigt die Paketzuordnung. Konfigurieren Sie nicht beide Backends gleichzeitig. Nach dem Speichern der korrekten Konfiguration wiederholen Sie den Socket-Ping und die Überprüfung der Nextcloud-Admin-Übersicht.

Einen Kommentar hinterlassen

Legen Sie die öffentliche URL von Nextcloud so fest, dass es sich selbst erreichen kann.

Beheben Sie die Warnung von Nextcloud bezüglich der fehlenden ausgehenden Adresse, indem Sie die kanonische URL festlegen und DNS, HTTPS und Reverse-Proxy-Routing direkt auf dem Server überprüfen.

Nextcloud Redis-Caching unter Ubuntu 24.04 einrichten

Nextcloud Redis-Caching unter Ubuntu 24.04 einrichten

Konfigurieren Sie APCu und Redis über einen lokalen Unix-Socket für Nextcloud-Caching und Dateisperrung, mit Schritten für aktuelle und ältere Nextcloud-Versionen.

Nextcloud Cron mithilfe eines Systemd-Timers automatisch ausführen

Überprüfen Sie den Cron-Modus von Nextcloud, reparieren Sie den Systemd-Dienst und den Timer und vergewissern Sie sich, dass Hintergrundprozesse nach dem Start und anschließend alle fünf Minuten ausgeführt werden.

Nextcloud-Dateisperrwarnung mit Redis beseitigen

Aktivieren Sie die zuverlässige Nextcloud-Dateisperrung, wählen Sie das richtige Redis- oder Valkey-Backend und überprüfen Sie, ob die Warnung verschwindet, ohne dass gleichzeitige Dateiänderungen riskiert werden.

Was nötig ist, um eine A+-Sicherheitsbewertung für Nextcloud zu erreichen

Was nötig ist, um eine A+-Sicherheitsbewertung für Nextcloud zu erreichen

Behebt häufige Nextcloud-Scan-Fehler durch aktuelle Updates, HTTPS und HSTS, präzises Reverse-Proxy-Trust und Überprüfungen gegen den öffentlichen Server.

Aktivieren Sie die serverseitige Verschlüsselung von Nextcloud mit messbaren Auswirkungen

Konfigurieren Sie Nextcloud SSE für den Speicher, der es benötigt, schützen Sie die Verschlüsselungsschlüssel und messen Sie die Übertragungs- und CPU-Auswirkungen, bevor Sie vorhandene Dateien verschlüsseln.

Füge die Elasticsearch-Volltextsuche zu Nextcloud hinzu

Verbinden Sie die Dateisuche von Nextcloud mit Elasticsearch, indizieren Sie Dokumentinhalte und wählen Sie eine Konfiguration, die Ihren Server- und Sicherheitsanforderungen entspricht.

Legen Sie eine zuverlässige Ablaufrichtlinie für gelöschte Nextcloud-Dateien fest.

Legen Sie eine zuverlässige Ablaufrichtlinie für gelöschte Nextcloud-Dateien fest.

Konfigurieren Sie Nextcloud so, dass gelöschte Dateien nach einer festgelegten Aufbewahrungsfrist entfernt werden, Hintergrundprozesse zuverlässig geplant werden und Befehle vermieden werden, die den Papierkorb aller Benutzer leeren.

Warnung „Fehlende Datenbankindizes in Nextcloud“ löschen

Warnung „Fehlende Datenbankindizes in Nextcloud“ löschen

Führen Sie die OCC-Reparatur von Nextcloud sicher durch, sehen Sie sich die Datenbankänderungen in der Vorschau an und prüfen Sie, warum die Warnung möglicherweise weiterhin angezeigt wird.

Nextclouds Upload-Limit über 2 GB hinaus erhöhen

Nextclouds Upload-Limit über 2 GB hinaus erhöhen

Ermöglichen Sie größere Nextcloud-Browser-Uploads, indem Sie die Einstellungen für PHP, Nginx oder Apache, temporären Speicher und Timeout aufeinander abstimmen – und überprüfen Sie, welches Limit die Datei blockiert.