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.