Corriger les avertissements de sécurité et de configuration de Nextcloud – Guide pour Apache2, Nginx et OCC

Quiconque exécute Nextcloud sur son propre serveur trouvera régulièrement divers avertissements de sécurité et de configuration dans les paramètres d’administration. Ceux-ci apparaissent par exemple après une mise à jour, une modification de la configuration du serveur ou lorsque de nouvelles fonctions ont été ajoutées.

Tous les avertissements ne signifient pas automatiquement que Nextcloud est dangereux ou ne fonctionne pas correctement. Il s’agit souvent d’entrées de configuration manquantes, d’index de base de données supplémentaires, de migrations incomplètes ou de problèmes avec le serveur Web. Néanmoins, vous ne devez pas ignorer définitivement les messages, car certains d’entre eux peuvent affecter la sécurité, les performances ou la fiabilité de votre installation Nextcloud.

Dans mon cas, j’exécute Nextcloud sur un serveur Ubuntu dans un conteneur Proxmox LXC. Apache2, PHP et les autres composants requis sont installés directement sous Ubuntu. Pour l’accès via Internet, j’utilise également le Nginx Proxy Manager comme proxy inverse.

Après la mise à jour vers Nextcloud 34.0.5, j’ai commencé à voir divers avertissements de sécurité et de configuration. Ceux-ci incluent des index de base de données manquants, des migrations de type MIME, des problèmes avec les URL .well-known et un temps de maintenance non configuré.

Dans ce guide, je vais vous montrer comment corriger ces avertissements Nextcloud, quelles commandes OCC sont nécessaires et ce à quoi vous devez prêter une attention particulière lors de l’installation derrière un proxy inverse.

Configuration requise et environnement serveur utilisé

Les étapes suivantes s’appliquent à une instance Nextcloud installée manuellement sur Ubuntu.

A titre d’exemple, j’utilise la configuration de serveur suivante :

composantEnvironnement utilisé
VirtualisationProxmox VE
récipientUbuntu LXC
Logiciel cloudNextcloud 34.0.5, mis à niveau vers 35.0.2
Serveur WebApache2
PHPPHP8.4
base de donnéesMariaDB ou MySQL
Proxy inverseGestionnaire de proxy Nginx
HTTPSVia le proxy inverse
Répertoire Nextcloud/var/www/html
Utilisateur du serveur Webwww-data

La plupart des commandes fonctionnent également sur Debian ou sur un serveur Ubuntu installé directement sur un PC ou une machine virtuelle.

Pour les installations Docker, les packages Nextcloud AIO ou Snap, les répertoires et les commandes requises peuvent différer.

Il est également important que la version PHP utilisée et la base de données répondent à la configuration système requise de la version Nextcloud installée.

Où puis-je trouver les avertissements de sécurité et de configuration dans Nextcloud ?

Les messages sont consultables directement dans l’interface web de Nextcloud.

Pour ce faire, connectez-vous avec un compte administrateur et ouvrez les paramètres administratifs via le menu du profil.

Accédez ensuite à l’élément de menu Aperçu.

Nextcloud y effectue diverses vérifications automatiques. Entre autres choses, la base de données, le serveur Web, les paramètres de sécurité, les tâches en arrière-plan et certaines fonctions des applications installées sont vérifiés.

Nextcloud fait la différence entre les avertissements et les avis.

Les symboles d’avertissement jaunes indiquent des problèmes de configuration qui doivent être vérifiés ou corrigés. Les icônes d’information bleues, en revanche, indiquent souvent des paramètres recommandés ou facultatifs.

Les messages typiques sont :

Message d’erreurCauséSolution
Erreur dans le protocoleErreurs causées par les applications, PHP, la base de données ou les tâches en arrière-planExaminer les journaux
Début de la fenêtre de maintenancePas d’heure de début pour les tâches de maintenanceConfigurer les fenêtres de maintenance
Migrations de type MIME disponiblesMigrations de types de fichiers supplémentaires requisesExécuter la commande de réparation
Résolution du fournisseur OCSLe serveur Web ne traite pas correctement /ocm-provider/Vérifier la configuration d’Apache
URL .well-knownRedirections manquantes ou incorrectesConfigurer Apache ou un proxy inverse
Index de base de données manquantsLes nouveaux index n’ont pas été créés automatiquementAjouter des index
Remplacer l’URL CLIAdresse publique Nextcloud non stockéeDéfinir overwrite.cli.url
Démon de déploiement AppAPIAucun démon de déploiement configuréConfigurer ou désactiver AppAPI
Configuration à deux facteurs2FA non obligatoireActiver éventuellement
Région téléphonique par défautPas de code pays standardDéfinir la région du téléphone
ID du serveur de configurationAucun ID de serveur fixe disponibleDéfinir éventuellement l’ID du serveur

Les sections suivantes expliquent chaque problème et montrent comment le résoudre.

Préparatifs – Gérer Nextcloud via SSH

Pour de nombreuses tâches de maintenance, vous devez accéder au terminal du serveur Nextcloud.

Lors de l’installation dans un conteneur Proxmox LXC, vous pouvez ouvrir la console directement via l’interface Web Proxmox. Alternativement, vous pouvez vous connecter au serveur Ubuntu via SSH.

Après vous être connecté, accédez au répertoire d’installation de Nextcloud :

cd /var/www/html

Vous pouvez ensuite vérifier si Nextcloud est correctement installé à l’aide de la commande suivante :

sudo -u www-data php occ status

Par exemple, la sortie contient :

installed: true
version: 34.0.5.1
versionstring: 34.0.5
maintenance: false
needsDbUpgrade: false

Ici, vous pouvez voir la version Nextcloud actuellement installée et si le système est en mode maintenance.

L’entrée needsDbUpgrade: false signifie que les fichiers du programme installé ne sont plus en attente de mise à niveau de la base de données.

Qu’est-ce que l’OCC chez Nextcloud ?

OCC signifie l’outil de ligne de commande de Nextcloud et est basé sur PHP.

De nombreuses tâches administratives peuvent être effectuées sans avoir à ouvrir l’interface web.

Ceux-ci incluent, par exemple :

  • Mises à jour Nextcloud et migrations de bases de données
  • Travaux de réparation et d’entretien
  • Gestion des utilisateurs et des applications
  • Configuration des paramètres système
  • Ajouter les index de base de données manquants
  • Gestion des fichiers et des versions de fichiers
  • Vérification du mode maintenance

Les commandes OCC doivent normalement être exécutées avec l’utilisateur du serveur Web www-data sur Ubuntu.

Si vous le démarrez en tant que root à la place, vous risquez de définir de manière incorrecte les autorisations de fichiers.

Si un message d’erreur concernant APCu apparaît lors de l’exécution, vous pouvez demander à PHP d’activer le cache via la ligne de commande :

sudo -u www-data php -d apc.enable_cli=1 occ status

Pour les exemples restants, j’utilise la notation la plus courte. Si APCu pose des problèmes avec des commandes OCC individuelles, le même paramètre peut être ajouté.

Faites une sauvegarde au préalable

Avant une mise à jour majeure de Nextcloud ou une réparation de base de données, vous devez absolument créer une sauvegarde complète.

Celui-ci doit contenir au moins les éléments suivants :

ingrédientSignification
Fichiers du programme NextcloudFichiers de la version Nextcloud installée
config.phpParamètres du serveur et connexion à la base de données
Répertoire de données NextcloudFichiers téléchargés et données utilisateur
base de donnéesUtilisateurs, métadonnées de fichiers, partages et applications
Configuration du serveur WebConfiguration d’Apache et, si nécessaire, de PHP

Toute personne utilisant Proxmox peut également créer un instantané ou une sauvegarde complète du conteneur.

Il convient de noter qu’un instantané d’un conteneur en cours d’exécution ne garantit pas nécessairement une sauvegarde cohérente de la base de données. Pour une récupération fiable, nous recommandons une sauvegarde coordonnée de la base de données et des fichiers associés.

Idéalement, une sauvegarde devrait également être restaurée régulièrement à des fins de test.

Avertissement Nextcloud : Définir le début de la fenêtre de maintenance

Un avertissement courant qui apparaît est lié à la fenêtre de maintenance non configurée.

Nextcloud exécute régulièrement diverses tâches en arrière-plan. Cela comprend, entre autres, le nettoyage des anciennes données, les audits et autres tâches administratives.

Certaines de ces tâches peuvent exercer une plus grande pression sur la base de données ou le serveur.

Une fenêtre de maintenance peut être configurée pour garantir que ces travaux sont effectués en dehors des heures d’utilisation normales.

Configurer les fenêtres de maintenance via OCC

La commande suivante définit la fenêtre de maintenance sur 02h00 UTC :

sudo -u www-data php occ config:system:set maintenance_window_start --type=integer --value=2

Nextcloud utilise généralement le fuseau horaire UTC pour cela.

En Allemagne, cela se traduit par les horaires suivants :

Fuseau horaireFenêtre de maintenance
UTC02h00 à 06h00
Heure d’hiver en Allemagne3h00 à 7h00
Heure d’été en Allemagne4h00 à 8h00

La valeur réglée décrit l’heure de début d’une fenêtre horaire de quatre heures.

Toutefois, cela ne limite pas toutes les tâches en arrière-plan à cette période. L’ajustement concerne principalement les tâches quotidiennes moins critiques en termes de temps.

Les tâches cron normales et urgentes peuvent continuer à s’exécuter en dehors de cette fenêtre horaire.

De plus, ce paramètre ne fonctionne que si Nextcloud utilise le mode d’arrière-plan Cron.

Vérifier la fenêtre de maintenance

Vous pouvez à tout moment consulter la valeur définie :

sudo -u www-data php occ config:system:get maintenance_window_start

Avec la configuration décrite ci-dessus, la sortie doit être 2.

Migrations de type Nextcloud MIME disponibles – correction de bugs

Après une mise à jour Nextcloud, le message apparaît occasionnellement indiquant qu’une ou plusieurs migrations de type MIME sont disponibles.

Les types MIME décrivent le contenu ou le format d’un fichier.

Des exemples en sont :

Type de fichierType MIME
Image JPEGimage/jpeg
Image PNGimage/png
Document PDFapplication/pdf
Vidéo MP4video/mp4
Archives ZIPapplication/zip

Nextcloud utilise ces informations pour, entre autres, reconnaître les fichiers, afficher les vignettes appropriées et les associer aux applications.

Les mises à jour peuvent ajouter de nouveaux types MIME ou des ajustements aux mappages existants.

Étant donné que la migration peut prendre plus de temps pour les installations contenant de nombreux fichiers, Nextcloud ne l’effectue pas toujours automatiquement.

Effectuer des migrations de type MIME

Pour exécuter les migrations disponibles, utilisez la commande OCC suivante :

sudo -u www-data php occ maintenance:repair --include-expensive

Le paramètre --include-expensive garantit que les travaux de réparation plus longs sont également pris en compte.

Selon la taille de l’installation Nextcloud, le processus peut prendre un certain temps.

Pour les grandes installations, vous devez donc si possible exécuter la commande en dehors des heures de pointe d’utilisation.

Plusieurs étapes sont affichées lors de la réparation, telles que la vérification des métadonnées, le nettoyage des anciennes entrées ou la préparation des tâches en arrière-plan.

Il est important de laisser le processus se dérouler complètement et de ne pas l’arrêter prématurément.

Nextcloud : Ajouter les index de base de données manquants

Un autre avertissement courant est le suivant :

Les indices sont absents de la base de données

Les index de bases de données permettent de trouver plus rapidement des enregistrements spécifiques.

Ceci est comparable à la table des matières d’un livre. Au lieu de devoir parcourir toutes les pages, la base de données peut accéder beaucoup plus rapidement à des informations spécifiques à l’aide d’un index approprié.

Pour les installations Nextcloud plus volumineuses avec de nombreux fichiers, utilisateurs ou applications, les index manquants peuvent avoir un impact négatif sur les performances.

Après une mise à jour ou l’installation de nouvelles applications, des index supplémentaires peuvent être nécessaires.

Par exemple, dans mon cas, Nextcloud a signalé l’index manquant taskp_tasks_scheduled dans la table taskprocessing_tasks.

Créer automatiquement les index de base de données manquants

Nextcloud a sa propre commande OCC pour cela :

sudo -u www-data php occ db:add-missing-indices

Cela vérifie les index existants et ajoute les entrées manquantes si elles sont reconnues par Nextcloud.

Par exemple, le résultat pourrait ressembler à ceci :

Adding additional taskp_tasks_scheduled index
to the oc_taskprocessing_tasks table,
this can take some time...

oc_taskprocessing_tasks table updated successfully.

L’index manquant a maintenant été créé avec succès.

Le processus peut prendre un certain temps pour les tables plus volumineuses et peut temporairement mettre à rude épreuve la base de données.

Par conséquent, si possible, la création d’index ne doit pas être effectuée pendant les périodes de charge élevée du serveur.

L’édition manuelle de la base de données à l’aide de phpMyAdmin ou de commandes SQL directes n’est généralement pas nécessaire pour cet avertissement standard.

Nextcloud : Réparer la résolution du fournisseur OCS et le fournisseur OCM

Sur certaines installations Nextcloud, le message suivant apparaît :

Résolution du fournisseur OCS

La description indique que le serveur Web n’est pas correctement configuré pour appeler /ocm-provider/.

Le fournisseur OCM fait partie du protocole Open Cloud Mesh et est utilisé, entre autres, pour la collaboration et le partage de ressources entre différents systèmes cloud.

Le nom de l’avertissement et le chemin d’URL réel affecté peuvent prêter à confusion. Ce qui est crucial ici, c’est le chemin spécifié par Nextcloud /ocm-provider/.

Souvent, la cause n’est pas Nextcloud elle-même, mais plutôt une configuration de réécriture incorrecte ou obsolète du serveur Web.

Vérifiez le module de réécriture Apache2

Depuis que j’utilise Apache2, je vérifie d’abord si le module de réécriture requis est activé.

apache2ctl -M | grep rewrite

Si aucune sortie n’apparaît, le module peut être activé :

sudo a2enmod rewrite

De plus, les modules headers et env peuvent être vérifiés ou activés :

sudo a2enmod headers
sudo a2enmod env

Vérifiez ensuite la configuration d’Apache :

sudo apache2ctl configtest

Si aucune erreur ne s’affiche, Apache2 peut être rechargé :

sudo systemctl reload apache2

Vérifiez Apache2 AllowOverride

Pour qu’Apache2 puisse traiter les règles de réécriture du fichier .htaccess de Nextcloud, la configuration du répertoire correspondant doit le permettre.

Le paramètre se trouve dans la configuration principale d’Apache ou dans le fichier VirtualHost, selon l’installation.

Sur Ubuntu, vous pouvez d’abord afficher les VirtualHosts actifs :

apache2ctl -S

Les fichiers de configuration typiques se trouvent à l’adresse :

/etc/apache2/apache2.conf
/etc/apache2/sites-available/

Pour une installation Nextcloud directement dans /var/www/html, la configuration du répertoire peut ressembler à ceci :

<Directory /var/www/html>
    AllowOverride All
    Require all granted
</Directory>

Il est important d’effectuer ce paramétrage dans le VirtualHost réellement utilisé ou dans le bloc de répertoire correspondant.

Testez ensuite à nouveau la configuration et rechargez Apache2.

Mettre à jour Nextcloud .htaccess

Nextcloud utilise son propre fichier .htaccess avec différentes règles de réécriture et paramètres de sécurité.

Celui-ci peut être régénéré ou mis à jour via OCC après certaines modifications de configuration.

Si Nextcloud est accessible directement sous le domaine et non dans un sous-répertoire comme /nextcloud, vous pouvez définir la base de réécriture comme suit :

sudo -u www-data php occ config:system:set htaccess.RewriteBase --value="/"

Mettez ensuite à jour le .htaccess :

sudo -u www-data php occ maintenance:update:htaccess

Avant d’apporter des modifications au fichier, il est recommandé de sauvegarder une configuration individuelle existante.

Important : Ne copiez pas simplement des fichiers ou des répertoires d’anciennes versions de Nextcloud. Surtout avec le fournisseur OCM, les fichiers requis et les règles de réécriture peuvent différer selon les versions.

Si l’avertissement continue d’apparaître, vous devez également vérifier si la configuration d’Apache correspond réellement à la version Nextcloud installée.

Remplacer l’URL de Nextcloud CLI

Lors de l’installation derrière un proxy inverse, l’avertissement suivant apparaît occasionnellement :

Ecraser l’URL CLI

Il s’agit du paramètre Nextcloud overwrite.cli.url.

Cela détermine quelle adresse de base Nextcloud doit utiliser lors de la génération d’URL via des processus de ligne de commande ou des tâches en arrière-plan.

Sans ce paramètre, les liens peuvent pointer vers une adresse IP interne, un nom d’hôte incorrect ou une adresse HTTP non chiffrée, par exemple.

Définir le domaine public Nextcloud

Supposons que votre propre installation Nextcloud soit accessible à l’adresse suivante :

https://cloud.example.de

Ensuite, l’URL CLI peut être configurée avec cette commande :

sudo -u www-data php occ config:system:set overwrite.cli.url --value="https://cloud.example.de"

Vous pouvez ensuite vérifier le paramètre :

sudo -u www-data php occ config:system:get overwrite.cli.url

La sortie doit contenir l’adresse précédemment configurée.

Configurer correctement Nextcloud derrière Nginx Proxy Manager

Des paramètres supplémentaires sont utiles pour une installation Nextcloud derrière un proxy inverse.

Les paramètres trusted_domains, trusted_proxies et overwriteprotocol sont particulièrement importants.

Ceux-ci se trouvent dans le fichier de configuration Nextcloud :

/var/www/html/config/config.php

Qu’est-ce que les domaines_de confiance ?

Avec trusted_domains, vous spécifiez sous quels noms d’hôte Nextcloud peut être atteint.

Cela inclut, par exemple, le domaine public :

'trusted_domains' => [
    'cloud.example.de',
],

Ce paramètre ne doit pas être confondu avec trusted_proxies.

Qu’est-ce que trust_proxies ?

Dans trusted_proxies, vous stockez les adresses IP des proxys inverses auxquels Nextcloud fait confiance.

Cela permet par exemple à Nextcloud de déterminer l’adresse IP réelle d’un visiteur via les en-têtes proxy correspondants.

Un exemple :

'trusted_proxies' => [
    '192.168.1.10',
],

L’adresse IP doit être remplacée par l’adresse IP réelle du Nginx Proxy Manager.

Important : seuls des proxys inverses dignes de confiance doivent être saisis. Le paramètre ne doit pas être étendu à toutes les adresses IP.

Sinon, dans certaines circonstances, les attaquants peuvent manipuler les en-têtes et soumettre de fausses adresses IP client.

Configurer HTTPS avec le protocole d’écrasement

Si HTTPS est terminé sur Nginx Proxy Manager et qu’Apache2 reçoit les requêtes en interne via HTTP, Nextcloud pourra peut-être détecter le mauvais protocole.

Dans ce cas, le paramètre aide :

'overwriteprotocol' => 'https',

Cela signifie que Nextcloud utilise le protocole HTTPS pour les URL générées.

Ceci est particulièrement important si les liens dans l’interface Web ou dans les notifications commencent de manière incorrecte par http://.

De plus, overwritehost peut être utilisé si nécessaire. Toutefois, ce paramètre n’est généralement pas nécessaire si le proxy inverse transmet correctement l’en-tête de l’hôte.

Le config.php existant ne doit pas être complètement remplacé par un exemple de configuration car il contient d’autres paramètres et données d’accès importants.

Nextcloud : définir la région téléphonique par défaut

Si Nextcloud signale qu’une région téléphonique par défaut n’a pas été configurée, le paramètre default_phone_region est manquant.

Ceci détermine quel indicatif de pays doit être accepté pour les numéros de téléphone sans indicatif international explicite.

Pour l’Allemagne, le code pays ISO DE est utilisé.

Le paramètre peut être défini directement via OCC :

sudo -u www-data php occ config:system:set default_phone_region --value="DE"

Vous pouvez ensuite les vérifier :

sudo -u www-data php occ config:system:get default_phone_region

La commande doit renvoyer DE.

Alternativement, le paramètre peut être stocké dans le config.php :

'default_phone_region' => 'DE',

Ce paramètre est particulièrement utile lors de la gestion des profils utilisateur avec des numéros de téléphone.

Configurer ou désactiver le démon de provisionnement Nextcloud AppAPI

Les versions plus récentes de Nextcloud prennent en charge les applications dites externes, ou ex-applications en abrégé.

Ceux-ci peuvent fournir des fonctionnalités supplémentaires et s’exécuter en dehors du processus PHP Nextcloud réel.

Nextcloud utilise l’AppAPI pour cela.

Si AppAPI est activé mais qu’aucun démon de déploiement approprié n’a été configuré, une note correspondante apparaît dans la vue d’ensemble de l’administration.

Qu’est-ce qu’un démon de déploiement AppAPI ?

Un démon de déploiement est responsable du déploiement et de la gestion des applications externes.

Selon la solution utilisée, des services ou conteneurs supplémentaires peuvent être nécessaires.

Par exemple, HaRP est disponible pour les versions plus récentes de Nextcloud.

L’avertissement AppAPI ne signifie pas que les fonctions normales de Nextcloud telles que la synchronisation de fichiers, le calendrier ou les contacts ne fonctionnent plus.

Désactivez AppAPI lorsque vous n’en avez pas besoin

Si vous ne souhaitez pas utiliser d’applications externes, vous pouvez désactiver AppAPI.

Pour ce faire, vous utilisez la commande suivante :

sudo -u www-data php occ app:disable app_api

Cela désactivera l’application Nextcloud correspondante.

Cependant, cela ne doit être fait que si aucune fonction installée ne dépend d’AppAPI.

Vous pouvez également enregistrer un démon de déploiement approprié dans les paramètres d’administration AppAPI et le définir par défaut.

Activer l’authentification à deux facteurs Nextcloud

Un autre message indique que même s’il existe des fournisseurs d’authentification à deux facteurs, leur utilisation n’est pas obligatoire.

Avec l’authentification à deux facteurs, également connue sous le nom de 2FA, le mot de passe normal ne suffit pas à lui seul pour se connecter.

De plus, par exemple, un code numérique limité dans le temps est requis, généré via une application d’authentification.

Cela réduit le risque d’accès non autorisé si un mot de passe est connu.

Nextcloud prend en charge différentes méthodes pour cela, notamment les applications TOTP et d’autres méthodes d’authentification.

Rendre obligatoire l’authentification à deux facteurs

L’authentification obligatoire à deux facteurs peut être activée via l’interface Web Nextcloud sous les paramètres d’administration dans la zone Sécurité.

Alternativement, vous pouvez l’activer via OCC.

Pour tous les utilisateurs :

sudo -u www-data php occ twofactorauth:enforce --on

Pour activer l’utilisation obligatoire uniquement pour les membres du groupe Administrateur :

sudo -u www-data php occ twofactorauth:enforce --on --group=admin

Il est important de s’assurer que les utilisateurs concernés ont déjà configuré une méthode d’authentification appropriée ou qu’ils pourront la configurer lors de leur prochaine connexion.

Il est également conseillé de générer des codes de récupération et de les stocker en toute sécurité.

Si vous perdez votre smartphone et n’avez pas configuré d’option de connexion alternative, vous pourriez autrement perdre l’accès à votre propre compte.

Pour les installations Nextcloud accessibles au public, la sécurisation des comptes administrateur est particulièrement recommandée.

Configurer l’ID du serveur Nextcloud

Depuis Nextcloud 33, un processus de génération d’identifiants uniques basé sur ce que l’on appelle les Snowflake ID a été utilisé pour certaines fonctions.

Un tel identifiant peut contenir, entre autres, des informations sur l’heure de création et le serveur qui l’a créé.

Pour les installations avec plusieurs serveurs PHP, il est logique ou nécessaire qu’ils utilisent des ID de serveur différents.

Le paramètre s’appelle serverid.

Vérifier l’ID du serveur

Vous pouvez afficher la valeur existante avec la commande suivante :

sudo -u www-data php occ config:system:get serverid

S’il n’y a pas encore d’ID de serveur, vous pouvez utiliser la valeur 1 pour un seul serveur PHP, par exemple :

sudo -u www-data php occ config:system:set serverid --type=integer --value=1

Les valeurs entières comprises entre 0 et 511 sont autorisées.

Il est important que s’il existe plusieurs serveurs PHP, chaque instance utilise son propre identifiant.

Une fois les identifiants de serveur définis, ils ne doivent pas être modifiés si possible, car ils font partie des identifiants générés.

Pour une petite installation Nextcloud avec un seul serveur Web, cet avis est généralement moins critique que des paramètres HTTPS incorrects ou des problèmes de base de données.

Recherchez et corrigez les erreurs du protocole Nextcloud

Nextcloud affiche souvent les erreurs des derniers jours dans l’aperçu de l’administration.

Par exemple, plusieurs dizaines, voire centaines d’erreurs peuvent être signalées.

Cependant, le chiffre à lui seul en dit peu sur la cause réelle.

Une seule erreur peut se produire plusieurs fois en raison d’une tâche en arrière-plan exécutée régulièrement.

De même, après une mise à jour, des entrées de journal plus anciennes peuvent toujours exister même si le problème réel a déjà été résolu.

Rechercher le fichier journal Nextcloud

Par défaut, le fichier journal Nextcloud est nommé :

nextcloud.log

Il se trouve généralement dans le répertoire de données Nextcloud configuré, sauf si un chemin de journal différent a été spécifié.

Le répertoire de données peut être lu via OCC :

sudo -u www-data php occ config:system:get datadirectory

Vous pouvez alors afficher les 100 dernières lignes du fichier log :

tail -n 100 /PFAD/ZUM/DATENVERZEICHNIS/nextcloud.log

L’exemple de chemin doit être ajusté en conséquence.

Pour les installations Nextcloud avec des fichiers journaux très volumineux, vous ne devez pas afficher l’intégralité du fichier en une seule fois.

Au lieu de cela, il est conseillé de rechercher spécifiquement les messages d’erreur ou d’examiner les dernières entrées.

Vérifiez les journaux Apache2

Si l’erreur est liée à Apache2 ou PHP, le journal des erreurs Apache peut également être utile.

Sur Ubuntu, il se trouve souvent ici :

/var/log/apache2/error.log

Les dernières entrées peuvent être consultées comme suit :

sudo tail -n 100 /var/log/apache2/error.log

Alternativement, vous pouvez accéder aux messages Apache actuels via le journal système :

sudo journalctl -u apache2 -n 100 --no-pager

Si Nextcloud fonctionne derrière un proxy inverse, vous devez également vérifier les journaux du proxy inverse en cas de problèmes de connexion.

Les codes d’état HTTP tels que 403, 404, 502 ou 504 sont particulièrement utiles.

Causes courantes des erreurs de journal Nextcloud

Type d’erreurCause possible
Erreur PHPApplication incompatible ou module PHP manquant
Erreur de base de donnéesProblème de connexion, erreur de requête ou migration incorrecte
HTTP404Mauvais chemin ou règle de réécriture
HTTP502Le serveur Web principal n’est pas accessible
HTTP504Délai d’expiration entre le proxy et le backend
Erreur d’autorisationAutorisations de fichiers incorrectes
Erreur CronÉchec du travail en arrière-plan
Erreur RedisLe serveur de cache n’est pas accessible

Surtout après des mises à jour majeures, il est conseillé de vérifier à nouveau les journaux.

Les avertissements individuels ne doivent pas être masqués simplement en supprimant ou en réinitialisant le fichier journal.

Configurer correctement les tâches cron Nextcloud

Pour que Nextcloud fonctionne de manière fiable sur le long terme, diverses tâches en arrière-plan doivent être effectuées régulièrement.

AJAX, Webcron et Cron sont disponibles à cet effet.

Pour un serveur Linux autonome, il est généralement recommandé d’utiliser une véritable tâche cron.

Cela fonctionne même si quelqu’un a déjà ouvert l’interface Web.

Vérifier la tâche cron Nextcloud

Sur Ubuntu, vous pouvez afficher les tâches cron existantes de l’utilisateur du serveur Web avec la commande suivante :

sudo crontab -u www-data -l

Une tâche cron Nextcloud typique ressemble à ceci :

*/5 * * * * /usr/bin/php -f /var/www/html/cron.php

Cela entraînera l’exécution du cron.php de Nextcloud toutes les cinq minutes.

Si APCu doit être activé pour PHP-CLI, l’appel peut être adapté en conséquence :

*/5 * * * * /usr/bin/php -d apc.enable_cli=1 -f /var/www/html/cron.php

Vous pouvez modifier la tâche cron avec la commande suivante :

sudo crontab -u www-data -e

Il est important d’adapter le chemin d’installation à votre propre environnement.

Si vous avez déjà configuré une minuterie systemd pour Nextcloud, vous ne devez pas également utiliser la même tâche cron.

Sinon, les tâches en arrière-plan risquent d’être démarrées plusieurs fois inutilement.

De plus, dans les paramètres de gestion Nextcloud, vous devez vérifier si le mode d’arrière-plan est défini sur Cron.

Mettre à jour Nextcloud avec succès – Mise à niveau et mise à jour OCC

Pour les mises à jour Nextcloud plus volumineuses, il existe une différence importante entre le programme de mise à jour réel et la commande OCC upgrade.

Le programme de mise à jour s’occupe du téléchargement et de l’échange des fichiers du programme Nextcloud.

La commande occ upgrade, quant à elle, effectue les migrations de bases de données et les autres étapes de mise à niveau requises pour la version installée.

Vérifiez la version Nextcloud installée

La commande suivante affiche la version installée :

sudo -u www-data php occ status

Par exemple, s’il indique toujours versionstring: 34.0.5, Nextcloud 34.0.5 est installé.

Même si Nextcloud 35.0.2 est déjà proposé dans la zone d’administration, cela ne veut pas dire que cette version est déjà installée.

Mettre à jour Nextcloud via la ligne de commande

Pour une installation manuelle, le programme de mise à jour intégré en ligne de commande peut être utilisé :

cd /var/www/html

Après:

sudo -E -u www-data php -d apc.enable_cli=1 updater/updater.phar

Le programme de mise à jour vérifie l’installation et vous guide ensuite à travers les étapes nécessaires.

Après avoir échangé les fichiers du programme, il peut également lancer la mise à jour OCC proprement dite.

Si cette étape n’a pas encore été réalisée, vous pouvez l’appeler manuellement :

sudo -E -u www-data php -d apc.enable_cli=1 occ upgrade

Si le message No upgrade required apparaît, aucune autre migration de mise à niveau n’est requise pour les fichiers Nextcloud actuellement installés.

Toutefois, cela ne signifie pas automatiquement que la dernière version disponible est déjà installée.

Vérifier le mode de maintenance après une mise à niveau

Après une mise à niveau réussie, vous devez vérifier si Nextcloud a quitté le mode maintenance :

sudo -u www-data php occ status

Si maintenance: false est affiché, le mode maintenance est désactivé.

Si Nextcloud reste en mode maintenance après une mise à niveau entièrement terminée, celui-ci peut être désactivé manuellement si nécessaire :

sudo -u www-data php occ maintenance:mode --off

Vous ne devez pas exécuter cette commande alors qu’une mise à jour ou une migration de base de données est en cours.

Exécutez des commandes de maintenance supplémentaires après la mise à jour

Après une mise à jour réussie, les commandes suivantes peuvent être utiles :

sudo -u www-data php occ maintenance:repair --include-expensive
sudo -u www-data php occ db:add-missing-indices

Cela signifie que d’autres réparations sont effectuées et, si nécessaire, les index de base de données manquants sont ajoutés.

Si possible, les travaux de réparation majeurs doivent avoir lieu pendant une période de maintenance planifiée.

Vérifiez la version PHP et la configuration PHP

Nextcloud nécessite une installation PHP correspondant à la version respective.

Les versions de PHP prises en charge dépendent de la version de Nextcloud utilisée.

Par exemple, Nextcloud 35 prend en charge PHP 8.4.

Vous pouvez visualiser la version PHP installée via le terminal :

php -v

Vous pouvez également vérifier quels modules PHP sont actifs :

php -m

Les modules importants ou fréquemment utilisés comprennent :

Module PHPutiliser
curlRequêtes HTTP
gdTraitement d’images
imagickTraitement d’image avancé
intlTraitement du langage et des caractères
mbstringTraitement du texte
mysqli / pdo_mysqlConnexion MariaDB et MySQL
redisVerrouillage du cache et des fichiers
apcuCache local
zipFichiers ZIP
xmlTraitement XML
opcacheAccélérer PHP

Tous les modules ne sont pas obligatoires pour chaque installation Nextcloud.

Ceux qui sont réellement nécessaires dépendent, entre autres, de la base de données et des applications installées.

Différence entre PHP CLI et PHP sur le serveur Web

Un point important est que la version PHP dans le terminal ne correspond pas forcément à la version PHP utilisée dans le serveur web.

Par exemple, sous Ubuntu, plusieurs versions de PHP peuvent être installées en parallèle.

Alors que php -v affiche la version de la ligne de commande, Apache2 peut utiliser une version différente via son propre module PHP ou PHP-FPM.

Pour vérifier, vous pouvez par exemple procéder comme suit :

apache2ctl -M | grep php

Si PHP-FPM est utilisé, le service PHP-FPM correspondant doit également être vérifié.

Les fichiers de configuration diffèrent également.

Les chemins typiques sur Ubuntu sont :

/etc/php/8.4/cli/php.ini
/etc/php/8.4/apache2/php.ini
/etc/php/8.4/fpm/php.ini

Tous ces fichiers ne doivent pas nécessairement être présents sur chaque serveur.

Après avoir modifié les paramètres PHP, Apache2 ou PHP-FPM devra peut-être être redémarré ou rechargé.

Accélérez Nextcloud avec Redis et APCu

En plus de corriger les avertissements de sécurité, il convient également d’examiner les performances de votre propre installation Nextcloud.

Les systèmes de mise en cache peuvent améliorer la vitesse, en particulier dans les installations comportant de nombreux fichiers ou plusieurs utilisateurs connectés en même temps.

Nextcloud prend en charge APCu et Redis, entre autres.

APCu convient comme cache local rapide pour PHP.

Redis peut également être utilisé pour un cache distribué et le verrouillage de fichiers.

Utiliser APCu comme cache local

Si APCu n’est pas encore installé, vous pouvez installer le module sous Ubuntu avec la commande suivante par exemple :

sudo apt install php-apcu

L’entrée suivante peut alors être stockée dans la configuration Nextcloud :

'memcache.local' => '\OC\Memcache\APCu',

Utiliser Redis pour le verrouillage de fichiers

Redis peut être installé sur Ubuntu via le gestionnaire de packages :

sudo apt install redis-server php-redis

Vérifiez ensuite si le service Redis est en cours d’exécution :

systemctl status redis-server

Par exemple, dans la configuration Nextcloud, Redis peut être configuré comme ceci :

'memcache.local' => '\OC\Memcache\APCu',

'memcache.distributed' => '\OC\Memcache\Redis',

'memcache.locking' => '\OC\Memcache\Redis',

'redis' => [
    'host' => '127.0.0.1',
    'port' => 6379,
],

L’exemple suppose que Redis s’exécute sur le même serveur et est accessible via l’adresse locale.

S’il existe un serveur Redis externe ou une connexion via un socket Unix, la configuration doit être ajustée.

Il convient également de garantir que Redis ne soit pas accessible sans protection depuis Internet.

Utiliser Redis pour le verrouillage de fichiers est particulièrement intéressant lors de la synchronisation de nombreux fichiers ou du transfert régulier de grandes quantités de données.

Nettoyer la corbeille Nextcloud et les versions de fichiers

Au fil du temps, Nextcloud peut accumuler de nombreux fichiers supprimés et des versions de fichiers plus anciennes.

Ceux-ci occupent de l’espace de stockage supplémentaire et peuvent atteindre plusieurs gigaoctets pour les installations plus importantes.

Nextcloud est livré avec ses propres commandes de maintenance pour cela.

Vider la corbeille d’un utilisateur

Pour vider la corbeille d’un utilisateur spécifique, utilisez :

sudo -u www-data php occ trashbin:cleanup BENUTZERNAME

BENUTZERNAME doit être remplacé par l’ID utilisateur Nextcloud correspondant.

Supprimer les anciennes versions de fichiers

Les versions de fichiers enregistrées peuvent également être nettoyées à l’aide d’OCC :

sudo -u www-data php occ versions:cleanup BENUTZERNAME

Attention : Ces commandes suppriment le contenu de la corbeille existante ou les versions de fichiers enregistrées de l’utilisateur spécifié. Ces données ne pourront alors plus être restaurées de manière normale via Nextcloud.

Il ne faut donc pas les réaliser simplement régulièrement sans les contrôler au préalable.

En particulier, versions:cleanup supprime non seulement les versions particulièrement anciennes, mais également les versions de fichiers capturées par la commande.

Pour limiter automatiquement l’utilisation du stockage, les règles de rétention Nextcloud sont généralement une meilleure solution.

Autres paramètres importants de sécurité et de performances de Nextcloud

En plus des avertissements déjà décrits, il existe quelques paramètres que vous devez vérifier régulièrement sur un serveur Nextcloud auto-exploité.

Certificats HTTPS et SSL

Une installation Nextcloud accessible au public doit toujours être accessible via HTTPS.

Si vous utilisez Nginx Proxy Manager, vous pouvez par exemple mettre en place un certificat Let’s Encrypt et activer la redirection de HTTP vers HTTPS.

Il est important que le certificat soit valide et soit automatiquement renouvelé.

Vous devez également vérifier si Nextcloud lui-même reconnaît correctement l’adresse publique HTTPS.

En-tête de sécurité HTTP

Un autre point important concerne les en-têtes de sécurité HTTP.

Cela inclut, par exemple, Strict-Transport-Security, HSTS en abrégé.

Cet en-tête indique au navigateur qu’à l’avenir, un site Web ne sera accessible que via HTTPS.

Lors de l’installation avec Nginx Proxy Manager, HSTS peut être défini directement sur le proxy inverse, en fonction de la configuration.

Avant d’activer HSTS, vous devez vous assurer que HTTPS fonctionne correctement sur le long terme.

Vérifier les autorisations des fichiers

Des problèmes avec les autorisations de fichiers peuvent empêcher Nextcloud d’écrire des fichiers ou des mises à jour échouent.

Lors de l’installation manuelle d’Ubuntu, l’utilisateur du serveur Web doit avoir accès aux répertoires requis.

Cependant, vous ne devez pas accorder à tous les fichiers des autorisations d’écriture pour tous les utilisateurs.

En particulier, les autorisations telles que 777 ne constituent pas une solution judicieuse et peuvent présenter un risque de sécurité.

Protéger le répertoire de données Nextcloud

Si possible, le répertoire de données doit être situé en dehors du répertoire Web accessible au public.

Cela réduit le risque d’accès direct aux fichiers via Internet en raison d’une configuration incorrecte du serveur Web.

Si le répertoire de données se trouve dans la racine Web, les règles de protection d’accès fournies par Nextcloud doivent fonctionner correctement.

La modification du répertoire de données ne doit pas être effectuée sans une planification préalable et une sauvegarde complète des données.

Entretenir régulièrement la base de données

La base de données doit également être vérifiée régulièrement.

Les éléments suivants sont entre autres importants :

  • Espace de stockage gratuit suffisant
  • Une version de base de données prise en charge
  • Sauvegardes régulières
  • Connexions de base de données fonctionnelles
  • Index manquants après les mises à jour
  • Paramètres de mémoire et de cache adéquats

Surtout avec les installations Nextcloud très utilisées, la base de données peut devenir très volumineuse au fil du temps.

Dans de tels cas, il peut être judicieux d’analyser les tables de la base de données et les informations stockées plus en détail plutôt que de fournir uniquement des cœurs de processeur ou de la mémoire supplémentaires.

Foire aux questions sur la correction des alertes Nextcloud

Toutes les alertes de sécurité Nextcloud sont-elles critiques ?

Non. Certains avertissements indiquent des problèmes de sécurité spécifiques, tandis que d’autres concernent simplement des configurations supplémentaires ou des optimisations recommandées.

Néanmoins, vous devez vérifier chaque message au moins une fois et en comprendre la cause.

Les avertissements Nextcloud peuvent-ils disparaître après une mise à jour ?

Oui. Certains messages proviennent de migrations incomplètement terminées ou de configurations obsolètes.

Cependant, d’autres avertissements ne peuvent être résolus que par des ajustements manuels d’Apache2, PHP, de la base de données ou du proxy inverse.

Que signifie Aucune mise à niveau requise chez Nextcloud ?

Ce message signifie qu’aucune autre mise à niveau de la base de données n’est nécessaire pour les exécutables Nextcloud actuellement installés.

Cela ne signifie pas automatiquement que la dernière version disponible de Nextcloud a déjà été installée.

La version actuelle peut être vérifiée avec occ status.

Devez-vous réparer Nextcloud après chaque mise à jour ?

Non. Normalement, Nextcloud effectue lui-même les migrations standards requises.

Toutefois, certaines tâches complexes ne sont volontairement pas toujours exécutées automatiquement.

Si des avertissements appropriés s’affichent, des commandes OCC supplémentaires peuvent être nécessaires.

Nextcloud a-t-il absolument besoin de Redis ?

Non. Les petites installations Nextcloud peuvent également être exploitées sans Redis.

Cependant, Redis peut améliorer la fiabilité et les performances, en particulier avec des accès fréquents aux fichiers et plusieurs utilisateurs.

Pouvez-vous exécuter Nextcloud sans Docker ?

Oui. Nextcloud peut être entièrement installé sur un serveur Linux sans avoir besoin de Docker.

Cela nécessite, entre autres, un serveur web compatible, PHP et une base de données supportée.

L’installation peut être effectuée sur un serveur Ubuntu classique, une machine virtuelle ou dans un conteneur LXC.

Devez-vous redémarrer Apache2 après avoir apporté des modifications au config.php ?

Pas fondamentalement. Le fichier de configuration Nextcloud est traité par PHP, donc de nombreuses modifications prennent effet sans redémarrer le serveur Web.

Cependant, si les modules Apache, les VirtualHosts ou les paramètres PHP sont modifiés, un rechargement ou un redémarrage peut être nécessaire.

Cet article a été traduit à l’aide de l’IA.

Durchschnittliche Bewertung 0 / 5. Bewertungen: 0

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Défiler vers le haut