So konfigurieren Sie Redis-Caching für Nextcloud unter Ubuntu 24.04

Das aktuelle Nextcloud-Administrationshandbuch beschreibt weiterhin die PhpRedis-Erweiterung für Redis-Caching und transaktionale Dateisperrung. Es beschreibt auch ein neueres, erweiterungsfreies KeyValueCache-Backend, das in Nextcloud 34.0.2 hinzugefügt wurde. Diese Anleitung verwendet die etablierte PhpRedis-Konfiguration, da Ubuntu 24.04 das PHP 8.3 Redis-Erweiterungspaket bereitstellt. Das neuere Backend ist optional, sofern Ihre Nextcloud-Version es unterstützt. Die Konfigurationsschlüssel unterscheiden sich jedoch; verwenden Sie die beiden Beispiele nicht gleichzeitig.

Das Ergebnis ist ein lokaler Redis-Dienst, der nur dem Nextcloud-Host zur Verfügung steht, ein Redis-basierter verteilter Cache mit Dateisperrung sowie APCu für einen schnelleren lokalen Cache. Dies ist eine gängige Konfiguration für einen einzelnen Server. Befinden sich Ihre Web- und PHP-Server auf verschiedenen Hosts, verwenden Sie anstelle der unten beschriebenen Localhost-Einstellungen einen gemeinsam genutzten Redis-Endpunkt mit entsprechenden Netzwerksteuerungen.

Welche Redis-Änderungen gibt es bei einer Nextcloud-Installation?

Redis bietet Nextcloud einen Key-Value-Dienst für verteilte Cache-Einträge und transaktionale Dateisperren. Diese Sperren verhindern Konflikte, wenn mehrere Anfragen gleichzeitig auf Dateien zugreifen. Redis ersetzt weder die Datenbank, den Dateispeicher, den PHP-OPcache noch die Datensicherung von Nextcloud. Auf einem einzelnen Server ist APCu im Allgemeinen schneller für lokales In-Process-Caching, während Redis den gemeinsamen Cache und die Sperren verwaltet. Nextcloud weist jedoch darauf hin, dass die Verwendung von Redis als lokalem Cache, insbesondere bei mehreren Webservern, nicht empfehlenswert ist.

Das aktuelle Nextcloud-Handbuch nennt Redis als unterstütztes Backend und gibt PhpRedis 2.2.6 oder neuer für die Erweiterungsmethode an. Das Paketarchiv von Ubuntu 24.04 enthält die entsprechenden Pakete php8.3-redis. redis-serverDa sich Paketversionen mit Ubuntu-Updates ändern können, sollten Sie die Pakete aus den konfigurierten Ubuntu-Repositories installieren, anstatt eine Version aus einem älteren Handbuch zu verwenden. Referenzen geprüft am 6. Oktober 2026: Nextcloud-Dokumentation zum Speicher-Caching , Paketliste von PhpRedis unter Ubuntu 24.04 und Paketliste des Redis-Servers unter Ubuntu 24.04 .

Bevor Sie beginnen

  • Überprüfen Sie das Nextcloud-Installationsverzeichnis und die von der Website verwendete PHP-Laufzeitumgebung. Die folgenden Befehle setzen eine Standardinstallation eines Ubuntu-Pakets mit PHP 8.3, Apache oder PHP-FPM und dem Webdienstkonto voraus www-data.
  • Sichern Sie die Daten config/config.phpund notieren Sie sich, wie Sie sie wiederherstellen können. Der genaue Pfad variiert: Beispielsweise kann bei einer Paketinstallation der Pfad verwendet werden /var/www/nextcloud/config/config.php, während er bei einer manuellen Installation an einer anderen Stelle liegen kann.
  • Nutzen Sie ein Wartungsfenster, wenn der Server aktive Datei-Uploads verarbeitet. Ein Neustart von Apache oder PHP-FPM unterbricht Webanfragen kurzzeitig.

1. Installieren Sie Redis, PhpRedis und APCu.

Paketmetadaten aktualisieren und Daemon sowie PHP-Erweiterungen installieren:

sudo apt update
sudo apt install redis-server php-redis php-apcu

Das Ubuntu- php-redisPaket wählt die Erweiterung passend zur installierten PHP-Version aus. Wenn Sie mehrere PHP-Versionen verwenden oder ein PHP-Repository eines Drittanbieters nutzen, stellen Sie sicher, dass die Erweiterung für die exakte PHP-Version installiert ist, auf der Nextcloud läuft. Ein Modul, das nur für die PHP-Laufzeitumgebung der Kommandozeile aktiviert ist, garantiert nicht, dass Apache oder PHP-FPM es laden können.

Aktivieren Sie Redis beim Systemstart und starten Sie es jetzt, überprüfen Sie dann aber den Dienststatus:

sudo systemctl enable --now redis-server
sudo systemctl status redis-server --no-pager
redis-cli ping

Eine korrekte lokale Redis-Antwort auf den letzten Befehl ist PONG. Wenn der Dienst inaktiv ist, überprüfen Sie ihn, sudo journalctl -u redis-server -n 50 --no-pagerbevor Sie die Nextcloud-Konfiguration ändern.

2. Halten Sie den Redis-Listener lokal.

Bei einer Installation auf einem einzelnen Host muss Redis nicht auf einer öffentlichen Schnittstelle lauschen. Die mit Ubuntu mitgelieferte Konfiguration ist normalerweise für den lokalen Zugriff und den geschützten Modus ausgelegt; überprüfen Sie diese, /etc/redis/redis.confbevor Sie Änderungen vornehmen.

sudo grep -E '^(bind|protected-mode|port|unixsocket)' /etc/redis/redis.conf

Binden Sie Redis an den Loopback (üblicherweise 127.0.0.1und ::1) und lassen Sie den geschützten Modus aktiviert. Geben Sie Port nicht 6379im Internet frei und binden Sie ihn 0.0.0.0für diese lokale Konfiguration nicht an . Starten Sie den Dienst nach jeder Änderung der Redis-Konfiguration neu und wiederholen Sie die Schritte redis-cli ping.

Diese Anleitung verwendet TCP auf localhost, um Änderungen an den Socket-Berechtigungen zu minimieren. Ein Unix-Socket ist eine weitere unterstützte lokale Option und kann den Verbindungsaufwand reduzieren. Allerdings müssen der Redis-Socket-Pfad, die Gruppenzugehörigkeit, die Berechtigungen und die Nextcloud-Konfiguration übereinstimmen. Wenn Sie diese Option wählen, folgen Sie dem Socket-Beispiel im Nextcloud-Handbuch.

3. Stellen Sie sicher, dass PHP beide Erweiterungen laden kann.

Überprüfen Sie die PHP-Befehlszeilenmodule:

php -m | grep -Ei '^(apcu|redis)$'

Sie sollten beide Namen sehen. Falls einer fehlt, überprüfen Sie die aktivierten Moduldateien php --iniund installieren Sie das passende Paket für Ihre PHP-Version. Starten Sie den PHP-Handler der Website neu, damit die Worker die neuen Module laden. Führen Sie für Apache mit mod_php den Befehl aus sudo systemctl restart apache2. Für eine PHP-FPM-Installation mit PHP 8.3 führen Sie den Befehl aus sudo systemctl restart php8.3-fpm; starten Sie den Webserver anschließend neu, je nach Bedarf.

Die CLI-Prüfung ist ein nützliches erstes Indiz, aber kein vollständiger Beweis für die Funktionsfähigkeit der Web-Laufzeitumgebung. Überprüfen Sie später mithilfe der Nextcloud-Administrationseinstellungen und der Server- oder PHP-Informationsansicht, ob der Webprozess die Cache-Module erkennt.

4. Fügen Sie die Cache-Einstellungen zu Nextcloud hinzu.

Öffnen Sie die vorhandene Datei config/config.phpmit einem Editor. Erstellen Sie vorher eine Sicherungskopie der Datei und fügen Sie diese Einträge in das bestehende PHP-Array ein, bevor Sie die Datei schließen );. Ersetzen Sie nicht die gesamte Datei und fügen Sie keine zweite Kopie bereits vorhandener Schlüssel hinzu.

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

Die explizite Loopback-Adresse entspricht der lokalen Redis-Adresse. Verwenden Sie stattdessen einen Unix-Socket, geben Sie den Socket-Pfad als Redis-Host an und konfigurieren Sie den Daemon und die Berechtigungen entsprechend. Falls Redis eine Authentifizierung erfordert, fügen Sie den korrekten Redis-ACL-Benutzernamen und das Passwort dem redisArray hinzu und konfigurieren Sie Redis entsprechend. Geben Sie niemals ein echtes Passwort in einem Beispiel oder einem öffentlichen Supportbeitrag an.

Bestehende Einstellungen wie instanceidDatenbankzugangsdaten, vertrauenswürdige Domänen und Datenverzeichnis sollten unverändert bleiben. Die PHP-Array-Syntax ist wichtig: Trennen Sie die Einträge durch Kommas und stellen Sie sicher, dass jede Einstellung nur einmal vorkommt.

5. Cache und Dateisperrung überprüfen.

Führen Sie die Statusprüfung von Nextcloud über die Befehlszeile im Installationsverzeichnis als Webdienstbenutzer aus. Ersetzen Sie den Beispielpfad, falls Ihre Installation an einem anderen Ort liegt:

cd /var/www/nextcloud
sudo -u www-data php occ status

Prüfen Sie in den Administrationseinstellungen der Weboberfläche auf Konfigurationswarnungen und vergewissern Sie sich, dass die Redis- und APCu-Module für die Web-PHP-Laufzeitumgebung sichtbar sind. Testen Sie anschließend normale Dateivorgänge mit einer kleinen, unkritischen Datei: Laden Sie sie hoch, benennen Sie sie um, laden Sie sie herunter und löschen Sie sie. Die Administrationsseite sollte nun keine Meldung mehr über einen fehlenden Arbeitsspeicher-Cache mehr anzeigen, wenn der lokale Cache korrekt konfiguriert ist.

Ein erfolgreicher PONGTest beweist lediglich, dass Redis auf den lokalen CLI-Client reagiert. Die Nextcloud-Admin-Prüfung und routinemäßige Dateivorgänge helfen dabei, die PHP-Erweiterung, die Webserver-Berechtigungen, die Redis-Verbindungseinstellungen und die Anwendungskonfiguration gemeinsam zu überprüfen. Eine schnellere Seitenladezeit in einem einzelnen Test sollte nicht als Beweis für eine messbare Leistungsverbesserung gewertet werden; Arbeitslast, Speicherkapazität, Datenbank und PHP-Worker-Kapazität beeinflussen die Antwortzeit.

Behebung häufiger Probleme

Die Admin-Seite meldet weiterhin, dass kein Arbeitsspeicher-Cache vorhanden ist.

Prüfen Sie, ob der Cache-Schlüssel doppelt oder falsch geschrieben ist, stellen Sie sicher, dass memcache.localer auf APCu verweist, und starten Sie den entsprechenden Apache- oder PHP-FPM-Dienst neu. Eine reine CLI-PHP-Installation kann sich von der auf der Website verwendeten PHP-Laufzeitumgebung unterscheiden.

Redis läuft, aber Nextcloud meldet Verbindungsfehler.

Vergleichen Sie die hostListener portin der config.phpKonfigurationsdatei mit den Listenern in der Konfigurationsdatei /etc/redis/redis.conf. Bestätigen Sie den lokalen Zugriff mit der entsprechenden Methode redis-cli -h 127.0.0.1 -p 6379 pingund überprüfen Sie die Redis- und Webserver-Protokolle. Wenn Sie einen Socket oder ein Passwort verwenden, stellen Sie sicher, dass Pfad und Zugangsdaten auf beiden Seiten übereinstimmen.

Dateivorgänge schlagen nach der Änderung fehl.

Sollte die Instanz nicht mehr nutzbar sein, stellen Sie vorübergehend die Sicherung wieder her config.phpund überprüfen Sie anschließend die PHP- und Webserver-Logs. Achten Sie auf die korrekte Array-Formatierung, vergewissern Sie sich, dass der Redis-Dienst aktiv ist, und stellen Sie sicher, dass keine Firewall oder benutzerdefinierte Redis-ACL den Webprozess blockiert. Löschen Sie Redis-Daten nicht als ersten Schritt zur Fehlerbehebung; untersuchen Sie stattdessen die Verbindung und Konfiguration, bevor Sie Cache- oder Sperreinträge entfernen.

Was diese Konfiguration nicht abdeckt

Dies ist eine Einzelserverkonfiguration, keine hochverfügbare Redis-Architektur. Sie konfiguriert weder Redis-Replikation, Sentinel, TLS, einen Remote-Cache-Host, Session-Speicher noch eine geclusterte Nextcloud-Bereitstellung. Nextcloud-Knoten mit mehreren Servern müssen denselben verteilten Cache und dasselbe Locking-Backend nutzen; die Verwendung von localhost auf jedem Knoten würde separate Redis-Instanzen erzeugen und diese Anforderung zunichtemachen. Für eine Remote- oder Cluster-Topologie folgen Sie dem entsprechenden Abschnitt zur Nextcloud-Konfiguration und sichern Sie die Redis-Kommunikation für diese Umgebung.

Sobald die Konfiguration stabil ist, überwachen Sie die Redis-Speichernutzung und die Nextcloud-Administrationsübersicht. Stellen Sie ausreichend Speicher für Cache- und Sperrvorgänge bereit, vermeiden Sie ungeprüfte Löschungsrichtlinien, die Sperrdaten verwerfen könnten, und erstellen Sie regelmäßig Datenbank- und Dateisicherungen. Redis-Caching kann den Cache- und Sperraufwand reduzieren, ist aber nur ein Bestandteil einer optimalen Nextcloud-Installation und kein Ersatz für eine sorgfältige Kapazitätsplanung.

Einen Kommentar hinterlassen

Hohe CPU-Auslastung in Jitsi Meet auf Client-Browsern beheben

Hohe CPU-Auslastung in Jitsi Meet auf Client-Browsern beheben

Diagnostizieren Sie CPU-Spitzen im Jitsi Meet-Browser und reduzieren Sie die Clientlast, indem Sie Videokacheln, Kameraeffekte, Browsergrafiken und Host-Einstellungen überprüfen.

Wie man Jitsi Videobridge-Metriken mit Prometheus und Grafana überwacht

Wie man Jitsi Videobridge-Metriken mit Prometheus und Grafana überwacht

Verfolgen Sie den Status von Jitsi Videobridge, die Konferenzlast und den Datenverkehr mit dem integrierten Prometheus-Endpunkt und analysieren und visualisieren Sie die Daten anschließend in Grafana.

So konfigurieren Sie einen benutzerdefinierten Domänennamen für Jitsi Meet Docker

So konfigurieren Sie einen benutzerdefinierten Domänennamen für Jitsi Meet Docker

Konfigurieren Sie eine benutzerdefinierte Domain für Jitsi Meet Docker mit DNS, PUBLIC_URL, HTTPS, Let's Encrypt, Firewall-Ports, NAT-Einstellungen und Ende-zu-Ende-Verifizierung.

Behebung des Zimbra-Administrationskonsolenfehlers 404 (Nicht gefunden) nach SSL-Erneuerung

Behebung des Zimbra-Administrationskonsolenfehlers 404 (Nicht gefunden) nach SSL-Erneuerung

Beheben Sie 404-Fehler in der Zimbra-Administrationskonsole nach der SSL-Erneuerung, indem Sie die korrekte URL und den Port, das Proxy-Routing, den Dienststatus, die bereitgestellten Zertifikate und die Protokolle überprüfen.

Nextcloud-Warnung „Der PHP OPcache ist nicht ordnungsgemäß konfiguriert“ beheben

Nextcloud-Warnung „Der PHP OPcache ist nicht ordnungsgemäß konfiguriert“ beheben

Erfahren Sie, wie Sie die PHP OPcache-Konfigurationswarnung von Nextcloud diagnostizieren und beheben können, indem Sie die aktive PHP SAPI, Größenbeschränkungen, Kommentare und Revalidierungseinstellungen überprüfen.

Behebung von Kopano-Datenbankmigrationsfehlern nach einem MySQL-Versionsupgrade

Behebung von Kopano-Datenbankmigrationsfehlern nach einem MySQL-Versionsupgrade

Beheben Sie Probleme bei der Migration der Kopano-Datenbank nach einem MySQL- oder MariaDB-Upgrade, indem Sie Backups, Serverversionen, SQL-Modi, Zeichensatz, Schemastatus und Protokolle überprüfen.

So konfigurieren Sie die LDAP- und Active Directory-Authentifizierung in Nextcloud

So konfigurieren Sie die LDAP- und Active Directory-Authentifizierung in Nextcloud

Verbinden Sie Nextcloud mit LDAP oder Active Directory über sichere Transportwege, Benutzer- und Gruppenfilter, Anmeldeattribute und einen getesteten Rollout.

Android-Benachrichtigungen ohne Google-Dienste reparieren: UnifiedPush-Anleitung

Android-Benachrichtigungen ohne Google-Dienste reparieren: UnifiedPush-Anleitung

Beheben Sie Probleme mit Element-Android-Benachrichtigungen auf Google-freien Telefonen durch die Konfiguration von UnifiedPush, Android-Berechtigungen, Akkueinstellungen und zuverlässigen Verifizierungstests.

Beheben Sie die Nextcloud-Warnung „Datenbank enthält nicht alle Indizes“.

Beheben Sie die Nextcloud-Warnung „Datenbank enthält nicht alle Indizes“.

Die Warnung bezüglich fehlender Datenbankindizes in Nextcloud lässt sich mit dem offiziellen Befehl `occ` beheben. Sichern Sie Ihre Daten vorher, überprüfen Sie die Änderungen in der Vorschau, führen Sie die Reparatur durch und prüfen Sie das Ergebnis.

So konfigurieren Sie Single Sign-On (SSO) mit Keycloak in Element Web

So konfigurieren Sie Single Sign-On (SSO) mit Keycloak in Element Web

Konfigurieren Sie Keycloak SSO für Element Web, indem Sie OIDC mit Synapse verbinden, die genaue Callback-URL festlegen, Benutzeransprüche zuordnen und den Logout testen.