Hoe configureer je Redis-caching voor Nextcloud op Ubuntu 24.04?

De huidige beheerdershandleiding van Nextcloud beschrijft nog steeds de PhpRedis-extensie voor Redis-caching en transactionele bestandsvergrendeling. Ook wordt een nieuwere, extensievrije KeyValueCache-backend beschreven die is toegevoegd in Nextcloud 34.0.2. Deze handleiding gebruikt de bestaande PhpRedis-configuratie omdat Ubuntu 24.04 het PHP 8.3 Redis-extensiepakket levert. De nieuwere backend is een optie als uw Nextcloud-versie deze ondersteunt, maar de configuratiesleutels verschillen; gebruik de twee voorbeelden niet door elkaar.

Het resultaat is een lokale Redis-service die alleen beschikbaar is voor de Nextcloud-host, een door Redis ondersteunde gedistribueerde cache en bestandsvergrendeling, en APCu voor de snellere lokale cache. Dit is een veelvoorkomende configuratie voor één server. Als uw web- en PHP-servers over meerdere hosts zijn verdeeld, gebruik dan een gedeeld Redis-eindpunt met de juiste netwerkinstellingen in plaats van de onderstaande localhost-instellingen.

Wat Redis verandert in een Nextcloud-installatie

Redis biedt Nextcloud een key-value service voor gedistribueerde cache-items en transactionele bestandsvergrendelingen. Deze vergrendelingen helpen conflicterende bewerkingen te voorkomen wanneer meerdere verzoeken met bestanden werken. Redis vervangt de database, bestandsopslag, PHP OPcache of het back-upplan van Nextcloud niet. Op een enkele server is APCu over het algemeen sneller voor lokale caching binnen hetzelfde proces, terwijl Redis de gedeelde cache en vergrendelingen afhandelt. Nextcloud waarschuwt er ook voor dat het gebruik van Redis als lokale cache niet wordt aanbevolen, met name bij meerdere webservers.

In de meest recente handleiding van Nextcloud wordt Redis als ondersteunde backend vermeld en wordt PhpRedis 2.2.6 of nieuwer voorgeschreven voor de op extensies gebaseerde methode. Het pakketarchief van Ubuntu 24.04 bevat php8.3-redisen redis-server. Pakketrevisies kunnen veranderen naarmate Ubuntu updates publiceert, dus installeer vanuit de geconfigureerde Ubuntu-repositories in plaats van een versie te gebruiken die is gekopieerd uit een oudere handleiding. Referenties gecontroleerd op 6 oktober 2026: Nextcloud-documentatie over geheugencaching , de pakketlijst van PhpRedis voor Ubuntu 24.04 en de pakketlijst van de Redis-server voor Ubuntu 24.04 .

Voordat je begint

  • Controleer de installatiemap van Nextcloud en de PHP-runtime die door de website wordt gebruikt. De onderstaande commando's gaan ervan uit dat er een standaard Ubuntu-pakketinstallatie is met PHP 8.3, Apache of PHP-FPM en het webserviceaccount www-data.
  • Maak een back-up config/config.phpen noteer hoe je deze kunt herstellen. Het exacte pad varieert: een pakketinstallatie kan bijvoorbeeld gebruikmaken van /var/www/nextcloud/config/config.php, terwijl een handmatige installatie zich elders kan bevinden.
  • Gebruik een onderhoudsvenster als de server actieve bestandsuploads verwerkt. Het herstarten van Apache of PHP-FPM onderbreekt webverzoeken tijdelijk.

1. Installeer Redis, PhpRedis en APCu

Update de pakketmetadata en installeer de daemon en PHP-extensies:

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

Ubuntu php-redisselecteert de extensie voor de geïnstalleerde PHP-versie. Als u meerdere PHP-versies beheert of een PHP-repository van derden gebruikt, controleer dan of de extensie is geïnstalleerd voor de exacte PHP-versie die Nextcloud gebruikt. Een module die alleen is ingeschakeld voor de PHP-runtime via de commandoregel, garandeert niet dat Apache of PHP-FPM deze kan laden.

Schakel Redis in bij het opstarten en start het nu, controleer vervolgens de status van de service:

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

Een correcte lokale Redis-respons op het laatste commando is PONG. Als de service inactief is, controleer dit sudo journalctl -u redis-server -n 50 --no-pagerdan voordat u de Nextcloud-configuratie wijzigt.

2. Houd de Redis-listener lokaal.

Voor een installatie op één host hoeft Redis niet te luisteren op een openbare interface. De standaardconfiguratie van Ubuntu is doorgaans ontworpen voor lokale toegang en de beveiligde modus; controleer deze /etc/redis/redis.confvoordat u wijzigingen aanbrengt.

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

Houd Redis gebonden aan loopback (meestal 127.0.0.1en ::1) en laat de beveiligde modus ingeschakeld. Stel poort niet open 6379voor internet en bind deze niet aan 0.0.0.0voor deze lokale configuratie. Na elke wijziging in de Redis-configuratie, start u de service opnieuw en herhaalt u de stappen redis-cli ping.

Deze handleiding maakt gebruik van TCP op localhost om wijzigingen in socketrechten te minimaliseren. Een Unix-socket is een andere ondersteunde lokale optie en kan de verbindingsoverhead verminderen, maar het Redis-socketpad, het groepseigendom, de rechten en de Nextcloud-configuratie moeten allemaal overeenkomen. Volg het socketvoorbeeld in de Nextcloud-handleiding als u bewust voor die methode kiest.

3. Controleer of PHP beide extensies kan laden.

Controleer de PHP-modules voor de commandoregel:

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

Je zou beide namen moeten zien. Als er één ontbreekt, controleer dan de ingeschakelde modulebestanden php --inien installeer het bijbehorende pakket voor jouw PHP-versie. Herstart de PHP-handler die door de website wordt gebruikt, zodat de workers de nieuwe modules laden. Voor Apache met mod_php, voer je uit sudo systemctl restart apache2. Voor een PHP-FPM-installatie met PHP 8.3, voer je uit sudo systemctl restart php8.3-fpm; herstart of herlaad de webserver, afhankelijk van wat je implementatie vereist.

De CLI-controle is een nuttig eerste signaal, maar geen volledig bewijs van de webruntime. Gebruik later de beheerdersinstellingen van Nextcloud en de serverinformatie of PHP-informatie om te controleren of het webproces de cachemodules herkent.

4. Voeg de cache-instellingen toe aan Nextcloud

Open het bestaande bestand config/config.phpmet een editor. Maak eerst een back-up van het bestand en voeg deze items samen met de bestaande PHP-array voordat je het bestand sluit );. Vervang niet het hele bestand en voeg geen tweede kopie toe van sleutels die al aanwezig zijn.

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

Het expliciete loopback-adres komt overeen met de lokale Redis-service. Als u in plaats daarvan een Unix-socket gebruikt, gebruik dan het socketpad als de Redis-host en configureer de daemon en de machtigingen dienovereenkomstig. Als Redis authenticatie vereist, voeg dan de juiste Redis ACL-gebruikersnaam en het wachtwoord toe aan de redisarray en configureer Redis dienovereenkomstig; plak nooit een echt wachtwoord in een gedeeld voorbeeld of een openbaar ondersteuningsbericht.

Laat bestaande instellingen zoals instanceiddatabasegegevens, vertrouwde domeinen en gegevensmap ongewijzigd. De syntaxis van PHP-arrays is belangrijk: gebruik komma's tussen de elementen en zorg ervoor dat elke instelling slechts één keer voorkomt.

5. Valideer de cache en de bestandsvergrendeling.

Voer de Nextcloud-statuscontrole via de opdrachtregel uit vanuit de installatiemap als de webservicegebruiker. Vervang het voorbeeldpad als uw installatie zich elders bevindt:

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

Controleer de webinterface onder Beheerinstellingen op installatiewaarschuwingen en bevestig dat de Redis- en APCu-modules zichtbaar zijn voor de web-PHP-runtime. Test vervolgens normale bestandsbewerkingen met een klein, niet-kritiek bestand: upload het, hernoem het, download het en verwijder het. De beheerderspagina zou geen melding meer moeten geven dat er een geheugencache ontbreekt wanneer de lokale cache correct is geconfigureerd.

Een succesvolle PONGtest bewijst alleen dat Redis reageert op de lokale CLI-client. De Nextcloud-beheercontrole en routinematige bestandsbewerkingen helpen bij het verifiëren van de PHP-extensie, webserverrechten, Redis-verbindingsinstellingen en applicatieconfiguratie. Beschouw een snellere paginalading tijdens één test niet als bewijs van een gemeten prestatieverbetering; de werkbelasting, opslagcapaciteit, databasecapaciteit en PHP-workercapaciteit hebben allemaal invloed op de reactietijd.

Veelvoorkomende problemen oplossen

De beheerderspagina meldt nog steeds dat er geen geheugencache aanwezig is.

Controleer op dubbele of verkeerd gespelde cache-sleutels, bevestig dat memcache.localdeze naar APCu verwijzen en herstart de juiste Apache- of PHP-FPM-service. Een PHP-installatie die alleen via de commandline toegankelijk is, kan afwijken van de PHP-runtime die door de website wordt gebruikt.

Redis draait wel, maar Nextcloud meldt verbindingsfouten.

Vergelijk de hosten portmet config.phpde listener in /etc/redis/redis.conf. Bevestig lokale toegang met redis-cli -h 127.0.0.1 -p 6379 pingen controleer de Redis- en webserverlogboeken. Als u een socket of wachtwoord gebruikt, controleer dan of het pad of de inloggegevens aan beide zijden overeenkomen.

Bestandbewerkingen mislukken na de wijziging.

Herstel tijdelijk de back-up config.phpals de instantie onbruikbaar wordt en controleer vervolgens de PHP- en webserverlogboeken. Controleer de array-identificatie, bevestig dat de Redis-service actief is en controleer of geen firewall of aangepaste Redis ACL het webproces blokkeert. Wis niet direct Redis-gegevens als eerste stap in de probleemoplossing; onderzoek de verbinding en configuratie voordat u cache- of vergrendelingsvermeldingen verwijdert.

Wat deze configuratie niet dekt

Dit is een configuratie met één server, geen ontwerp voor Redis met hoge beschikbaarheid. Er wordt geen Redis-replicatie, Sentinel, TLS, een externe cachehost, sessieopslag of een geclusterde Nextcloud-implementatie geconfigureerd. Nextcloud-nodes in een multi-serverconfiguratie moeten dezelfde gedistribueerde cache en vergrendelingsbackend delen; localhost op elke node zou afzonderlijke Redis-instanties creëren en daarmee aan die vereiste niet voldoen. Volg voor een externe of geclusterde topologie de bijbehorende Nextcloud-configuratiesectie en beveilig de Redis-communicatie voor die omgeving.

Nadat de configuratie stabiel is, controleer dan het geheugengebruik van Redis en het beheerdersoverzicht van Nextcloud. Wijs voldoende geheugen toe voor cache- en vergrendelingsactiviteiten, vermijd ongecontroleerde verwijderingsbeleidsregels die vergrendelingsgegevens kunnen verwijderen en maak regelmatig back-ups van de database en bestanden. Redis-caching kan de overhead van cache en vergrendeling verminderen, maar het is slechts een onderdeel van een gezonde Nextcloud-installatie en geen vervanging voor capaciteitsplanning.

Laat een reactie achter

Het probleem met het hoge CPU-gebruik in Jitsi Meet op clientbrowsers oplossen.

Het probleem met het hoge CPU-gebruik in Jitsi Meet op clientbrowsers oplossen.

Diagnoseer pieken in het CPU-gebruik van de Jitsi Meet-browser en verlaag de belasting van de client door videotegels, camera-effecten, browsergraphics en hostinstellingen te controleren.

Hoe je Jitsi Videobridge-statistieken kunt monitoren met Prometheus en Grafana

Hoe je Jitsi Videobridge-statistieken kunt monitoren met Prometheus en Grafana

Monitor de status van Jitsi Videobridge, de belasting van conferenties en het verkeer met het ingebouwde Prometheus-eindpunt, en analyseer en visualiseer de gegevens vervolgens in Grafana.

Hoe configureer je een aangepaste domeinnaam voor Jitsi Meet Docker?

Hoe configureer je een aangepaste domeinnaam voor Jitsi Meet Docker?

Configureer een aangepast domein voor Jitsi Meet Docker met DNS, PUBLIC_URL, HTTPS, Let's Encrypt, firewallpoorten, NAT-instellingen en end-to-end verificatie.

Oplossing voor de 404-fout 'Zimbra Admin Console niet gevonden' na SSL-vernieuwing.

Oplossing voor de 404-fout 'Zimbra Admin Console niet gevonden' na SSL-vernieuwing.

Los 404-fouten in de Zimbra Admin Console op na het vernieuwen van een SSL-certificaat door de juiste URL en poort, proxy-routering, servicestatus, geïmplementeerde certificaten en logbestanden te controleren.

Los de Nextcloud-waarschuwing "De PHP OPcache is niet correct geconfigureerd" op.

Los de Nextcloud-waarschuwing "De PHP OPcache is niet correct geconfigureerd" op.

Leer hoe u de PHP OPcache-configuratiewaarschuwing van Nextcloud kunt diagnosticeren en oplossen door de actieve PHP SAPI, groottelimieten, opmerkingen en hervalidatie-instellingen te controleren.

Corrigeer migratiefouten in de Kopano-database na een MySQL-versie-upgrade.

Corrigeer migratiefouten in de Kopano-database na een MySQL-versie-upgrade.

Los problemen met Kopano-databasemigraties na een MySQL- of MariaDB-upgrade op door back-ups, serverversies, SQL-modi, tekenset, schemastatus en logbestanden te controleren.

Hoe configureer je LDAP- en Active Directory-authenticatie in Nextcloud?

Hoe configureer je LDAP- en Active Directory-authenticatie in Nextcloud?

Verbind Nextcloud met LDAP of Active Directory via beveiligd transport, gebruikers- en groepsfilters, inlogkenmerken en een geteste uitrolprocedure.

Element Android-meldingen repareren zonder Google-services: UnifiedPush-handleiding

Element Android-meldingen repareren zonder Google-services: UnifiedPush-handleiding

Los problemen met Element Android-meldingen op telefoons zonder Google op door UnifiedPush, Android-machtigingen, batterij-instellingen en betrouwbare verificatietests te configureren.

Los de Nextcloud-waarschuwing "Database mist enkele indexen" op.

Los de Nextcloud-waarschuwing "Database mist enkele indexen" op.

Verwijder de waarschuwing van Nextcloud over ontbrekende database-indexen met het officiële occ-commando. Maak eerst een back-up, bekijk de wijzigingen, voer de reparatie uit en controleer het resultaat.

Hoe configureer je Single Sign-On (SSO) met Keycloak in Element Web?

Hoe configureer je Single Sign-On (SSO) met Keycloak in Element Web?

Configureer Keycloak SSO voor Element Web door OIDC met Synapse te verbinden, de exacte callback-URL in te stellen, gebruikersclaims te koppelen en het uitloggen te testen.