Home
» Come fare
»
Sblocca in modo sicuro la modalità di manutenzione di Nextcloud con OCC
Sblocca in modo sicuro la modalità di manutenzione di Nextcloud con OCC
Se Nextcloud continua a mostrare "modalità di manutenzione" dopo un aggiornamento o un'attività di manutenzione, verifica innanzitutto se l'aggiornamento del database è stato completato. Se occ statusil risultato è positivo needsDbUpgrade: false, eseguilo occ maintenance:mode --offcome utente del server web nell'installazione Nextcloud corretta; se invece il risultato è negativo true, termina occ upgradeprima di riaprire il sito.
Disabilitare il flag ripristina gli accessi, ma non risolve un aggiornamento non riuscito. L'obiettivo è riportare l'istanza online con il flag di manutenzione e lo stato dell'aggiornamento verificati.
1. Verifica l'istanza prima di modificarne lo stato
Connettiti all'host o al container che gestisce l'URL Nextcloud interessato. Per un'installazione manuale su Linux, spostati nella directory di Nextcloud (spesso /var/www/nextcloud) e controlla lo stato come utente HTTP:
cd /var/www/nextcloud
sudo -E -u www-data php occ status
Cerca maintenancee needsDbUpgrade. Uno stato tipico in cui è possibile disabilitare la modalità in sicurezza è maintenance: truecon needsDbUpgrade: false. Se la manutenzione è già impostata su false, il browser potrebbe mostrare una pagina obsoleta o connettersi a un backend diverso. Se needsDbUpgradeè impostato su true, non disattivare ancora la modalità di manutenzione.
L'esempio di stato mostra la manutenzione abilitata anche in assenza di aggiornamenti del database in sospeso, condizione in cui normalmente è opportuno disabilitare la modalità di manutenzione.
Nextcloud richiede che OCC venga eseguito come utente HTTP in modo che la proprietà dei file rimanga coerente. Su Debian o Ubuntu, di solito si tratta di www-data; altre distribuzioni potrebbero utilizzare apache, httpo wwwrun. Verifica l'account di servizio della tua installazione prima di sostituire l'utente in un comando. La documentazione corrente di Nextcloud OCC elenca le differenze tra gli utenti e il comando di stato.
2. Disabilitare la modalità di manutenzione con OCC
Per installare un archivio o un pacchetto, eseguire il comando dalla directory contenente lo occscript corretto:
Il comando dovrebbe segnalare che la modalità di manutenzione è disabilitata. L' --offopzione modifica lo stato di manutenzione; non esegue migrazioni, non corregge i permessi né annulla una sostituzione di file interrotta.
Questo è il comando OCC per un'installazione standard quando l'aggiornamento è completato e il comando è in esecuzione sulla directory Nextcloud attiva.
Utilizza il wrapper corrispondente alla tua installazione. Per l'immagine Docker ufficiale di Nextcloud, la documentazione del progetto include sia docker execesempi di Docker Compose che di installazione. Sostituisci il nome del container o del servizio di esempio con il tuo:
# 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, esegui OCC all'interno del servizio Nextcloud come www-data; usa il nome del tuo servizio Compose al posto del nome di esempio app.
Per Nextcloud Snap, usa il suo wrapper OCC lato host anziché accedere alle directory interne dello snap:
3. Se un aggiornamento è ancora in sospeso, completalo prima
Quando vengono visualizzati i report di stato needsDbUpgrade: true, Nextcloud segnala che la migrazione del codice e del database non sono sincronizzate. Questo accade comunemente dopo che un aggiornamento ha sostituito il codice, ma la fase di migrazione non è stata completata. In tale stato, potrebbe essere disponibile un set limitato di comandi OCC e la modalità di manutenzione potrebbe essere lasciata attiva intenzionalmente per impedire agli utenti di accedere durante l'aggiornamento.
Utilizza il percorso di aggiornamento per il tuo tipo di installazione e rivedi l'errore dell'aggiornamento prima di procedere. Per un'installazione standard basata su archivio, dopo aver verificato che la versione del codice Nextcloud desiderata sia presente e aver effettuato un backup aggiornato del database e dei file/configurazioni, se non ne hai già uno, esegui:
sudo -E -u www-data php occ upgrade
Attendere il completamento del comando e la risoluzione di eventuali errori segnalati. Non attivare e disattivare ripetutamente la modalità di manutenzione per aggirare un errore di migrazione. La documentazione di aggiornamento di Nextcloud spiega che la migrazione del database segue la sostituzione del codice del server e raccomanda di eseguire un backup recente prima dell'aggiornamento. Docker, Snap e i pacchetti gestiti possono avere procedure di aggiornamento proprie; utilizzare tali istruzioni se differiscono dall'esempio basato su archivio.
Una volta completato correttamente l'aggiornamento e quando lo stato non segnala più un aggiornamento del database in sospeso, eseguire il maintenance:mode --offcomando appropriato indicato sopra. Evitare di modificare config.phpo utilizzare un aggiornamento diretto del database come scorciatoia. Se OCC non riesce a scrivere l'impostazione, verificare di aver selezionato l'installazione e l'utente HTTP corretti e controllare eventuali criteri di configurazione di sola lettura o errori di autorizzazione del file system prima di modificare le autorizzazioni.
4. Verifica la bandiera e il sito live
Eseguire nuovamente il controllo dello stato utilizzando lo stesso percorso di installazione, lo stesso contenitore e lo stesso utente:
sudo -E -u www-data php occ status
Conferma entrambi maintenance: falsee needsDbUpgrade: false. In Docker o Snap, ripeti il controllo attraverso lo stesso wrapper utilizzato per disabilitare il flag. Il comando Nextcloud status documenta questi campi; la sua forma leggibile dalla macchina è occ status --output=json_pretty.
La verifica positiva mostra che la modalità di manutenzione è disattivata e non sono in corso aggiornamenti del database; questo esempio non proviene da un server di produzione.
Quindi ricarica il sito in una nuova scheda del browser e prova ad accedere normalmente e a visualizzare l'elenco dei file. Nextcloud segnala che gli utenti che avevano effettuato l'accesso prima della modalità di manutenzione potrebbero dover aggiornare il browser dopo che il server torna online. Se OCC segnala che la modalità di manutenzione è falsa ma il sito mostra ancora la pagina di manutenzione, verifica che il nome host o il bilanciatore di carico puntino alla stessa istanza che hai modificato; con più container o nodi, un altro backend potrebbe essere ancora in modalità di manutenzione.
Una soluzione efficace non si limita quindi a una semplice risposta "disabilitato": lo stato di OCC deve mostrare entrambi i flag come "clear" e l'URL pubblico previsto deve servire l'istanza funzionante. Se il flag di aggiornamento rimane "true" o il comando di migrazione fallisce, impedire l'accesso agli utenti e risolvere l'errore di aggiornamento prima di riaprire Nextcloud.