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.