Home
» Hoe
»
Definieer de vastgelopen Nextcloud-onderhoudsmodus veilig met OCC.
Definieer de vastgelopen Nextcloud-onderhoudsmodus veilig met OCC.
Als Nextcloud na een update of onderhoudstaak nog steeds de status 'onderhoudsmodus' weergeeft, controleer dan eerst of de database-upgrade is voltooid. Als er occ statuseen foutmelding verschijnt needsDbUpgrade: false, voer de taak dan uit occ maintenance:mode --offals de webservergebruiker in de juiste Nextcloud-installatie; als er een foutmelding verschijnt true, voltooi de taak occ upgradedan voordat u de site opnieuw opent.
Het uitschakelen van de vlag herstelt de inlogmogelijkheden, maar repareert geen mislukte upgrade. Het doel is om de instantie weer online te krijgen, waarbij zowel de onderhoudsvlag als de upgradestatus zijn geverifieerd.
1. Controleer het exemplaar voordat u de status ervan wijzigt.
Maak verbinding met de host of container die de betreffende Nextcloud-URL levert. Bij een handmatige Linux-installatie ga je naar de Nextcloud-directory (vaak /var/www/nextcloud) en controleer je de status als HTTP-gebruiker:
cd /var/www/nextcloud
sudo -E -u www-data php occ status
Zoek naar maintenanceen needsDbUpgrade. Een typische veilige status om uit te schakelen is maintenance: truewanneer needsDbUpgrade: false. Als de onderhoudsmodus al op 'false' staat, kan de browser een verouderde pagina weergeven of verbinding maken met een andere backend. Als needsDbUpgradeop 'true' staat, schakel de onderhoudsmodus dan nog niet uit.
Het statusvoorbeeld laat zien dat de onderhoudsmodus is ingeschakeld, terwijl er geen database-upgrade in behandeling is. Dit is normaal gesproken de situatie waarin het uitschakelen van de onderhoudsmodus aangewezen is.
Nextcloud vereist dat OCC wordt uitgevoerd als de HTTP-gebruiker, zodat het eigenaarschap van bestanden consistent blijft. Op Debian of Ubuntu is dat meestal www-data; andere distributies kunnen apache, http, of gebruiken wwwrun. Controleer het serviceaccount van uw installatie voordat u de gebruiker in een commando vervangt. De huidige Nextcloud OCC-documentatie beschrijft de verschillen tussen gebruikers en het statuscommando.
2. Schakel de onderhoudsmodus uit met OCC
Voor een archief- of pakketinstallatie voert u de opdracht uit vanuit de map waarin het juiste occscript zich bevindt:
Het commando moet melden dat de onderhoudsmodus is uitgeschakeld. De --offoptie wijzigt de onderhoudsstatus; er worden geen migraties uitgevoerd, machtigingen hersteld of een onderbroken bestandsvervanging ongedaan gemaakt.
Dit is het OCC-commando voor een standaardinstallatie nadat de upgrade is voltooid en het commando wordt uitgevoerd op de actieve Nextcloud-directory.
Gebruik de wrapper die overeenkomt met uw installatie. Voor de officiële Nextcloud Docker-image documenteert het project zowel docker execDocker Compose- als Docker Compose-voorbeelden. Vervang de naam van de voorbeeldcontainer of -service door die van u:
# 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
In Docker Compose start je OCC binnen de Nextcloud-service als www-data; gebruik hiervoor de naam van je Compose-service in plaats van de voorbeeldnaam 'app'.
Gebruik voor de Nextcloud Snap de OCC-wrapper aan de hostzijde in plaats van de interne mappen van de snap te openen:
3. Als er nog een upgrade in behandeling is, voltooi deze dan eerst.
Wanneer Nextcloud statusrapporten weergeeft needsDbUpgrade: true, geeft dit aan dat de code- en databasemigratie niet synchroon lopen. Dit gebeurt vaak nadat een updater de code heeft vervangen, maar de migratiefase niet is voltooid. In die situatie is mogelijk slechts een beperkt aantal OCC-opdrachten beschikbaar en kan de onderhoudsmodus opzettelijk ingeschakeld blijven om gebruikers tijdens de upgrade buiten te houden.
Gebruik het upgradepad voor uw installatietype en controleer de foutmelding van de updater voordat u verdergaat. Voor een standaard archiefinstallatie moet u, nadat u hebt gecontroleerd of de beoogde Nextcloud-codeversie aanwezig is en een nieuwe back-up van de database en bestanden/configuratie hebt gemaakt (indien u die nog niet hebt), het volgende commando uitvoeren:
sudo -E -u www-data php occ upgrade
Laat de opdracht volledig worden uitgevoerd en los eventuele gemelde fouten op. Schakel de onderhoudsmodus niet herhaaldelijk in en uit om een migratiefout te omzeilen. De upgrade-documentatie van Nextcloud legt uit dat de databasemigratie volgt op de vervanging van de servercode en raadt aan om vóór een upgrade een nieuwe back-up te maken. Docker, Snap en beheerde pakketten kunnen hun eigen upgrade-procedures hebben; gebruik die instructies als ze afwijken van het voorbeeld op basis van archieven.
Zodra de upgrade succesvol is voltooid en de status geen melding meer geeft van een database-upgrade in behandeling, voert u de juiste maintenance:mode --offopdracht hierboven uit. Vermijd het bewerken van config.phpde database of het rechtstreeks bijwerken ervan als een snelle oplossing. Als OCC de instelling niet kan schrijven, controleer dan of u de juiste installatie en HTTP-gebruiker hebt geselecteerd en controleer op fouten met betrekking tot het alleen-lezen configuratiebeleid of de bestandsrechten voordat u de machtigingen wijzigt.
4. Controleer de vlag en de live website.
Voer de statusopdracht opnieuw uit met hetzelfde installatiepad, dezelfde container en dezelfde gebruiker:
sudo -E -u www-data php occ status
Bevestig zowel maintenance: falseals needsDbUpgrade: false. Herhaal in Docker of Snap de controle via dezelfde wrapper die werd gebruikt om de vlag uit te schakelen. Het Nextcloud-statuscommando documenteert deze velden; de machineleesbare vorm ervan is occ status --output=json_pretty.
Een succesvolle verificatie toont aan dat de onderhoudsmodus is uitgeschakeld en dat er geen database-upgrade in behandeling is; dit voorbeeld is geen uitvoer van een live server.
Laad de site vervolgens opnieuw in een nieuw browsertabblad en test een normale login en de lijst met bestanden. Nextcloud merkt op dat gebruikers die vóór de onderhoudsmodus waren ingelogd, hun browser mogelijk moeten vernieuwen nadat de server weer online is. Als OCC aangeeft dat de onderhoudsmodus niet actief is, maar de site nog steeds de onderhoudspagina weergeeft, controleer dan of de hostnaam of load balancer naar dezelfde instantie verwijst die u hebt gewijzigd; bij meerdere containers of nodes kan een andere backend zich nog steeds in de onderhoudsmodus bevinden.
Een succesvolle oplossing is daarom meer dan alleen een "uitgeschakeld" commando-antwoord: de OCC-status moet beide vlaggen op 'uit' weergeven en de beoogde openbare URL moet de werkende instantie weergeven. Als de upgrade-vlag op 'uit' blijft staan of het migratiecommando mislukt, blokkeer dan de toegang voor gebruikers en los de upgradefout op voordat Nextcloud opnieuw wordt geopend.