Kończysz aktualizację Nextcloud, ale wszyscy nadal widzą stronę konserwacji. Albo aktualizacja została przerwana i witryna nie wróciła do trybu online. Polecenie OCC, które wyłącza tryb konserwacji, jest krótkie, ale jego uruchomienie przed sprawdzeniem stanu aktualizacji może ujawnić niedokończoną instalację. Zacznij od potwierdzenia, którą instancją Nextcloud administrujesz i czy aktualizacja bazy danych jest nadal wymagana.
Przykład ilustrujący: Wyobraź sobie małe biuro z NextCloud na Ubuntu. Zaplanowana aktualizacja została przerwana po wdrożeniu nowych plików kodu, a strona internetowa nadal informuje, że serwer znajduje się w trybie konserwacji. Ten przykład jest hipotetyczny; to wątek służący do przeprowadzania poniższych kontroli, a nie raport z rzeczywistego incydentu lub testu.
Co oznacza tryb konserwacji
Tryb konserwacji Nextcloud blokuje normalny dostęp użytkownika, gdy administrator wykonuje prace takie jak aktualizacja lub tworzenie kopii zapasowej. Jest to stan obejmujący cały serwer, więc użytkownicy mogą zobaczyć powiadomienie o konserwacji nawet wtedy, gdy sam serwer WWW jest uruchomiony. Aktualny podręcznik administratora Nextcloud opisuje polecenie OCC służące do włączania lub wyłączania tego trybu i informuje, że po jego wyłączeniu użytkownicy mogą być zmuszeni do odświeżenia przeglądarki.
W przypadku przykładowego biura, sama strona konserwacji nie informuje administratora, czy aktualizacja się zakończyła. Przed zmianą trybu administrator musi skontaktować się z NextCloud.
Krok 1: Potwierdź typ instalacji i ścieżkę OCC
Poniższe przykłady poleceń dotyczą konwencjonalnej instalacji Nextcloud opartej na archiwum w systemie Ubuntu, z kodem /var/www/nextcloudi kontem serwera WWW o nazwie www-data. Dokumenty Nextcloud occznajdują się w katalogu instalacyjnym i muszą być uruchamiane jako użytkownik HTTP; w systemach Debian i Ubuntu tym użytkownikiem jest zazwyczaj www-data.
W przypadku tego standardowego układu należy wejść do katalogu instalacyjnego:
cd /var/www/nextcloud
Jeśli Twoje pliki Nextcloud znajdują się gdzie indziej, użyj tej konkretnej ścieżki. Snap, Docker, urządzenia i hosting zarządzany używają różnych wrapperów poleceń lub układów systemu plików. Nie uruchamiaj polecenia host w instalacji kontenera ani nie zakładaj, że ścieżka archiwum dotyczy tych wdrożeń. Postępuj zgodnie z instrukcjami aktualizacji dla wybranej metody instalacji, opisanymi w oficjalnym przewodniku aktualizacji Nextcloud .
W przykładzie biurowym administrator sprawdza notatki dotyczące wdrożenia i potwierdza, że jest to instalacja archiwalna przed uruchomieniem OCC.
Krok 2: Sprawdź status NextCloud przed wyłączeniem konserwacji
Uruchom OCC jako konto serwera WWW, aby pliki i konfiguracja zachowały oczekiwanego właściciela:
sudo -E -u www-data php occ status
Spójrz na pola maintenancei needsDbUpgrade. Obecne wersje obsługują również kod wyjścia ze statusu:
sudo -E -u www-data php occ status -e
echo $?
Udokumentowane kody wyjścia są przydatne podczas sprawdzania danych wyjściowych przez skrypt: 0wskazują na normalną pracę, 1oznaczają włączony tryb konserwacji i 2oznaczają occ upgrade, że jest to wymagane. Należy również sprawdzić dane wyjściowe statusu; nie należy używać samego kodu wyjścia do podjęcia decyzji o ponownym otwarciu witryny.
W przypadku hipotetycznego serwera biurowego, jeśli needsDbUpgradewynik jest prawdziwy lub status -ezwraca 2, właściwym kolejnym krokiem jest ukończenie aktualizacji, a nie po prostu wyłączenie trybu konserwacyjnego.
Krok 3: Najpierw zakończ nieukończoną aktualizację
Jeśli aktualizacja kodu Nextcloud została wdrożona celowo, a OCC zgłasza konieczność aktualizacji bazy danych, przed kontynuacją należy wykonać lub zweryfikować aktualną kopię zapasową bazy danych, konfiguracji i danych. Następnie należy uruchomić udokumentowane polecenie z katalogu instalacyjnego:
sudo -E -u www-data php occ upgrade
Przeczytaj dane wyjściowe polecenia i poczekaj na jego zakończenie. Nie przerywaj go, ponieważ strona internetowa pozostaje niezmieniona podczas migracji. Wbudowany aktualizator może pozostawić włączony tryb konserwacji, gdy wymiana kodu lub jego occ upgradeawaria wystąpią. Jeśli sam aktualizator nie zakończył wymiany kodu, postępuj zgodnie z jego logiem i wznów odpowiedni proces aktualizacji dla instalacji, zamiast przechodzić bezpośrednio do . Instrukcje wbudowanego aktualizatoramaintenance:mode --off Nextcloud wyjaśniają fazy aktualizacji i identyfikują log aktualizatora jako zasób diagnostyczny.
W tym przykładzie administrator biura uruchomiłby polecenie tylko occ upgradewtedy, gdyby status wskazywał, że migracja bazy danych nadal trwa, a oczekiwany nowy kod jest już zainstalowany. Jeśli polecenie zgłosi błąd, administrator utrzymuje serwer niedostępnym i najpierw bada ten błąd.
Krok 4: Wyłącz tryb konserwacji za pomocą OCC
Gdy aktualizacja zostanie ukończona i status nie będzie już informował o konieczności aktualizacji bazy danych, wyłącz tryb konserwacji za pomocą wbudowanego polecenia Nextcloud:
sudo -E -u www-data php occ maintenance:mode --off
Pomyślne wykonanie polecenia informuje o wyłączeniu trybu konserwacji. Jest to obsługiwany sposób zmiany trybu w standardowej instalacji; pozwala on również zachować zmianę stanu w interfejsie poleceń NextCloud, zamiast polegać na ręcznej edycji pliku config.php.
Przykładowy administrator biura uruchamia teraz to polecenie dopiero po zakończeniu migracji. Jeśli aktualizacja nie była w toku, a status wskazywał, że instalacja jest gotowa, to samo polecenie może wyczyścić flagę konserwacji pozostawioną po planowanej konserwacji.
Krok 5: Sprawdź stan i interfejs sieciowy
Sprawdź status jeszcze raz:
sudo -E -u www-data php occ status
sudo -E -u www-data php occ status -e
Aby instalacja była gotowa, spodziewaj się maintenance: false, needsDbUpgrade: false, i normalnego kodu wyjścia 0. Następnie otwórz witrynę w nowym oknie przeglądarki prywatnej i zaloguj się na konto administratora. Poproś jednego ze zwykłych użytkowników o odświeżenie przeglądarki, zanim założysz, że jego sesja jest nadal zablokowana.
W przedstawionym scenariuszu sukces oznacza, że zarówno status OCC, jak i strona internetowa potwierdzają, że instancja jest ponownie dostępna. Hipotetyczny przykład nie zakłada, że jakiekolwiek polecenie zostało faktycznie uruchomione ani że rzeczywisty serwer został naprawiony.
Jeśli strona konserwacji pozostanie
OCC twierdzi, że konserwacja jest fałszywa
Upewnij się, że uruchomiłeś OCC na tej samej instalacji, która obsługuje adres URL. Ma to znaczenie w przypadku wdrożenia z równoważeniem obciążenia, hosta Docker z wieloma kontenerami lub serwera ze starymi i nowymi katalogami Nextcloud obok siebie. Sprawdź rzeczywisty katalog główny dokumentów lub ścieżkę kontenera i przeszukaj instancję znajdującą się pod danym adresem URL. Jeśli każdy węzeł sieciowy ma własną konfigurację, upewnij się, że wszystkie węzły współdzielą zamierzoną konfigurację i bazę danych.
Jeśli prawidłowa instancja zgłasza wyłączenie konserwacji, porównaj stronę z serwera źródłowego z publicznym adresem URL. Odwrotny serwer proxy lub pamięć podręczna mogą obsługiwać nieaktualną odpowiedź. Wyczyść lub pomiń pamięć podręczną dopiero po sprawdzeniu, która warstwa zwróciła stronę konserwacji.
OCC nie może działać lub zwraca błąd PHP
Sprawdź, czy polecenie korzysta z wersji PHP CLI i wymaganych rozszerzeń zgodnych z instalacją internetową. Nextcloud informuje, że APCu jest domyślnie wyłączone dla PHP CLI i może powodować błędy OCC, gdy APCu jest skonfigurowane jako lokalna pamięć podręczna. W instrukcji opisano włączanie apc.enable_cliw konfiguracji PHP CLI lub dodawanie --define apc.enable_cli=1do polecenia PHP, gdy jest to konieczne:
sudo -E -u www-data php --define apc.enable_cli=1 occ status
Użyj tego tylko wtedy, gdy błąd wskazuje na problem z interfejsem APCu CLI; nie jest to uniwersalne rozwiązanie dla wszystkich błędów PHP. Sprawdź również, czy polecenie jest uruchamiane jako właściwy użytkownik sieciowy i z właściwego katalogu instalacyjnego.
Aktualizacja bazy danych jest nadal wymagana
Nie należy wymuszać wyłączenia flagi konserwacji, aby ukryć ten status. Sprawdź ponownie dane wyjściowe i logi programu aktualizującego, upewnij się, że zainstalowana jest prawidłowa wersja kodu Nextcloud i wykonaj procedurę aktualizacji obsługiwaną dla Twojego typu instalacji. Oficjalne dokumenty referencyjne systemu OCC i poleceń konserwacyjnychmaintenance:mode , status, oraz aktualizacja z poziomu wiersza poleceń.
Utrzymuj okno konserwacyjne pod kontrolą
Wyłączenie trybu konserwacji umożliwia użytkownikom powrót do instancji, dlatego najpierw należy upewnić się, że aktualizacja bazy danych i wszelkie wymagane zmiany kodu zostały ukończone. Unikaj ręcznego usuwania plików aktualizacji lub edytowania ustawień konserwacji w pliku konfiguracyjnym jako pierwszej reakcji; może to spowodować ukrycie objawu bez ukończenia czynności, które spowodowały włączenie trybu.
W przypadku hipotetycznego biura, bezpieczna decyzja jest prosta: sprawdź poprawność instalacji, sprawdź jej status, zakończ wszelkie wymagane aktualizacje, a następnie uruchom maintenance:mode --offi zweryfikuj zarówno OCC, jak i przeglądarkę. Jeśli aktualizacji nie uda się ukończyć bez problemów, pozostaw włączony tryb konserwacji i rozwiąż problem z poziomu dziennika aktualizacji lub procedury odzyskiwania specyficznej dla danej instalacji.