Bezpieczne usuwanie zablokowanego trybu konserwacji NextCloud za pomocą OCC

Jeśli Nextcloud nadal wyświetla komunikat „tryb konserwacji” po aktualizacji lub zadaniu konserwacyjnym, najpierw sprawdź, czy aktualizacja bazy danych została zakończona. Po occ statuswyświetleniu komunikatu needsDbUpgrade: falseuruchom program occ maintenance:mode --offjako użytkownik serwera WWW w odpowiedniej instalacji Nextcloud. Jeśli komunikat się pojawi true, zakończ działanie occ upgradeprzed ponownym otwarciem witryny.

Wyłączenie flagi przywraca logowanie, ale nie naprawia nieudanej aktualizacji. Celem jest ponowne uruchomienie instancji z włączoną flagą konserwacji i zweryfikowanym stanem aktualizacji.

1. Sprawdź instancję przed zmianą jej stanu

Połącz się z hostem lub kontenerem obsługującym adres URL Nextcloud, którego dotyczy problem. W przypadku ręcznej instalacji systemu Linux przejdź do katalogu Nextcloud (często /var/www/nextcloud) i sprawdź status jako użytkownik HTTP:

cd /var/www/nextcloud
sudo -E -u www-data php occ status

Wyszukaj maintenancei needsDbUpgrade. Typowy stan, w którym można bezpiecznie wyłączyć, maintenance: trueto needsDbUpgrade: false. Jeśli parametr konserwacji jest już fałszywy, przeglądarka może wyświetlać nieaktualną stronę lub przechodzić do innego zaplecza. Jeśli needsDbUpgradejest prawdziwy, nie wyłączaj jeszcze trybu konserwacji.

Ilustracyjny terminal pokazujący status occ z wartością „prawda” dla konserwacji i wartością „fałsz” dla needsDbUpgrade
Przykład statusu pokazuje, że konserwacja jest włączona, a żadna aktualizacja bazy danych nie jest w toku. W takim stanie wyłączenie trybu konserwacji jest zwykle właściwe.

Nextcloud wymaga, aby OCC działało jako użytkownik HTTP, aby własność plików pozostała spójna. W Debianie lub Ubuntu zazwyczaj jest to www-data; inne dystrybucje mogą używać apache, http, lub wwwrun. Sprawdź konto usługi swojej instalacji przed zastąpieniem użytkownika w poleceniu. Aktualna dokumentacja Nextcloud OCC zawiera listę różnic użytkowników i polecenie status.

2. Wyłącz tryb konserwacji za pomocą OCC

W przypadku instalacji archiwum lub pakietu uruchom polecenie z katalogu zawierającego właściwy occskrypt:

sudo -E -u www-data php occ maintenance:mode --off

Polecenie powinno zgłosić, że tryb konserwacji jest wyłączony. --offOpcja ta zmienia stan konserwacji; nie uruchamia migracji, nie naprawia uprawnień ani nie cofa przerwanej zamiany plików.

Przykładowe polecenie terminala sudo -E -u www-data php occ maintenance:mode --off
Jest to polecenie OCC dla standardowej instalacji, gdy aktualizacja jest zakończona, a polecenie jest uruchamiane w aktywnym katalogu Nextcloud.

Użyj wrappera pasującego do Twojej instalacji. W przypadku oficjalnego obrazu Nextcloud Docker, projekt dokumentuje zarówno docker execobraz, jak i przykłady Docker Compose. Zastąp przykładową nazwę kontenera lub usługi swoją własną:

# 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
Ilustrujące polecenie Docker Compose umożliwiające wyłączenie trybu konserwacji Nextcloud jako www-data
W Docker Compose uruchom OCC w usłudze Nextcloud jako www-data, używając nazwy swojej usługi Compose zamiast przykładowej nazwy app.

W przypadku Nextcloud Snap należy użyć jego opakowania OCC po stronie hosta zamiast wchodzić do wewnętrznych katalogów snap:

sudo nextcloud.occ maintenance:mode --off

Informacje dotyczące projektu Snap, które /snap/bin/nextcloud.occmogą być potrzebne, jeśli ten katalog nie znajduje się w ścieżce PATH powłoki, znajdują się w instrukcjach trybu konserwacji dla Snap . Oficjalny plik README obrazu Dockera Nextcloud dokumentuje wzorzec poleceń kontenera.

3. Jeśli aktualizacja jest nadal w toku, najpierw ją zakończ

W raportach o stanie needsDbUpgrade: true, Nextcloud sygnalizuje, że migracja kodu i bazy danych nie jest zsynchronizowana. Dzieje się tak zazwyczaj po tym, jak program aktualizujący zastąpił kod, ale faza migracji nie została zakończona. W takim stanie może być dostępny ograniczony zestaw poleceń OCC, a tryb konserwacji może być celowo pozostawiony włączony, aby uniemożliwić użytkownikom dostęp do aktualizacji.

Użyj ścieżki aktualizacji dla swojego typu instalacji i sprawdź błąd programu aktualizującego przed kontynuowaniem. W przypadku standardowej instalacji opartej na archiwum, po potwierdzeniu obecności odpowiedniej wersji kodu Nextcloud i utworzeniu nowej kopii zapasowej bazy danych oraz plików i konfiguracji (jeśli jeszcze jej nie posiadasz), uruchom:

sudo -E -u www-data php occ upgrade

Pozwól poleceniu dokończyć działanie i rozwiązać wszelkie zgłoszone błędy. Nie przełączaj wielokrotnie trybu konserwacji, aby ominąć błąd migracji. Dokumentacja aktualizacji Nextcloud wyjaśnia, że ​​migracja bazy danych następuje po wymianie kodu serwera i zaleca wykonanie nowej kopii zapasowej przed aktualizacją. Docker, Snap i pakiety zarządzane mogą mieć własne procedury aktualizacji; skorzystaj z tych instrukcji, jeśli różnią się one od przykładu opartego na archiwum.

Gdy aktualizacja zakończy się pomyślnie i status nie będzie już wskazywał na oczekującą aktualizację bazy danych, uruchom odpowiednie maintenance:mode --offpolecenie z powyższej listy. Unikaj edycji config.phplub używania bezpośredniej aktualizacji bazy danych jako skrótu. Jeśli OCC nie może zapisać ustawienia, sprawdź, czy wybrano prawidłową instalację i użytkownika HTTP, a także sprawdź ewentualne błędy w polityce konfiguracji „tylko do odczytu” lub uprawnieniach do systemu plików przed zmianą uprawnień.

4. Sprawdź flagę i witrynę na żywo

Uruchom ponownie status, używając tej samej ścieżki instalacji, kontenera i użytkownika:

sudo -E -u www-data php occ status

Potwierdź oba maintenance: falsei needsDbUpgrade: false. W Dockerze lub Snap powtórz sprawdzanie za pomocą tego samego wrappera, którego użyto do wyłączenia flagi. Polecenie Nextcloud status dokumentuje te pola; jego czytelna dla maszyny forma to occ status --output=json_pretty.

Ilustrujący wynik statusu occ pokazujący, że konserwacja jest fałszywa, a needsDbUpgrade fałszywa
Pomyślna weryfikacja pokazuje, że tryb konserwacji jest wyłączony i nie ma żadnych oczekujących uaktualnień bazy danych. Ten przykład nie pochodzi z serwera produkcyjnego.

Następnie przeładuj witrynę w nowej karcie przeglądarki i przetestuj normalne logowanie i listę plików. Nextcloud zauważa, że ​​użytkownicy zalogowani przed trybem konserwacji mogą potrzebować odświeżyć przeglądarkę po powrocie serwera do trybu online. Jeśli OCC zgłasza błąd konserwacji, ale witryna nadal wyświetla stronę konserwacji, sprawdź, czy nazwa hosta lub trasa modułu równoważenia obciążenia prowadzą do tej samej instancji, którą zmieniłeś; w przypadku wielu kontenerów lub węzłów inny serwer zaplecza może nadal znajdować się w trybie konserwacji.

Skuteczna naprawa to zatem coś więcej niż tylko odpowiedź na polecenie „disabled”: status OCC musi pokazywać, że obie flagi są puste, a docelowy publiczny adres URL musi obsługiwać działającą instancję. Jeśli flaga aktualizacji pozostaje aktywna lub polecenie migracji się nie powiedzie, należy zablokować użytkownikom dostęp i rozwiązać problem z aktualizacją przed ponownym uruchomieniem NextCloud.

Zostaw komentarz

Bezpieczne usuwanie zablokowanego trybu konserwacji NextCloud za pomocą OCC

Bezpieczne usuwanie zablokowanego trybu konserwacji NextCloud za pomocą OCC

Użyj OCC, aby przywrócić dostęp do Nextcloud, sprawdzić stan migracji bazy danych i wybrać odpowiednie polecenie dla instalacji archiwum, Docker lub Snap.

Skonfiguruj Nextcloud LDAP i logowanie do Active Directory

Połącz Nextcloud z LDAP lub Active Directory, ogranicz dostęp za pomocą filtrów użytkowników i grup oraz zweryfikuj bezpieczne uwierzytelnianie przed wdrożeniem.

Wymagaj uwierzytelniania dwuskładnikowego dla użytkowników Nextcloud

Włącz obsługiwanego dostawcę 2FA, przygotuj odzyskiwanie konta, a następnie wymagaj uwierzytelniania dwuskładnikowego dla wszystkich lub wybranych grup Nextcloud.

Chroń dokumenty Collabora CODE w stanie spoczynku dzięki szyfrowaniu pamięci masowej

Zabezpiecz pliki edytowane w Collabora CODE poprzez szyfrowanie warstwy pamięci masowej, ochronę danych tymczasowych oraz weryfikację szyfrowania i odzyskiwania.

Uruchomienie kodu Collabora na architekturze ARM64 z poprawnym obrazem

Uruchomienie kodu Collabora na architekturze ARM64 z poprawnym obrazem

Sprawdź architekturę hosta, upewnij się, że znacznik CODE publikuje ARM64, usuń wymuszone ustawienia AMD64 i oddziel błędy obrazu od problemów z uprawnieniami lub pamięcią.

Połącz Collabora Online z ownCloud Infinite Scale

Skonfiguruj połączenie WOPI między Collabora Online i ownCloud Infinite Scale, skonfiguruj odpowiednie adresy URL usług i sprawdź, czy zmiany w dokumencie zostały zapisane.

Blokowanie eksportu plików w Collabora CODE przez WOPI

Aby zapobiec eksportowaniu dokumentów w Collabora Online CODE, ustaw uprawnienie WOPI DisableExport, a następnie sprawdź, czy host i edytor je wymuszają.

Postaw Collabora na Nginx bez naruszania WebSockets

Postaw Collabora na Nginx bez naruszania WebSockets

Skonfiguruj zakończenie protokołu Nginx TLS, trasy Collabora i nagłówki WebSocket, a następnie przetestuj publiczne punkty końcowe przed otwarciem rzeczywistych dokumentów.

Zatrzymaj sesje edycji KODU, aby nie kończyły się po 10 minutach

Prześledź 10-minutowe rozłączenie CODE z serwerem proxy, modułem równoważenia obciążenia lub ścieżką WebSocket, a następnie popraw limit czasu i sprawdź, czy sesja pozostaje połączona.

Wdrażanie Collabora CODE na Kubernetes z Helm

Zainstaluj oficjalną tabelę Collabora Helm, skonfiguruj dostęp do WOPI i powinowactwo wejściowe, a następnie zweryfikuj wdrożenie bez typowych błędów konfiguracji.