Безопасно выведите из зависшего режима обслуживания Nextcloud с помощью OCC.

Если после обновления или выполнения задачи обслуживания Nextcloud по-прежнему отображает «режим обслуживания», сначала проверьте, завершено ли обновление базы данных. Если occ statusотображается сообщение об ошибке needsDbUpgrade: false, запустите программу occ maintenance:mode --offот имени пользователя веб-сервера в соответствующей установке Nextcloud; если отображается сообщение об ошибке true, завершите процесс occ upgradeперед повторным открытием сайта.

Отключение этого флага восстанавливает возможность входа в систему, но не исправляет неудачное обновление. Цель состоит в том, чтобы вернуть экземпляр в онлайн-режим с подтвержденным состоянием флага обслуживания и обновления.

1. Перед изменением состояния экземпляра проверьте его состояние.

Подключитесь к хосту или контейнеру, обслуживающему соответствующий URL-адрес Nextcloud. При ручной установке в Linux перейдите в каталог Nextcloud (часто это /var/www/nextcloud) и проверьте статус от имени пользователя HTTP:

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

Найдите значения maintenanceи needsDbUpgrade. Типичное состояние, при котором можно безопасно отключить режим обслуживания, — maintenance: trueэто needsDbUpgrade: false. Если значение параметра maintenance уже равно false, браузер может отображать устаревшую страницу или обращаться к другому бэкэнду. Если needsDbUpgradeзначение параметра true, пока не отключайте режим обслуживания.

Наглядное отображение состояния терминала при включенном режиме обслуживания (treanning) и отключенном режиме обновления базы данных (nextDbUpgrade).
В приведенном примере состояния показано, что режим обслуживания включен, но обновление базы данных не ожидает завершения, — в этом состоянии обычно целесообразно отключить режим обслуживания.

Для работы Nextcloud OCC от имени пользователя HTTP необходимо, чтобы права собственности на файлы оставались неизменными. В Debian или Ubuntu это обычно www-data; в других дистрибутивах могут использоваться apache, http, или wwwrun. Перед заменой пользователя в команде проверьте учетную запись службы вашей установки. В текущей документации Nextcloud OCC перечислены различия в пользователях и команда статуса.

2. Отключите режим технического обслуживания с помощью OCC.

Для установки архива или пакета выполните команду из каталога, содержащего нужный occскрипт:

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

Команда должна сообщать, что режим обслуживания отключен. Эта --offопция изменяет состояние обслуживания; она не выполняет миграции, не исправляет права доступа и не отменяет прерванную замену файлов.

Пример команды терминала: sudo -E -u www-data php occ maintenance:mode --off
Это команда OCC для стандартной установки после завершения обновления, когда команда выполняется для активного каталога Nextcloud.

Используйте оболочку, соответствующую вашей установке. Для официального образа Docker Nextcloud в документации проекта описаны как примеры использования docker execDocker Compose, так и примеры использования Docker Compose. Замените имя контейнера или службы в примере на ваше:

# 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
Пример команды Docker Compose для отключения режима обслуживания Nextcloud для пользователя www-data.
В Docker Compose запустите OCC внутри сервиса Nextcloud от имени пользователя www-data; используйте имя вашего сервиса Compose вместо примера имени app.

Для Snap-пакета Nextcloud используйте его оболочку OCC на стороне хоста, а не переходите во внутренние каталоги Snap-пакета:

sudo nextcloud.occ maintenance:mode --off

В описании проекта Snap отмечается, что это /snap/bin/nextcloud.occможет потребоваться, если этот каталог отсутствует в переменной PATH оболочки. См. инструкции по режиму обслуживания Snap . В официальном файле README образа Docker Nextcloud описана схема команд контейнера.

3. Если обновление еще не завершено, сначала завершите его.

Когда needsDbUpgrade: trueNextcloud выдает сообщение о состоянии, это означает, что миграция кода и базы данных не синхронизирована. Это обычно происходит после того, как программа обновления заменила код, но этап миграции не завершился. В таком состоянии может быть доступен ограниченный набор команд OCC, а режим обслуживания может быть намеренно оставлен включенным, чтобы пользователи не могли участвовать в обновлении.

Используйте путь обновления, соответствующий вашему типу установки, и перед продолжением просмотрите сообщение об ошибке, появившееся в процессе обновления. Для стандартной установки на основе архива, после подтверждения наличия нужной версии кода Nextcloud и создания новой резервной копии базы данных и файлов/конфигурации (если у вас ее еще нет), выполните следующую команду:

sudo -E -u www-data php occ upgrade

Дождитесь завершения выполнения команды и устранения всех выявленных ошибок. Не переключайте режим обслуживания повторно, чтобы обойти ошибку миграции. В документации Nextcloud по обновлению поясняется, что миграция базы данных происходит после замены серверного кода, и рекомендуется создать резервную копию перед обновлением. Для Docker, Snap и управляемых пакетов могут существовать собственные процедуры обновления; используйте эти инструкции, если они отличаются от примера с архивом.

После успешного завершения обновления и исчезновения сообщения о незавершенном обновлении базы данных выполните указанную maintenance:mode --offвыше команду. Избегайте редактирования config.phpили использования прямого обновления базы данных в качестве ярлыка. Если OCC не может записать параметр, убедитесь, что вы выбрали правильную установку и пользователя HTTP, и проверьте наличие ошибок в политике конфигурации только для чтения или в разрешениях файловой системы, прежде чем изменять разрешения.

4. Проверьте флаг и работоспособность сайта.

Повторите проверку состояния, используя тот же путь установки, контейнер и пользователя:

sudo -E -u www-data php occ status

Подтвердите оба maintenance: falseпараметра needsDbUpgrade: false. В Docker или Snap повторите проверку через ту же оболочку, которая использовалась для отключения флага. Команда состояния Nextcloud документирует эти поля; ее машиночитаемый вид — occ status --output=json_pretty.

Иллюстративный вывод состояния occ, показывающий, что maintenance false и needsDbUpgrade false.
Успешная проверка показывает, что режим обслуживания отключен и нет ожидающих обновлений базы данных; этот пример не является результатом работы действующего сервера.

Затем перезагрузите сайт в новой вкладке браузера и проверьте обычный вход в систему и отображение списка файлов. Nextcloud отмечает, что пользователям, которые были авторизованы до перехода в режим технического обслуживания, может потребоваться обновить браузер после возобновления работы сервера. Если OCC сообщает о ложном сообщении о техническом обслуживании, но на сайте по-прежнему отображается страница технического обслуживания, убедитесь, что имя хоста или балансировщик нагрузки перенаправляют на тот же экземпляр, который вы изменили; при наличии нескольких контейнеров или узлов другой бэкэнд может все еще находиться в режиме технического обслуживания.

Таким образом, успешное исправление — это не просто ответ команды «отключено»: статус OCC должен показывать, что оба флага сброшены, а предполагаемый публичный URL-адрес должен обслуживать работающий экземпляр. Если флаг обновления остается в силе или команда миграции завершается с ошибкой, не допускайте пользователей к обновлению и устраните ошибку обновления, прежде чем снова открывать Nextcloud.

Оставить комментарий

Снизьте скачки загрузки ЦП в предварительной версии Nextcloud с помощью запланированной очереди.

Перенесите обработку миниатюр в контролируемый фоновый режим, обрежьте неиспользуемые размеры предварительного просмотра и проверьте очередь, не перегружая сервер Nextcloud.

Переход от «обработки файлов» к синхронизации Nextcloud Desktop Sync

Найдите файл, правило исключения, проблему с подключением или состояние базы данных клиента, препятствующие синхронизации Nextcloud, а затем безопасно проверьте загрузку и скачивание файлов.

Устраните предупреждение Nextcloud OPcache, отрегулировав правильный лимит.

Найдите ограничение на использование PHP OPcache, вызывающее предупреждение Nextcloud, обновите правильную конфигурацию PHP для веб-приложений, безопасно перезапустите систему и проверьте результат.

Подключение Nextcloud к CODE Docker: настройка и компромиссы.

Подключение Nextcloud к CODE Docker: настройка и компромиссы.

Сравните встроенный и основанный на Docker код, затем подключите Collabora Online к Nextcloud через защищенный обратный прокси-сервер HTTPS.

Создайте отказоустойчивый кластер Nextcloud с помощью Galera.

Спланируйте надежное развертывание Nextcloud HA с использованием общего хранилища, блокировок Redis, маршрутизации MariaDB с учетом кворума и практичных проверок отказоустойчивости.

Проводите звонки Nextcloud Talk, если прямая передача медиаданных не работает.

Проводите звонки Nextcloud Talk, если прямая передача медиаданных не работает.

Настройте и проверьте доступность TURN-ретранслятора для Nextcloud Talk, если брандмауэры или ограничительные NAT блокируют прямые вызовы.

Устраните предупреждения о целостности Nextcloud, восстановив правильные файлы.

Используйте отчет о недействительных файлах, чтобы выявить измененный, отсутствующий или лишний код Nextcloud, безопасно восстановить доверенные файлы и проверить результат.

Подключите Gmail или Microsoft 365 к Nextcloud Mail с помощью OAuth2.

Настройте OAuth2 для почты Nextcloud с использованием Gmail или Microsoft 365, проверьте получение и отправку сообщений, а также устраните распространенные ошибки, связанные с согласием и SMTP.

Безопасно выведите из зависшего режима обслуживания Nextcloud с помощью OCC.

Безопасно выведите из зависшего режима обслуживания Nextcloud с помощью OCC.

Используйте OCC для восстановления доступа к Nextcloud, проверки статуса миграции базы данных и выбора правильной команды для установки архивов, Docker или Snap.

Настройка входа в Nextcloud через LDAP и Active Directory.

Подключите Nextcloud к LDAP или Active Directory, ограничьте доступ с помощью фильтров по пользователям и группам и проверьте безопасную аутентификацию перед развертыванием.