Terminați o actualizare Nextcloud, dar toată lumea vede în continuare pagina de întreținere. Sau o actualizare a fost întreruptă și site-ul nu a revenit niciodată online. Comanda OCC pentru dezactivarea modului de întreținere este scurtă, dar rularea ei înainte de a verifica starea actualizării poate expune o instalare neterminată. Începeți prin a confirma ce instanță Nextcloud administrați și dacă este încă necesară o actualizare a bazei de date.
Exemplu ilustrativ: Imaginați-vă un birou mic care rulează Nextcloud pe Ubuntu. O actualizare programată a fost întreruptă după ce au fost implementate fișiere de cod noi, iar pagina web încă spune că serverul este în modul de întreținere. Acest exemplu este ipotetic; este un fir de discuție pentru aplicarea verificărilor de mai jos, nu un raport al unui incident sau test real.
Ce înseamnă modul de întreținere
Modul de întreținere Nextcloud blochează accesul normal al utilizatorilor în timp ce un administrator efectuează lucrări precum o actualizare sau o copie de rezervă. Este o stare la nivel de server, așa că utilizatorii pot vedea o notificare de întreținere chiar și atunci când serverul web în sine rulează. Manualul de administrare actual al Nextcloud documentează comanda OCC pentru activarea sau dezactivarea acestui mod și menționează că utilizatorii pot fi nevoiți să reîmprospăteze browserul după ce acesta este dezactivat.
Pentru biroul ilustrativ, pagina de întreținere nu îi spune administratorului dacă actualizarea s-a finalizat. Acesta trebuie să interogheze Nextcloud înainte de a schimba modul.
Pasul 1: Confirmați tipul de instalare și calea OCC
Exemplele de comenzi de aici sunt pentru o instalare convențională Nextcloud bazată pe arhivă pe Ubuntu, cu codul din /var/www/nextcloudși contul de server web numit www-data. Documentele Nextcloud care occse află în directorul de instalare și trebuie rulate ca utilizator HTTP; pe Debian și Ubuntu, acel utilizator este în mod normal www-data.
Pentru această configurație standard, introduceți directorul de instalare:
cd /var/www/nextcloud
Dacă fișierele Nextcloud se află în altă parte, utilizați calea respectivă. Snap, Docker, dispozitivele și găzduirea gestionată utilizează încapsulatoare de comenzi sau machete de sistem de fișiere diferite. Nu rulați comanda host pe o instalare de container și nu presupuneți că calea de arhivă se aplică acelor implementări. Urmați instrucțiunile de actualizare pentru metoda de instalare, așa cum este descris în ghidul oficial de actualizare Nextcloud .
În exemplul de la Office, administratorul verifică notele de implementare și confirmă că aceasta este o instalare de arhivă înainte de a rula OCC.
Pasul 2: Verificați starea Nextcloud înainte de a dezactiva mentenanța
Rulați OCC ca și cont de server web, astfel încât fișierele și configurația să își păstreze proprietatea așteptată:
sudo -E -u www-data php occ status
Uită-te la câmpurile ` maintenanceand` needsDbUpgrade. Versiunile actuale acceptă și un cod de ieșire din status:
sudo -E -u www-data php occ status -e
echo $?
Codurile de ieșire documentate sunt utile atunci când ieșirea este verificată de un script: 0indică o funcționare normală, 1înseamnă că modul de întreținere este activat și 2înseamnă că occ upgradeeste necesar. De asemenea, ieșirea de stare simplă ar trebui revizuită; nu utilizați doar codul de ieșire pentru a decide dacă se redeschide site-ul.
Pentru serverul ipotetic de birou, dacă needsDbUpgradeeste adevărat sau status -ereturnează 2, următorul pas corect este finalizarea actualizării, nu pur și simplu dezactivarea modului de întreținere.
Pasul 3: Finalizați mai întâi o actualizare incompletă
Dacă o actualizare a codului Nextcloud a fost implementată intenționat și OCC raportează că este necesară actualizarea bazei de date, faceți sau verificați o copie de rezervă actuală a bazei de date, configurației și datelor înainte de a continua. Apoi, executați comanda documentată din directorul de instalare:
sudo -E -u www-data php occ upgrade
Citiți ieșirea comenzii și așteptați finalizarea acesteia. Nu o întrerupeți deoarece pagina web apare neschimbată în timp ce migrările rulează. Instrumentul de actualizare încorporat poate lăsa modul de întreținere activat atunci când înlocuirea codului occ upgradeeșuează. Dacă instrumentul de actualizare în sine nu a finalizat înlocuirea codului, urmați jurnalul său și reluați procesul de actualizare corespunzător pentru instalarea dvs., în loc să treceți direct la . Instrucțiunile instrumentului de actualizare încorporatmaintenance:mode --off al Nextcloud explică fazele de actualizare și identifică jurnalul de actualizare ca o resursă de diagnosticare.
În exemplu, administratorul de birou ar executa comanda doar occ upgradedacă statusul indică faptul că migrarea bazei de date este în așteptare și că noul cod așteptat este deja instalat. Dacă comanda raportează o eroare, serverul rămâne indisponibil și investighează mai întâi eroarea respectivă.
Pasul 4: Dezactivați modul de întreținere cu OCC
Când actualizarea este completă și statusul nu mai indică faptul că este necesară o actualizare a bazei de date, dezactivați modul de întreținere folosind comanda încorporată a Nextcloud:
sudo -E -u www-data php occ maintenance:mode --off
O comandă executată cu succes raportează că modul de întreținere a fost dezactivat. Aceasta este modalitatea acceptată de a schimba modul pentru o instalare standard; de asemenea, menține schimbarea stării în cadrul interfeței de comandă Nextcloud, în loc să se bazeze pe modificări manuale ale fișierului config.php.
Administratorul de birou din exemplu execută acum această comandă numai după finalizarea migrării. Dacă nu era în curs nicio actualizare și starea indica faptul că instalarea era altfel pregătită, aceeași comandă poate șterge un semnalizator de întreținere rămas activ după întreținerea planificată.
Pasul 5: Verificați starea și interfața web
Verificați din nou starea:
sudo -E -u www-data php occ status
sudo -E -u www-data php occ status -e
Pentru o instalare gata de utilizare, așteptați-vă la maintenance: false, needsDbUpgrade: false, și un cod de ieșire normal de 0. Apoi, deschideți site-ul dintr-o fereastră nouă de browser privat și conectați-vă cu un cont de administrator. Rugați un utilizator obișnuit să își reîmprospăteze browserul înainte de a presupune că sesiunea sa este încă blocată.
În scenariul ilustrativ, succesul înseamnă că atât starea OCC, cât și pagina web sunt de acord că instanța este din nou online. Exemplul ipotetic nu susține că vreo comandă a fost executată efectiv sau că un server real a fost reparat.
Dacă pagina de întreținere rămâne
OCC spune că întreținerea este falsă
Confirmați că ați rulat OCC pe aceeași instalare care deservește adresa URL. Acest lucru este important pe o implementare cu sarcină echilibrată, o gazdă Docker cu mai multe containere sau un server cu directoare Nextcloud vechi și noi, alăturate. Verificați rădăcina documentului sau calea containerului și interogați instanța din spatele adresei URL afectate. Dacă fiecare nod web are propria configurație, confirmați că toate nodurile partajează configurația și baza de date dorite.
Dacă instanța corectă raportează că întreținerea este dezactivată, comparați pagina de la originea serverului cu adresa URL publică. Este posibil ca un proxy invers sau o memorie cache să ofere un răspuns învechit. Ștergeți sau ocoliți memoria cache numai după ce verificați ce strat a returnat pagina de întreținere.
OCC nu poate rula sau returnează o eroare PHP
Verificați dacă comanda utilizează versiunea CLI PHP și extensiile necesare compatibile cu instalarea web. Nextcloud notează că APCu este dezactivat în mod implicit pentru CLI PHP și poate cauza erori OCC atunci când APCu este configurat ca o memorie cache locală. Manualul său documentează activarea apc.enable_cliîn configurația CLI PHP sau adăugarea --define apc.enable_cli=1la comanda PHP atunci când este cazul:
sudo -E -u www-data php --define apc.enable_cli=1 occ status
Folosește această funcție doar atunci când eroarea indică o problemă legată de interfața CLI a APCu; nu este o soluție generală pentru toate erorile PHP. De asemenea, verifică dacă comanda rulează ca utilizator web corect și din directorul de instalare corect.
Actualizarea bazei de date este încă necesară
Nu forțați dezactivarea semnalizatorului de întreținere pentru a ascunde această stare. Verificați din nou ieșirea și jurnalele programului de actualizare, verificați dacă este instalată versiunea corectă de cod Nextcloud și finalizați procedura de actualizare acceptată pentru tipul dvs. de instalare. Documentele oficiale de referință pentru sistemul OCC și comenzile de întrețineremaintenance:mode , statusși actualizarea din linia de comandă.
Mențineți fereastra de întreținere controlată
Dezactivarea modului de întreținere permite utilizatorilor să revină în instanță, așadar confirmați mai întâi că actualizarea bazei de date și orice înlocuire necesară a codului sunt finalizate. Evitați ștergerea manuală a fișierelor de actualizare sau editarea setării de întreținere din fișierul de configurare ca prim răspuns; acest lucru poate ascunde simptomul fără a finaliza lucrarea care a declanșat modul.
Pentru biroul ipotetic, decizia sigură este simplă: verificați instalarea corectă, inspectați starea, finalizați orice actualizare necesară, apoi rulați maintenance:mode --offși verificați atât OCC, cât și browserul. Dacă actualizarea nu poate fi finalizată fără probleme, lăsați modul de întreținere activat și depanați din jurnalul de actualizare sau din procedura de recuperare specifică instalării.