Éliminer l'avertissement de verrouillage de fichiers de Nextcloud avec Redis

Pour supprimer l'avertissement de verrouillage transactionnel de fichiers de Nextcloud, assurez-vous d'abord que le verrouillage est activé, puis configurez un système de stockage persistant compatible avec Redis, tel que Redis ou Valkey. Sur une petite instance, Nextcloud peut utiliser par défaut son système de verrouillage de base de données ; pour un serveur de production ou une charge de travail partagée, le verrouillage via Redis est généralement privilégié car il réduit le trafic de verrouillage vers la base de données. N'attribuez pas de verrous de fichiers à Memcached : Nextcloud avertit que les valeurs mises en cache peuvent disparaître de manière inattendue.

Choisissez le système de verrouillage qui convient à votre serveur.

Le verrouillage transactionnel des fichiers protège les opérations sur les fichiers contre les écritures conflictuelles et peut libérer les verrous lorsqu'un chargement ou une autre transaction est interrompu. Il contribue à prévenir la corruption des données lors d'une utilisation normale, notamment lors de l'utilisation de fichiers partagés et de stockage externe. Il n'empêche pas deux personnes de modifier simultanément le même document et ne fournit pas d'indicateurs de présence ; il contrôle les enregistrements simultanés. Consultez la documentation sur le verrouillage transactionnel des fichiers de Nextcloud 35 .

  • Côté base de données : Nextcloud utilise le verrouillage de la base de données par défaut. Cela évite d’ajouter un service supplémentaire et peut suffire pour une petite installation personnelle, mais le verrouillage de la base de données augmente la charge. Si vous supprimez simplement un avertissement sur un serveur peu utilisé, vérifiez d’abord que le verrouillage n’a pas été explicitement désactivé.
  • Redis avec phpredis : une solution idéale pour les déploiements mono-serveur et clusterisés existants. Elle nécessite un serveur compatible Redis, l’extension PHP Redis et une configuration de connexion correspondante dans Nextcloud.
  • KeyValueCache avec Redis ou Valkey : disponible à partir de Nextcloud 34.0.2. Ce service utilise la bibliothèque intégrée de Nextcloud et ne nécessite donc pas d’extension PHP Redis. Ceci est utile lorsque l’extension n’est pas disponible, même si Nextcloud précise qu’un serveur clé-valeur distant peut engendrer une surcharge réseau.
  • Memcached : Il peut servir à la mise en cache distribuée, mais il n’est pas adapté aux verrous de fichiers transactionnels car les valeurs du cache peuvent être supprimées. Évitez de l’utiliser dans memcache.locking…

Pour un petit serveur domestique, le verrouillage de la base de données peut suffire en l'absence d'avertissement de verrouillage et de forte sollicitation de la base. Privilégiez Redis ou Valkey pour les instances fortement sollicitées, les serveurs d'applications multiples ou lorsque vous souhaitez que les verrous de fichiers soient gérés en dehors de la base de données. Les recommandations actuelles de Nextcloud 35 concernant la mise en cache en mémoire préconisent l'utilisation d'APCu pour le cache local et de Redis pour le verrouillage dans les déploiements mono-serveur courants. Les nœuds web en cluster doivent tous utiliser le même point de terminaison ou cluster Redis ou Valkey.

Vérifiez si le verrouillage a été désactivé.

Trouvez le fichier de configuration Nextcloud actif, généralement config/config.phpsitué dans le répertoire d'installation de Nextcloud. Sauvegardez-le avant toute modification. Recherchez les lignes `locking` filelocking.enabledet ` memcache.lockinglocking`. La documentation de configuration active le verrouillage par défaut ; si vous trouvez la valeur `false`, remplacez-la par `true` ou supprimez cette modification.

'filelocking.enabled' => true,

N'ajoutez pas de deuxième copie d'une clé existante. Les tableaux de configuration PHP doivent contenir une seule valeur effective pour chaque paramètre. Si vous utilisez un conteneur ou un panneau d'hébergement géré, effectuez les modifications via son mécanisme de configuration dédié afin qu'elles soient conservées après les mises à jour ou les redéploiements. La documentation d'administration de Nextcloud 35 identifie l'avertissement de verrouillage et renvoie aux exigences du backend.

Configurer le verrouillage Redis sur un seul serveur

Sous Debian ou Ubuntu, les noms de paquets ressemblent généralement redis-serverà ceciphp-redis : `php-fpm` et `php-fpm`. Utilisez les paquets de votre distribution et assurez-vous que le module PHP corresponde à la version de PHP utilisée par le serveur web. Si vous utilisez le backend Redis classique, installez et démarrez le service Redis et vérifiez que l'extension PHP Redis est activée pour l'API web. Un module PHP uniquement accessible en ligne de commande ne garantit pas que PHP-FPM ou Apache puissent le charger.

Ajoutez les informations de connexion et le système de verrouillage au config.phptableau existant. Cet exemple suppose que Redis est exécuté sur la même machine, qu'il écoute sur le port 6379 de localhost et qu'il est accessible au processus PHP de Nextcloud.

'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
    'host' => 'localhost',
    'port' => 6379,
    'timeout' => 0.0,
],

Configurez les informations d'authentification si votre serveur Redis l'exige. Évitez d'exposer Redis à Internet ; limitez son accès à l'hôte ou au réseau privé et configurez les règles d'authentification et de pare-feu. Pour un socket Unix, utilisez le chemin du socket comme hôte Redis et le port 0, et assurez-vous que l'utilisateur du serveur web puisse accéder à ce socket. Ne copiez pas les paramètres localhost dans un déploiement multi-serveurs, sauf si Redis est réellement local et partagé de manière cohérente ; tous les nœuds de l'application Nextcloud doivent accéder au même serveur.

Lorsque l'extension PHP Redis est indisponible

Sur Nextcloud 34.0.2 ou version ultérieure, KeyValueCache peut se connecter à Redis ou Valkey sans extension PHP supplémentaire. Configurez le backend et le magasin de clés-valeurs comme suit, en remplaçant l'hôte et les identifiants par ceux de votre environnement :

'memcache.locking' => '\OC\Memcache\KeyValueCache',
'memcache.kvstore' => [
    'server' => [
        'host' => 'localhost',
        'port' => 6379,
    ],
],

Ne configurez pas Redis et KeyValueCache comme fournisseurs de verrouillage concurrents. Suivez la documentation Nextcloud concernant les identifiants, TLS, les sockets, Sentinel et la topologie du cluster plutôt que d'adapter un exemple mono-serveur par tâtonnement.

Redémarrez et vérifiez la correction.

Redémarrez le service compatible Redis si vous avez modifié sa configuration, puis redémarrez le serveur web ou le processus PHP-FPM si vous avez installé ou activé une extension PHP. Vérifiez l'état du service en utilisant son nom spécifique à votre distribution ; par exemple, systemctl status redis-serversur de nombreux systèmes Debian ou Ubuntu. Assurez-vous que le service est actif et que le processus PHP peut s'y connecter. Les déploiements conteneurisés doivent utiliser le nom du service Redis sur le réseau du conteneur, et non « localhost », sauf si les deux services partagent le même espace de noms réseau.

Connectez-vous à Nextcloud en tant qu'administrateur et actualisez la vue d'ensemble de l'administration. L'avertissement relatif au verrouillage transactionnel des fichiers devrait disparaître une fois le serveur configuré disponible et le paramètre chargé. Téléversez, téléchargez et synchronisez un fichier de test, puis consultez les journaux Nextcloud et PHP pour vérifier si une erreur de connexion ou d'autorisation Redis apparaît. Si l'avertissement persiste, cela indique généralement une faute de frappe, une clé de configuration dupliquée, une extension PHP/SAPI incorrecte, une connexion réseau bloquée, des autorisations de socket incorrectes ou un serveur inaccessible. Corrigez la cause du problème plutôt que de désactiver le verrouillage.

Pour les options spécifiques au déploiement, consultez les références officielles versionnées avant de modifier la topologie : verrouillage transactionnel des fichiers , mise en cache de la mémoire et configuration Redis/Valkey , et paramètres de configuration .

Laisser un commentaire

Éliminer l'avertissement de verrouillage de fichiers de Nextcloud avec Redis

Activez le verrouillage fiable des fichiers Nextcloud, choisissez le bon backend Redis ou Valkey et vérifiez que l'avertissement disparaît sans risque de modifications simultanées des fichiers.

Comment obtenir la note A+ en matière de sécurité pour Nextcloud ?

Comment obtenir la note A+ en matière de sécurité pour Nextcloud ?

Corrigez les problèmes courants d'analyse de Nextcloud grâce aux mises à jour actuelles, HTTPS et HSTS, à une confiance précise du proxy inverse et à des vérifications auprès du serveur public.

Activez le chiffrement côté serveur Nextcloud avec Measured Impact

Configurez Nextcloud SSE pour le stockage qui en a besoin, protégez les clés de chiffrement et mesurez l'impact sur les transferts et le processeur avant de chiffrer les fichiers existants.

Ajouter la recherche plein texte Elasticsearch à Nextcloud

Connectez la recherche de fichiers de Nextcloud à Elasticsearch, indexez le contenu des documents et choisissez une configuration adaptée à votre serveur et à vos besoins de sécurité.

Définir une politique d'expiration fiable pour les fichiers supprimés de Nextcloud

Définir une politique d'expiration fiable pour les fichiers supprimés de Nextcloud

Configurez Nextcloud pour supprimer les fichiers supprimés après une période de rétention définie, planifiez les tâches en arrière-plan de manière fiable et évitez les commandes qui vident la corbeille de tous les utilisateurs.

Effacer l'avertissement concernant les index de base de données manquants de Nextcloud

Effacer l'avertissement concernant les index de base de données manquants de Nextcloud

Exécutez la réparation OCC de Nextcloud en toute sécurité, prévisualisez les modifications de la base de données et vérifiez pourquoi l'avertissement peut persister.

Augmenter la limite de chargement web de Nextcloud au-delà de 2 Go

Augmenter la limite de chargement web de Nextcloud au-delà de 2 Go

Autorisez les chargements de fichiers plus volumineux via le navigateur Nextcloud en alignant les paramètres PHP, Nginx ou Apache, le stockage temporaire et les délais d'expiration, et vérifiez quelle limite bloque le fichier.

Effacer l'avertissement de mémoire PHP de Nextcloud sur le serveur web

Définissez la limite de mémoire PHP réellement utilisée par Nextcloud, redémarrez le service concerné et confirmez le paramètre de 512 Mo dans la vue d'ensemble de l'administration.

Connectez un compartiment compatible S3 au stockage externe Nextcloud

Montez un compartiment de stockage d'objets compatible dans Nextcloud en utilisant son backend S3, avec le point de terminaison, les informations d'identification, le périmètre d'accès et les étapes de vérification appropriés.

Transférez vos données Nextcloud vers un disque externe sans interruption de stockage.

Transférez vos données Nextcloud vers un disque externe sans interruption de stockage.

Déplacez en toute sécurité un répertoire de données Nextcloud Linux vers un disque externe en utilisant un montage UUID persistant, le mode maintenance, une copie vérifiée et le lien symbolique du chemin d'origine.