Acasă
» Cum să
»
Ștergeți în siguranță modul de întreținere Nextcloud blocat cu OCC
Ștergeți în siguranță modul de întreținere Nextcloud blocat cu OCC
Dacă Nextcloud afișează în continuare „mod de întreținere” după o actualizare sau o sarcină de întreținere, verificați mai întâi dacă actualizarea bazei de date este completă. Când occ statusse afișează raportul needsDbUpgrade: false, executați-l occ maintenance:mode --offca utilizator al serverului web în instalarea corectă a Nextcloud; dacă se afișează raportul true, finalizați occ upgradeînainte de a redeschide site-ul.
Dezactivarea semnalizatorului restabilește datele de conectare, dar nu repară o actualizare eșuată. Scopul este de a readuce instanța online, verificând atât semnalizarea de întreținere, cât și starea actualizării.
1. Verificați instanța înainte de a-i schimba starea
Conectați-vă la gazda sau containerul care deservește URL-ul Nextcloud afectat. Pentru o instalare manuală Linux, accesați directorul Nextcloud (adesea /var/www/nextcloud) și verificați starea ca utilizator HTTP:
cd /var/www/nextcloud
sudo -E -u www-data php occ status
Căutați maintenanceși needsDbUpgrade. O stare tipică de dezactivare sigură este maintenance: truecu needsDbUpgrade: false. Dacă maintenance este deja fals, browserul poate afișa o pagină învechită sau poate accesa un alt backend. Dacă needsDbUpgradeeste true, nu dezactivați încă modul de întreținere.
Exemplul de stare arată că întreținerea este activată în timp ce nu este în așteptare nicio actualizare a bazei de date, starea în care dezactivarea modului de întreținere este în mod normal potrivită.
Nextcloud necesită ca OCC să ruleze ca utilizator HTTP, astfel încât proprietatea fișierelor să rămână consistentă. Pe Debian sau Ubuntu, aceasta este de obicei www-data; alte distribuții pot utiliza apache, http, sau wwwrun. Verificați contul de serviciu al instalării înainte de a înlocui utilizatorul într-o comandă. Documentația actuală Nextcloud OCC listează diferențele dintre utilizatori și comanda de stare.
2. Dezactivați modul de întreținere cu OCC
Pentru instalarea unei arhive sau a unui pachet, executați comanda din directorul care conține occscriptul corect:
Comanda ar trebui să raporteze că modul de întreținere este dezactivat. Opțiunea --offmodifică starea de întreținere; nu execută migrări, nu corectează permisiunile și nu anulează o înlocuire de fișier întreruptă.
Aceasta este comanda OCC pentru o instalare standard, după finalizarea actualizării și rularea comenzii în directorul Nextcloud activ.
Folosește wrapper-ul care corespunde instalării tale. Pentru imaginea oficială Nextcloud Docker, proiectul documentează atât docker execexemplele Docker, cât și exemplele Docker Compose. Înlocuiește numele containerului sau serviciului exemplu cu al tă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
În Docker Compose, rulează OCC în cadrul serviciului Nextcloud ca www-data; folosește numele serviciului Compose în loc de numele exemplu app.
Pentru Nextcloud Snap, utilizați wrapper-ul OCC de pe partea gazdei în loc să introduceți directoarele interne ale snap-ului:
3. Dacă o actualizare este încă în așteptare, finalizați-o mai întâi
Când apar rapoarte de stare needsDbUpgrade: true, Nextcloud semnalează că migrarea codului și a bazei de date nu sunt sincronizate. Acest lucru se întâmplă de obicei după ce un program de actualizare a înlocuit codul, dar faza de migrare nu s-a finalizat. În această stare, poate fi disponibil un set limitat de comenzi OCC, iar modul de întreținere poate fi lăsat intenționat activat pentru a împiedica utilizatorii să acceseze programul în timpul actualizării.
Folosește calea de actualizare pentru tipul tău de instalare și verifică eroarea programului de actualizare înainte de a continua. Pentru o instalare standard bazată pe arhivă, după confirmarea prezenței versiunii de cod Nextcloud dorite și realizarea unei copii de rezervă noi a bazei de date și a fișierelor/configurației, dacă nu ai deja una, rulează:
sudo -E -u www-data php occ upgrade
Permiteți comanda să se finalizeze și să rezolve orice eroare raportată. Nu comutați în mod repetat modul de întreținere pentru a ocoli o eroare de migrare. Documentația de actualizare Nextcloud explică faptul că migrarea bazei de date urmează înlocuirii codului serverului și recomandă o copie de rezervă nouă înainte de o actualizare. Pachetele Docker, Snap și cele gestionate pot avea propriile proceduri de actualizare; utilizați aceste instrucțiuni dacă acestea diferă de exemplul bazat pe arhivă.
După ce actualizarea s-a finalizat cu succes și statusul nu mai raportează o actualizare a bazei de date în așteptare, executați maintenance:mode --offcomanda corespunzătoare de mai sus. Evitați editarea config.phpsau utilizarea unei actualizări directe a bazei de date ca scurtătură. Dacă OCC nu poate scrie setarea, verificați dacă ați selectat instalarea și utilizatorul HTTP corecte și inspectați orice eroare de politică de configurare doar pentru citire sau permisiune a sistemului de fișiere înainte de a modifica permisiunile.
4. Verificați steagul și site-ul live
Executați din nou status folosind aceeași cale de instalare, același container și același utilizator:
sudo -E -u www-data php occ status
Confirmați ambele maintenance: falseși needsDbUpgrade: false. În Docker sau Snap, repetați verificarea prin același wrapper folosit pentru a dezactiva steagul. Comanda Nextcloud status documentează aceste câmpuri; forma sa lizibilă de mașină este occ status --output=json_pretty.
Verificarea cu succes arată modul de întreținere dezactivat și nicio actualizare a bazei de date în așteptare; acest exemplu nu este generat de un server live.
Apoi reîncărcați site-ul într-o filă nouă de browser și testați o autentificare normală și o listă de fișiere. Nextcloud notează că utilizatorii care erau conectați înainte de modul de întreținere ar putea fi nevoiți să își reîmprospăteze browserul după ce serverul revine online. Dacă OCC raportează întreținerea ca fiind falsă, dar site-ul afișează în continuare pagina de întreținere, verificați dacă numele de gazdă sau echilibratorul de încărcare direcționează către aceeași instanță pe care ați modificat-o; cu mai multe containere sau noduri, un alt backend ar putea fi încă în modul de întreținere.
Prin urmare, o remediere reușită este mai mult decât un răspuns la comandă „dezactivat”: starea OCC trebuie să afișeze ambele steaguri clare, iar adresa URL publică dorită trebuie să deservească instanța funcțională. Dacă steagul de actualizare rămâne activ sau comanda de migrare eșuează, țineți utilizatorii la distanță și rezolvați eroarea de actualizare înainte de a redeschide Nextcloud.