Débloquer Nextcloud en mode maintenance en toute sécurité avec OCC

Si Nextcloud affiche toujours le « mode maintenance » après une mise à jour ou une opération de maintenance, vérifiez d'abord si la mise à niveau de la base de données est terminée. Si occ statusc'est le cas needsDbUpgrade: false, exécutez la commande occ maintenance:mode --offen tant qu'utilisateur du serveur web dans l'installation Nextcloud appropriée ; si elle échoue true, terminez l'opération occ upgradeavant de rouvrir le site.

La désactivation de l'indicateur rétablit les connexions, mais ne corrige pas une mise à niveau ayant échoué. L'objectif est de remettre l'instance en ligne avec l'indicateur de maintenance et l'état de la mise à niveau vérifiés.

1. Vérifiez l'instance avant de modifier son état.

Connectez-vous à l'hôte ou au conteneur qui héberge l'URL Nextcloud concernée. Pour une installation Linux manuelle, accédez au répertoire Nextcloud (souvent `/etc/nextcloud` /var/www/nextcloud) et vérifiez l'état en tant qu'utilisateur HTTP :

cd /var/www/nextcloud
sudo -E -u www-data php occ status

Recherchez les valeurs `false` maintenanceet ` needsDbUpgradefalse`. Un état typique où la désactivation du mode maintenance est sans risque est ` maintenance: truefalse` needsDbUpgrade: false. Si `maintenance` est déjà faux, le navigateur affiche peut-être une page obsolète ou accède à un autre serveur. Si ` needsDbUpgradetrue` est vrai, ne désactivez pas encore le mode maintenance.

Terminal illustratif montrant l'état occ avec maintenance activée et needsDbUpgrade désactivée
L'exemple d'état montre la maintenance activée alors qu'aucune mise à niveau de la base de données n'est en attente, état dans lequel la désactivation du mode maintenance est normalement appropriée.

Nextcloud exige que l'OCC s'exécute en tant qu'utilisateur HTTP afin de garantir la cohérence des droits d'accès aux fichiers. Sous Debian ou Ubuntu, il s'agit généralement de l'utilisateur www-data« sudo » ; d'autres distributions peuvent utiliser « sudo » apache, http« sudo » ou « sudowwwrun ». Vérifiez le compte de service de votre installation avant de modifier l'utilisateur dans une commande. La documentation actuelle de Nextcloud OCC détaille les différences entre les utilisateurs et la commande d'état.

2. Désactiver le mode maintenance avec OCC

Pour installer une archive ou un paquet, exécutez la commande depuis le répertoire contenant le occscript approprié :

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

La commande doit indiquer que le mode maintenance est désactivé. Cette --offoption modifie l'état de maintenance ; elle n'exécute pas de migrations, ne corrige pas les permissions et n'annule pas un remplacement de fichier interrompu.

Exemple de commande terminale : `sudo -E -u www-data php occ maintenance:mode --off`
Voici la commande OCC pour une installation standard une fois la mise à niveau terminée et la commande exécutée sur le répertoire Nextcloud actif.

Utilisez le wrapper correspondant à votre installation. Pour l'image Docker officielle de Nextcloud, la documentation du projet fournit docker execdes exemples pour Docker Compose. Remplacez le nom du conteneur ou du service d'exemple par le vôtre :

# Docker Compose; "app" is an example service name
docker compose exec --user www-data app php occ maintenance:mode --off

# Docker; replace CONTAINER_ID with the Nextcloud container
docker exec -it --user www-data CONTAINER_ID php occ maintenance:mode --off
Exemple de commande Docker Compose pour désactiver le mode maintenance de Nextcloud en tant que www-data
Dans Docker Compose, exécutez OCC à l'intérieur du service Nextcloud en tant que www-data ; utilisez le nom de votre service Compose au lieu du nom d'exemple app.

Pour le paquet Snap Nextcloud, utilisez son wrapper OCC côté hôte plutôt que d'accéder aux répertoires internes du paquet :

sudo nextcloud.occ maintenance:mode --off

Le projet Snap indique que cela /snap/bin/nextcloud.occpeut être nécessaire si ce répertoire ne figure pas dans le PATH du shell. Consultez les instructions de maintenance de Snap . Le fichier README de l'image Docker officielle de Nextcloud documente le modèle de commande du conteneur.

3. Si une mise à niveau est toujours en attente, terminez-la d'abord.

Lorsque needsDbUpgrade: trueNextcloud génère des rapports d'état, cela indique que la migration du code et de la base de données n'est pas synchronisée. Ce problème survient généralement lorsqu'une mise à jour remplace le code mais que la phase de migration n'est pas terminée. Dans ce cas, seules quelques commandes OCC sont disponibles, et le mode maintenance peut être volontairement maintenu activé pour empêcher les utilisateurs d'accéder au système pendant la mise à niveau.

Suivez la procédure de mise à niveau correspondant à votre type d'installation et examinez l'erreur du programme de mise à jour avant de poursuivre. Pour une installation standard basée sur une archive, après avoir vérifié que la version du code Nextcloud souhaitée est présente et effectué une nouvelle sauvegarde de la base de données et des fichiers/de la configuration si vous n'en possédez pas déjà une, exécutez :

sudo -E -u www-data php occ upgrade

Laissez la commande s'exécuter jusqu'à son terme et résoudre toute erreur signalée. N'activez pas et désactivez le mode maintenance à répétition pour contourner une erreur de migration. La documentation de mise à niveau de Nextcloud explique que la migration de la base de données suit le remplacement du code serveur et recommande d'effectuer une sauvegarde récente avant toute mise à niveau. Les procédures de mise à niveau de Docker, Snap et des paquets gérés peuvent différer ; suivez ces instructions si elles diffèrent de l'exemple basé sur une archive.

Une fois la mise à niveau terminée et l'état ne signalant plus de mise à niveau de base de données en attente, exécutez la maintenance:mode --offcommande appropriée ci-dessus. Évitez de modifier config.phpla base de données ou d'utiliser une mise à jour directe comme raccourci. Si OCC ne parvient pas à modifier le paramètre, vérifiez que vous avez sélectionné l'installation et l'utilisateur HTTP corrects, et examinez toute stratégie de configuration en lecture seule ou erreur d'autorisation du système de fichiers avant de modifier les autorisations.

4. Vérifiez le drapeau et le site en direct

Exécutez à nouveau la commande status en utilisant le même chemin d'installation, le même conteneur et le même utilisateur :

sudo -E -u www-data php occ status

Confirmez les deux maintenance: falsevaleurs needsDbUpgrade: false. Dans Docker ou Snap, répétez la vérification via le même wrapper utilisé pour désactiver l'indicateur. La commande d'état de Nextcloud documente ces champs ; sa forme lisible par machine estocc status --output=json_pretty : .

Exemple de sortie d'état occ montrant que la maintenance est désactivée et que la mise à niveau de la base de données est désactivée.
La vérification réussie indique que le mode maintenance est désactivé et qu'aucune mise à niveau de la base de données n'est en attente ; cet exemple ne provient pas d'un serveur en production.

Rechargez ensuite le site dans un nouvel onglet de votre navigateur et testez une connexion et l'affichage des fichiers. Nextcloud indique que les utilisateurs connectés avant la maintenance devront peut-être actualiser leur navigateur une fois le serveur de nouveau en ligne. Si OCC signale que la maintenance est désactivée mais que la page de maintenance s'affiche toujours, vérifiez que le nom d'hôte ou l'équilibreur de charge redirige bien vers la même instance que celle modifiée ; avec plusieurs conteneurs ou nœuds, un autre serveur peut être encore en maintenance.

Une correction réussie ne se limite donc pas à une réponse « désactivé » : l’état d’OCC doit indiquer que les deux indicateurs sont désactivés et l’URL publique prévue doit pointer vers l’instance fonctionnelle. Si l’indicateur de mise à niveau reste actif ou si la commande de migration échoue, bloquez l’accès des utilisateurs et corrigez l’erreur de mise à niveau avant de rouvrir Nextcloud.

Laisser un commentaire

Débloquer Nextcloud en mode maintenance en toute sécurité avec OCC

Débloquer Nextcloud en mode maintenance en toute sécurité avec OCC

Utilisez OCC pour restaurer l'accès à Nextcloud, vérifier l'état de la migration de la base de données et choisir la commande appropriée pour les installations d'archives, Docker ou Snap.

Configurer la connexion LDAP et Active Directory à Nextcloud

Connectez Nextcloud à LDAP ou Active Directory, limitez l'accès avec des filtres d'utilisateurs et de groupes, et vérifiez l'authentification sécurisée avant le déploiement.

Exiger l'authentification à deux facteurs pour les utilisateurs de Nextcloud

Activez un fournisseur d'authentification à deux facteurs compatible, préparez la récupération du compte, puis exigez l'authentification à deux facteurs pour tous les utilisateurs ou pour certains groupes Nextcloud.

Protégez les documents Collabora CODE au repos grâce au chiffrement du stockage.

Sécurisez les fichiers modifiés dans Collabora CODE en chiffrant la couche de stockage, en protégeant les données temporaires et en vérifiant le chiffrement et la récupération.

Faire fonctionner Collabora CODE sur ARM64 avec l'image correcte

Faire fonctionner Collabora CODE sur ARM64 avec l'image correcte

Vérifiez l'architecture de votre hôte, assurez-vous que la balise CODE publie ARM64, supprimez les paramètres AMD64 forcés et distinguez les erreurs d'image des problèmes d'autorisation ou de mémoire.

Connectez Collabora Online à ownCloud Infinite Scale

Configurez la connexion WOPI entre Collabora Online et ownCloud Infinite Scale, configurez les URL de service appropriées et vérifiez que les modifications apportées aux documents sont enregistrées.

Exportation de fichiers par blocs dans Collabora CODE via WOPI

Empêchez l'exportation de documents dans Collabora Online CODE en définissant l'autorisation WOPI DisableExport, puis vérifiez que l'hôte et l'éditeur l'appliquent.

Intégrer Collabora derrière Nginx sans perturber les WebSockets

Intégrer Collabora derrière Nginx sans perturber les WebSockets

Configurez la terminaison TLS Nginx, les routes Collabora et les en-têtes WebSocket, puis testez les points de terminaison publics avant d'ouvrir les documents réels.

Empêcher la fin automatique des sessions d'édition de code après 10 minutes.

Identifiez la cause d'une déconnexion CODE de 10 minutes : proxy, équilibreur de charge ou chemin WebSocket, puis corrigez le délai d'expiration et vérifiez que la session reste connectée.

Déployez Collabora CODE sur Kubernetes avec Helm

Installez le graphique Helm officiel de Collabora, configurez l'accès WOPI et l'affinité d'entrée, et vérifiez le déploiement sans erreurs de configuration courantes.