Résoudre le problème « Le verrouillage transactionnel des fichiers n'est pas configuré » dans Nextcloud

Si Nextcloud affiche un avertissement indiquant que le verrouillage transactionnel des fichiers n'est pas configuré ou est désactivé, les opérations sur les fichiers peuvent être moins bien protégées contre les écritures simultanées et les transferts interrompus. La solution habituelle consiste à configurer un système de stockage clé-valeur compatible, tel que Redis ou Valkey, pour le verrouillage. Commencez par identifier le mode d'installation de Nextcloud, puis configurez le service de cache et Nextcloud conjointement ; l'installation de Redis seule ne résout pas le problème.

Le manuel d'administration actuel de Nextcloud indique que le verrouillage transactionnel utilise la base de données par défaut. Bien que le système de base de données puisse fonctionner, il augmente la charge. Redis ou Valkey peuvent servir de système de verrouillage dédié. Le texte exact de l'avertissement varie selon la version de Nextcloud : la documentation actuelle mentionne : « Le verrouillage transactionnel des fichiers est désactivé, ce qui peut entraîner des problèmes de concurrence. » Un autre avertissement concernant le cache mémoire ne concerne pas le même problème. Consultez le guide officiel sur le verrouillage transactionnel des fichiers et la section de référence des avertissements de la page d'administration .

Avant de changer de serveur

Ces étapes supposent que vous administrez l'hôte Nextcloud. Les commandes ci-dessous utilisent Debian ou Ubuntu avec une installation de paquets classique ; les noms de paquets, les noms de services, les versions de PHP et les chemins de configuration varient selon les distributions Linux. Si vous utilisez Nextcloud AIO, Docker, Snap, TrueNAS ou une image fournie par votre hébergeur, suivez les instructions de déploiement pour l'installation et le redémarrage des services. L'installation de paquets PHP sur l'hôte peut ne pas modifier l'environnement PHP à l'intérieur d'un conteneur ou d'une appliance.

  • Trouvez la racine web de Nextcloud et son domaine actif config/config.php.
  • Avant de modifier ce fichier, effectuez une sauvegarde sécurisée. Il peut contenir des identifiants de base de données et d'autres informations confidentielles.
  • Vérifiez si Nextcloud utilise un seul serveur web ou plusieurs. Une configuration multi-nœuds nécessite un serveur ou un cluster Redis/Valkey partagé, accessible par chaque nœud Nextcloud.
  • Prévoyez une courte période de maintenance si vos utilisateurs dépendent de téléchargements de fichiers ininterrompus.

Étape 1 : Confirmer l’avertissement et le type d’installation

Connectez-vous en tant qu'administrateur et ouvrez les paramètres d'administration , puis consultez la vue d'ensemble ou les avertissements de sécurité et de configuration. Notez le message exact. Si la page indique seulement qu'aucun cache mémoire n'est configuré, il s'agit d'une autre vérification ; configurez un cache local tel qu'APCu si nécessaire, mais ne présumez pas qu'il assurera le verrouillage transactionnel. Nextcloud indique que les paramètres de cache doivent être explicitement activés config.php.

Sur une installation Linux classique, utilisez le shell pour identifier le chemin de déploiement et examiner le fichier de configuration sans consigner les informations confidentielles dans un journal de terminal partagé. Par exemple, depuis le serveur :

cd /var/www/nextcloud
ls -l config/config.php

Remplacez /var/www/nextcloudpar votre chemin d'accès réel. Pour les conteneurs, identifiez le conteneur et sa configuration montée au lieu de modifier un fichier côté hôte que l'instance en cours d'exécution n'utilise pas.

Étape 2 : Installer et démarrer un magasin clé-valeur

Pour Debian ou Ubuntu, le backend Redis traditionnel utilise généralement le service Redis et l'extension PHP Redis. Installez les paquets correspondant à la version de PHP utilisée par le serveur web :

sudo apt update
sudo apt install redis-server php-redis
sudo systemctl enable --now redis-server
sudo systemctl status redis-server

Le message d'état doit indiquer que le service est actif. Vérifiez que l'environnement d'exécution PHP de Nextcloud peut charger l'extension Redis. Sur une installation standard, php -m | grep -i redisune vérification rapide en ligne de commande suffit, mais PHP en ligne de commande et PHP web peuvent utiliser des versions ou des fichiers de configuration différents. Si le module est absent de l'environnement d'exécution web, installez ou activez le paquet correspondant et redémarrez PHP-FPM ou le serveur web.

Nextcloud 34.0.2 et versions ultérieures intègrent un KeyValueCachebackend pour les bases de données compatibles Redis. L'extension PHP Redis n'est pas requise. Cette solution s'avère utile lorsqu'un environnement d'hébergement ne permet pas l'installation de modules PHP, mais nécessite néanmoins un service Redis ou Valkey en cours d'exécution. Le guide de mise en cache en mémoire de Nextcloud décrit les deux approches. Choisissez une configuration de backend ci-dessous plutôt que d'en ajouter deux.

Étape 3 : Configurer le verrouillage dans Nextcloud

Modifiez le tableau actif config/config.phpet ajoutez-y les entrées sélectionnées $CONFIG. Respectez la syntaxe PHP et les virgules. Ne créez pas de second tableau de configuration ni de clés dupliquées. Conservez les paramètres de cache existants, sauf si vous comprenez la raison de leur modification.

Option A : Redis avec l'extension PHP Redis

Utilisez cette option lorsque l' phpredisextension compatible est installée sur l'environnement d'exécution PHP Web. Un serveur Redis local écoutant sur le port 6379 peut utiliser une configuration comme celle-ci :

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

Si Redis requiert une authentification, configurez le mot de passe approprié config.phpet sécurisez les permissions du fichier. Ne rendez pas Redis accessible publiquement. Limitez-le à l'hôte local ou à un réseau privé protégé, et utilisez un socket Unix lorsque cela est nécessaire.

Option B : KeyValueCache avec Redis ou Valkey

Utilisez cette option si votre version de Nextcloud prend en charge le fournisseur intégré et que vous préférez ne pas installer d'extension PHP Redis. Voici un exemple minimal pour un service local écoutant sur le port 6379 :

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

Ajoutez les paramètres d'authentification, TLS, de socket, de Sentinel ou de cluster documentés si votre service les utilise. Ne copiez pas les identifiants d'un exemple. Pour connaître les paramètres détaillés et les topologies prises en charge, consultez la documentation officielle de configuration du cache .

Étape 4 : Vérifier la connectivité et les paramètres multi-serveurs

Nextcloud doit pouvoir accéder au serveur de cache configuré en utilisant le même hôte, le même port, le même socket et les mêmes identifiants que le service. Une erreur fréquente consiste à configurer localhostchaque nœud web Nextcloud alors que Redis s'exécute sur un seul hôte distinct. Dans un déploiement multi-serveurs, configurez tous les nœuds web pour utiliser le même serveur ou cluster Redis. Limitez l'accès réseau aux nœuds Nextcloud et protégez Redis à l'aide d'une authentification appropriée et de règles de pare-feu.

Pour un socket Unix, vérifiez que le compte PHP/serveur web dispose des droits de lecture et d'écriture. Les modifications de permissions ou de groupes varient selon le système d'exploitation ; suivez donc la documentation Redis/Valkey et celle de votre distribution plutôt que d'appliquer des permissions trop générales, comme un accès en écriture à tous. Un refus de connexion, une erreur d'authentification ou une erreur de permission du socket peut empêcher Nextcloud d'utiliser le fournisseur de verrouillage, même si la clé de configuration est présente.

Étape 5 : Redémarrez les services appropriés

Après avoir enregistré la configuration, redémarrez le service Redis si ses paramètres ont été modifiés, puis redémarrez l'environnement d'exécution PHP qui héberge Nextcloud. Par exemple, une installation Apache peut nécessiter un redémarrage d'Apache, tandis qu'une installation PHP-FPM requiert le redémarrage du service PHP-FPM correspondant. Sur certaines distributions, le nom des services inclut le numéro de version de PHP. Avec les conteneurs, recréez ou redémarrez le service concerné en suivant la méthode recommandée par votre déploiement. Évitez de redémarrer sans précaution des services non liés sur un serveur de production.

Si Nextcloud renvoie une erreur de configuration ou de syntaxe, restaurez la sauvegarde et vérifiez l'absence de virgule manquante, de guillemets mal placés, de clés dupliquées ou de modifications incorrectes config.php. Les paramètres de tableau PHP doivent rester dans la structure de configuration existante.

Étape 6 : Vérifier la configuration et tester les opérations sur les fichiers

Actualisez la vue d'ensemble de l'administrateur et vérifiez si l'avertissement relatif au verrouillage transactionnel des fichiers a disparu. Si vous avez configuré un cache local et que l'avertissement concernant le cache en mémoire persiste, examinez ce point séparément. Nextcloud recommande APCu pour la mise en cache locale sur de nombreux déploiements mono-serveur, tandis que Redis gère le verrouillage et la mise en cache distribuée. N'utilisez pas Redis comme cache local par défaut, en particulier dans une configuration multi-serveurs.

Vous pouvez également examiner le paramètre de verrouillage effectif à l'aide de l'outil en ligne de commande de Nextcloud. Exécutez-le occdepuis le répertoire Nextcloud avec le compte du serveur web ; sous Debian/Ubuntu, ce compte est généralementwww-data :

sudo -u www-data php occ config:system:get memcache.locking

La valeur doit correspondre au backend que vous avez choisi, par exemple \OC\Memcache\Redisou \OC\Memcache\KeyValueCache. Si la commande ne trouve pas le paramètre, vérifiez le chemin d'accès, l'utilisateur d'exécution et le fichier de configuration actif. Le guide officiel d'OCC explique comment exécuter les commandes d'administration.

Enfin, téléchargez un petit fichier de test, renommez-le, puis vérifiez qu'un client de bureau ou mobile peut synchroniser la modification. Ces vérifications ne simulent pas toutes les charges de travail simultanées, mais elles confirment que les opérations sur les fichiers fonctionnent toujours correctement après la modification. Pour un serveur sollicité ou en cluster, surveillez les journaux Nextcloud et la disponibilité de Redis/Valkey en utilisation normale. Si l'avertissement persiste, vérifiez que l'environnement d'exécution PHP web possède bien l'extension requise lors de l'utilisation de l'option A, que le serveur de cache est accessible, que les identifiants et les permissions de socket sont corrects et que tous les nœuds partagent le même backend.

Ce que fait (et ne fait pas) le verrouillage des fichiers transactionnels

Le verrouillage transactionnel contribue à prévenir la corruption de fichiers en cas d'opérations simultanées, gère les transactions interrompues et coordonne les modifications impliquant des fichiers partagés et un stockage externe. Il ne réserve pas un document pour qu'une seule personne puisse le modifier, n'affiche pas les autres personnes qui le modifient et ne fusionne pas les modifications simultanées. Considérez cet avertissement comme un problème de configuration du serveur, puis testez les chargements et la synchronisation normaux une fois le serveur configuré. Pour une collaboration efficace, utilisez une application dédiée à la co-édition plutôt que de vous fier au verrouillage de fichiers.

Laisser un commentaire

Les 10 meilleurs outils de balayage ping pour trouver les appareils sur votre réseau

Les 10 meilleurs outils de balayage ping pour trouver les appareils sur votre réseau

Comparez 10 outils de balayage ping pour une découverte rapide du réseau local, une analyse multiplateforme et la gestion des adresses IP. Découvrez ce qu'un balayage peut – et ne peut pas – vous révéler.

6 outils de gestion de réseau performants pour le suivi des performances

6 outils de gestion de réseau performants pour le suivi des performances

Comparez six outils de gestion de réseau pour la surveillance des performances, notamment la couverture SNMP, la cartographie, les alertes, les modèles de déploiement et les compromis en matière de coûts.

Moniteur de ping : 7 outils gratuits et open source pour la disponibilité du réseau

Moniteur de ping : 7 outils gratuits et open source pour la disponibilité du réseau

Comparez sept moniteurs de ping gratuits et open source, allant des suites réseau complètes aux sondes de latence ciblées, et choisissez celui qui convient le mieux à vos besoins en matière de disponibilité, de perte de paquets et d'historique.

Meilleurs analyseurs Wi-Fi pour Windows, iOS et Android

Meilleurs analyseurs Wi-Fi pour Windows, iOS et Android

Comparez les meilleurs analyseurs Wi-Fi pour Windows, iPhone et Android, incluant des outils pour la congestion des canaux, la couverture du signal, les cartes thermiques et le dépannage réseau.

La qualité de service (QoS) dans les réseaux : définition et fonctionnement

La qualité de service (QoS) dans les réseaux : définition et fonctionnement

Découvrez ce que signifie la QoS dans le domaine des réseaux, comment les marquages ​​DSCP et les files d'attente de trafic priorisent la voix, la vidéo et les applications professionnelles, et ce que la QoS ne peut pas corriger.

Meilleur logiciel serveur SFTP pour les transferts de fichiers sécurisés

Meilleur logiciel serveur SFTP pour les transferts de fichiers sécurisés

Comparez les logiciels serveurs SFTP fiables pour Windows et Linux, notamment OpenSSH, Bitvise, SolarWinds et SFTPGo. Trouvez la solution idéale pour vos besoins en matière de sécurité et de transfert de fichiers.

Les 7 meilleurs outils de gestion d'adresses IP pour les équipes réseau

Les 7 meilleurs outils de gestion d'adresses IP pour les équipes réseau

Comparez sept outils de gestion d'adresses IP pour la découverte de sous-réseaux, la coordination DNS et DHCP, l'inventaire réseau et l'IPAM open source.

Bonnes pratiques de surveillance réseau : que surveiller et quels outils utiliser

Bonnes pratiques de surveillance réseau : que surveiller et quels outils utiliser

Mettez en place une surveillance réseau pratique avec une couverture claire des périphériques, des indicateurs de performance utiles, des alertes exploitables et une comparaison de SolarWinds NPM, PRTG et OpManager.

Les 10 meilleurs outils d'analyse réseau pour la découverte des périphériques et des adresses IP

Les 10 meilleurs outils d'analyse réseau pour la découverte des périphériques et des adresses IP

Comparez les outils d'analyse réseau pour la découverte rapide des périphériques, les analyses IP multiplateformes et la gestion des identités et des accès IP (IPAM) d'entreprise, avec des conseils pour adapter chaque option à votre réseau.

Comment utiliser Nmap pour traceroute et lire le chemin réseau

Comment utiliser Nmap pour traceroute et lire le chemin réseau

Utilisez l'option --traceroute de Nmap pour associer les sauts à un hôte autorisé, comprendre les résultats des sauts et du RTT, et résoudre les problèmes de réponses manquantes sans sur-analyse.