Accueil
» Comment faire
»
Configurer la mise en cache Redis de Nextcloud sur Ubuntu 24.04
Configurer la mise en cache Redis de Nextcloud sur Ubuntu 24.04
Nextcloud 34.0.2 intègre un backend compatible Redis KeyValueCache, permettant ainsi aux versions actuelles de Nextcloud d'utiliser Redis sans installer l'extension Redis de PHP. Sur un serveur Ubuntu 24.04 unique, utilisez APCu pour un cache local rapide et Redis pour la mise en cache distribuée et le verrouillage transactionnel des fichiers, connectés via un socket Unix. Cette configuration permet de maintenir Redis hors réseau et offre à Nextcloud un cache partagé fonctionnant avec toutes les requêtes PHP.
Choisissez d'abord le bon backend Redis
Le manuel d'administration de Nextcloud 35 mentionne deux chemins d'accès à Redis. Pour Nextcloud 34.0.2 et versions ultérieures, il est recommandé KeyValueCached'utiliser Predis, fourni avec Nextcloud ; vous installez le serveur Redis et configurez-le memcache.kvstore, mais vous n'avez pas besoin de configurer php-redis`redis`. Les versions antérieures de Nextcloud utilisent l'extension PhpRedis et un config.phpbloc `redis` différent. Vérifiez votre version avec `redis sudo -u www-data php /var/www/nextcloud/occ status--version`, en remplaçant le chemin d'accès si votre installation se trouve ailleurs.
Ce guide suppose que Nextcloud et Redis sont installés sur la même machine Ubuntu, que le serveur web est exécuté en tant que `sudo` www-dataet que vous gérez PHP et Redis directement. Si vous avez installé Nextcloud via Snap, AIO, Docker ou une autre appliance, suivez les conventions de service et de système de fichiers de ce paquet au lieu d'appliquer aveuglément les commandes au niveau de l'hôte. APCu est plus rapide que Redis pour la mise en cache locale, tandis que Redis est adapté à la mise en cache distribuée et aux verrous de fichiers. Consultez la documentation sur la mise en cache en mémoire de Nextcloud .
Installez Redis et APCu
Mettez à jour l'index des paquets d'Ubuntu, installez le serveur Redis et le module PHP APCu, puis activez Redis au démarrage :
Installez le serveur Redis et les packages APCu avant de modifier l'un ou l'autre fichier de configuration.
Sur Ubuntu 24.04, la version PHP par défaut est 8.3 et php-apcucorrespond au nom du paquet de la distribution. Redis est un service distinct ; APCu est chargé par PHP. Après l'installation d'APCu, redémarrez le gestionnaire PHP afin que le processus PHP exposé au Web charge le module. Si vous utilisez PHP-FPM, il s'agit généralement de `php-FPM- php8.3-fpm8.3` ; si Apache utilise mod_php, redémarrez `php-FPM-8.3` apache2. Vérifiez les noms de vos services actifs avant de redémarrer.
Configurer Redis en local sur le serveur
Pour cette configuration à hôte unique, utilisez un socket Unix et désactivez l'écouteur TCP de Redis. /etc/redis/redis.confModifiez les directives actives existantes au lieu de laisser plusieurs copies conflictuelles, puis configurez :
port 0
unixsocket /run/redis/redis-server.sock
unixsocketperm 770
Utilisez le même chemin de socket dans Redis et Nextcloud, et limitez l'accès au groupe Redis.
port 0Désactive le port TCP ; Redis écoute alors via le chemin du socket. Ce mode d'autorisation 770permet au propriétaire et au groupe Redis d'accéder au socket, tout en interdisant l'accès aux autres utilisateurs locaux. Ajoutez le compte du serveur web au groupe Redis :
Redémarrez le service PHP-FPM ou Apache après avoir modifié l'appartenance aux groupes, car les processus en cours d'exécution conservent leur ancienne liste de groupes. Utilisez le service qui exécute le PHP de Nextcloud. La documentation Redis recommande de limiter l'accès aux clients de confiance ; un socket local évite d'exposer un port de cache sur une interface accessible depuis Internet. Consultez les recommandations de sécurité de Redis .
Pointez Nextcloud vers le socket
Sauvegardez le fichier config/config.php, puis ajoutez ces entrées au tableau de configuration PHP existant. Ne modifiez pas le reste du fichier. Utilisez le chemin d'accès à votre installation Nextcloud.
Conservez APCu en local et configurez à la fois le backend de cache Redis et l'hôte du socket dans config.php.
La barre oblique initiale dans le chemin d'accès à l'hôte indique à KeyValueCache de Nextcloud d'utiliser un socket Unix ; aucun paramètre de port ou de protocole TCP n'est donc nécessaire. Redis fournit les deux memcache.distributedoptionsmemcache.locking ; cette dernière permet de déporter les verrous de fichiers transactionnels hors de la base de données. Conservez memcache.localAPCu pour un accès au cache local à faible latence. Les entrées et options de socket exactes sont décrites dans la documentation de Nextcloud relative à KeyValueCache et aux sockets Unix, ainsi que dans son guide sur le verrouillage transactionnel des fichiers .
Vérifiez la connexion et résolvez les problèmes d'autorisation.
Vérifiez d'abord que le service Redis est actif et que le socket répond :
sudo systemctl status redis-server
redis-cli -s /run/redis/redis-server.sock ping
Une réponse PONG confirme que Redis accepte une connexion locale via le socket configuré.
La réponse attendue à la deuxième commande est « None » PONG. Connectez-vous ensuite à Nextcloud et ouvrez la vue d'ensemble des paramètres d'administration. Vérifiez que l'avertissement relatif au cache local a disparu et consultez le journal de Nextcloud si un avertissement concernant Redis ou le cache persiste. Vous pouvez également exécuter la commande suivante sudo -u www-data php /var/www/nextcloud/occ statuspour confirmer que l'instance se charge toujours ; cette commande vérifie la disponibilité de Nextcloud, et non le cache lui-même.
Si Redis renvoie une erreur « Permission refusée » ou si Nextcloud ne parvient pas à se connecter, vérifiez que le socket existe, qu'il www-dataappartient au redisgroupe approprié et que son groupe et son mode autorisent l'accès. Redémarrez Redis et le gestionnaire PHP après avoir modifié l'appartenance au groupe. Si Redis ne parvient pas à créer le socket, vérifiez l'orthographe du chemin configuré et examinez la configuration sudo journalctl -u redis-server -n 50. Ne résolvez pas un problème de permissions de socket en exposant Redis au réseau public.
Anciennes versions de Nextcloud : utilisez plutôt PhpRedis.
Si votre version de Nextcloud est antérieure à la version 34.0.2, installez l'extension PHP Redis correspondant à la version de PHP utilisée par Nextcloud. Sur une installation standard Ubuntu 24.04 avec PHP 8.3, le paquet estphp-redis ; Ubuntu le répertorie comme l'extension PHP 8.3 Redis. Redémarrez le gestionnaire PHP actif après l'installation. Dans config.php, utilisez les classes Redis classiques et le bloc de connexion au lieu des entrées KeyValueCache mentionnées ci-dessus :
La liste des paquets Noble php-redis d'Ubuntu confirme la correspondance des paquets. Ne configurez pas les deux backends simultanément. Après avoir enregistré la configuration correspondante, répétez le test de connexion au socket et la vérification de l'interface d'administration de Nextcloud.