Hai completato un aggiornamento di Nextcloud, ma tutti continuano a visualizzare la pagina di manutenzione. Oppure un aggiornamento è stato interrotto e il sito non è più tornato online. Il comando OCC per disabilitare la modalità di manutenzione è breve, ma eseguirlo prima di verificare lo stato dell'aggiornamento può rivelare un'installazione incompleta. Inizia verificando quale istanza di Nextcloud stai amministrando e se è ancora necessario un aggiornamento del database.
Esempio illustrativo: Immaginate un piccolo ufficio che utilizza Nextcloud su Ubuntu. Un aggiornamento programmato è stato interrotto dopo il deployment di nuovi file di codice e la pagina web continua a indicare che il server è in modalità di manutenzione. Questo esempio è ipotetico; serve a illustrare i controlli descritti di seguito, non a descrivere un incidente o un test reale.
Cosa significa la modalità di manutenzione
La modalità di manutenzione di Nextcloud blocca il normale accesso degli utenti mentre un amministratore esegue operazioni come un aggiornamento o un backup. Si tratta di uno stato che interessa l'intero server, pertanto gli utenti potrebbero visualizzare un avviso di manutenzione anche quando il server web è in esecuzione. Il manuale di amministrazione di Nextcloud descrive il comando OCC per abilitare o disabilitare questa modalità e precisa che potrebbe essere necessario aggiornare il browser dopo la sua disattivazione.
Nell'esempio di ufficio, la sola pagina di manutenzione non indica all'amministratore se l'aggiornamento è terminato. È necessario interrogare direttamente Nextcloud prima di modificare la modalità.
Passaggio 1: Confermare il tipo di installazione e il percorso OCC
Gli esempi di comando qui riportati si riferiscono a un'installazione convenzionale di Nextcloud basata su archivio su Ubuntu, con il codice in /var/www/nextcloude l'account del server web denominato www-data. Nextcloud documenta che occsi trova nella directory di installazione e deve essere eseguito come utente HTTP; su Debian e Ubuntu tale utente è normalmente www-data.
Per questa configurazione standard, accedere alla directory di installazione:
cd /var/www/nextcloud
Se i file di Nextcloud si trovano in un'altra posizione, utilizzare il percorso effettivo. Snap, Docker, appliance e hosting gestito utilizzano wrapper di comando o strutture di filesystem differenti. Non eseguire il comando host su un'installazione containerizzata e non presumere che il percorso dell'archivio sia valido per tali implementazioni. Seguire le istruzioni di aggiornamento specifiche per il metodo di installazione utilizzato, come descritto nella guida ufficiale all'aggiornamento di Nextcloud .
Nell'esempio relativo all'ufficio, l'amministratore controlla le note di distribuzione e conferma che si tratta di un'installazione da archivio prima di eseguire OCC.
Passaggio 2: Verificare lo stato di Nextcloud prima di disabilitare la manutenzione
Eseguire OCC con l'account del server web in modo che i file e la configurazione mantengano i proprietari previsti:
sudo -E -u www-data php occ status
Osserva i campi maintenancee needsDbUpgrade. Le versioni attuali supportano anche un codice di uscita di stato:
sudo -E -u www-data php occ status -e
echo $?
I codici di uscita documentati sono utili quando l'output viene controllato da uno script: 0indica il normale funzionamento, 1significa che la modalità di manutenzione è abilitata e 2significa occ upgradeche è richiesto. Anche l'output di stato semplice dovrebbe essere esaminato; non utilizzare il solo codice di uscita per decidere se riaprire il sito.
Per il server dell'ufficio ipotetico, se needsDbUpgradeè vero o status -erestituisce 2, il passo successivo corretto è completare l'aggiornamento, non semplicemente disattivare la modalità di manutenzione.
Passaggio 3: Completa prima un aggiornamento incompleto
Se è stato intenzionalmente distribuito un aggiornamento del codice di Nextcloud e OCC segnala la necessità di aggiornare il database, prima di procedere, eseguire o verificare un backup aggiornato del database, della configurazione e dei dati. Quindi eseguire il comando documentato dalla directory di installazione:
sudo -E -u www-data php occ upgrade
Leggi l'output del comando e attendi che termini. Non interromperlo perché la pagina web appare invariata durante l'esecuzione delle migrazioni. L'aggiornamento integrato potrebbe lasciare la modalità di manutenzione attiva in caso di occ upgradeerrore durante la sostituzione del codice. Se l'aggiornamento non ha completato la sostituzione del codice, consulta il relativo registro e riprendi il processo di aggiornamento appropriato per la tua installazione, anziché passare direttamente a . Le istruzioni dell'aggiornamento integratomaintenance:mode --off di Nextcloud spiegano le fasi di aggiornamento e identificano il registro dell'aggiornamento come risorsa diagnostica.
Nell'esempio, l'amministratore dell'ufficio eseguirà il comando solo occ upgradese lo stato indica che la migrazione del database è ancora in sospeso e che il nuovo codice previsto è presente. Se il comando segnala un errore, il server rimane non disponibile e si procede prima all'analisi dell'errore.
Passaggio 4: Disattivare la modalità di manutenzione con OCC
Una volta completato l'aggiornamento e quando lo stato non indica più la necessità di un aggiornamento del database, disabilita la modalità di manutenzione utilizzando il comando integrato di Nextcloud:
sudo -E -u www-data php occ maintenance:mode --off
Un comando eseguito correttamente segnala che la modalità di manutenzione è stata disabilitata. Questo è il metodo supportato per modificare la modalità in un'installazione standard; inoltre, mantiene la modifica dello stato all'interno dell'interfaccia di comando di Nextcloud anziché basarsi su modifiche manuali config.php.
L'amministratore di sistema esegue questo comando solo al termine della migrazione. Se non era in corso alcun aggiornamento e lo stato indicava che l'installazione era pronta, lo stesso comando può rimuovere un flag di manutenzione rimasto attivo dopo la manutenzione pianificata.
Passaggio 5: Verificare lo stato e l'interfaccia web
Verifica nuovamente lo stato:
sudo -E -u www-data php occ status
sudo -E -u www-data php occ status -e
Per un'installazione completa, aspettati maintenance: false, needsDbUpgrade: false, e un normale codice di uscita di 0. Quindi apri il sito da una nuova finestra del browser in modalità privata e accedi con un account amministratore. Chiedi a un utente normale di aggiornare il browser prima di presumere che la sua sessione sia ancora bloccata.
Nello scenario illustrativo, il successo si verifica quando sia lo stato dell'OCC che la pagina web concordano sul fatto che l'istanza è di nuovo online. L'esempio ipotetico non presuppone che sia stato effettivamente eseguito alcun comando o che un server reale sia stato riparato.
Se la pagina di manutenzione rimane
OCC afferma che la manutenzione è falsa
Verifica di aver eseguito OCC sulla stessa installazione che gestisce l'URL. Questo è importante in caso di implementazione con bilanciamento del carico, host Docker con più container o server con directory Nextcloud vecchie e nuove affiancate. Controlla il percorso effettivo della directory principale o del container ed esegui una query sull'istanza associata all'URL interessato. Se ogni nodo web ha una propria configurazione, verifica che tutti i nodi condividano la configurazione e il database previsti.
Se l'istanza corretta segnala che la manutenzione è disabilitata, confronta la pagina proveniente dal server di origine con l'URL pubblico. Un proxy inverso o una cache potrebbero fornire una risposta obsoleta. Cancella o ignora tale cache solo dopo aver verificato quale livello ha restituito la pagina di manutenzione.
OCC non può essere eseguito o restituisce un errore PHP
Verifica che il comando utilizzi la versione di PHP CLI e le estensioni necessarie compatibili con l'installazione web. Nextcloud segnala che APCu è disabilitato per impostazione predefinita per PHP CLI e può causare errori OCC quando APCu è configurato come cache locale. Il manuale documenta come abilitarlo apc.enable_clinella configurazione di PHP CLI o aggiungerlo --define apc.enable_cli=1al comando PHP quando necessario.
sudo -E -u www-data php --define apc.enable_cli=1 occ status
Utilizzare questa soluzione solo se l'errore indica un problema con la CLI di APCu; non è una soluzione generica per tutti gli errori PHP. Verificare inoltre che il comando venga eseguito con l'utente web corretto e dalla directory di installazione corretta.
L'aggiornamento del database è ancora necessario
Non forzare la disattivazione del flag di manutenzione per nascondere questo stato. Ricontrolla l'output e i log dell'aggiornamento, verifica che sia installata la versione corretta del codice Nextcloud e completa la procedura di aggiornamento supportata per il tuo tipo di installazione. Consulta i documenti di riferimento ufficiali del sistema OCC e dei comandi di manutenzionemaintenance:mode , statuse l'aggiornamento da riga di comando.
Mantenere sotto controllo la finestra di manutenzione.
Disabilitando la modalità di manutenzione, gli utenti possono nuovamente accedere all'istanza; pertanto, prima di procedere, verificare che l'aggiornamento del database e l'eventuale sostituzione del codice siano stati completati. Evitare di eliminare manualmente i file di aggiornamento o di modificare l'impostazione di manutenzione nel file di configurazione come prima soluzione; in questo modo, si rischia di mascherare il problema senza completare l'operazione che ha attivato la modalità.
Per l'ipotetico ufficio, la decisione più sicura è semplice: verificare la corretta installazione, controllare lo stato, completare eventuali aggiornamenti necessari, quindi eseguire maintenance:mode --offe verificare sia OCC che il browser. Se l'aggiornamento non può essere completato correttamente, lasciare attiva la modalità di manutenzione e risolvere i problemi consultando il registro di aggiornamento o la procedura di ripristino specifica dell'installazione.