Миграция Nextcloud на другой сервер

В этой статье описывается процесс миграции Nextcloud на другой сервер.

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

В зависимости от размера экземпляра Nextcloud миграция может занять несколько часов. Предполагается, что пользователи обращаются к Nextcloud через виртуальное имя хоста (CNAME-запись в DNS), которое можно перенаправить на новое расположение. Также предполагается, что после миграции способ аутентификации (например, LDAP) останется прежним.

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

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

Также обратите внимание:

Перед началом миграции необходимо проверить файл config/config.php на исходном сервере и определить, какие дополнительные сервисы на нем подняты, например:

  • Redis или Memcached (для кэширования/сессий);
  • внешнее объектное хранилище (S3 и т. п.);
  • LDAP;
  • настройки почтового сервера;
  • системы полнотекстового поиска (Elasticsearch и т. п.).

Необходимо установить и настроить те же сервисы на новом сервере до копирования файлов Nextcloud. Иначе при запуске Nextcloud могут возникнуть ошибки вроде «Redis server went away» или ошибки подключения.

На исходной машине остановите Nextcloud. Сначала включите режим обслуживания. Подождите 6–7 минут, чтобы все клиенты синхронизации получили информацию о том, что сервер находится в режиме обслуживания, после чего остановите приложение и/или веб-сервер, обслуживающий Nextcloud.

Создайте дамп базы данных и скопируйте его на новую машину. Затем импортируйте его в базу данных на новой машине.

Скопируйте на новую машину все файлы исходного Nextcloud: программные файлы Nextcloud, файлы данных, журналы и файлы конфигурации. У файлов данных должны сохраниться исходные временные метки (например, для этого можно использовать rsync с параметром -t), иначе после миграции клиенты повторно загрузят все файлы.

В зависимости от способа первоначальной установки и используемой ОС файлы могут находиться в разных местах. На новой системе выберите соответствующие каталоги. Если какие-либо пути изменяются, обязательно скорректируйте их в файле config.php

Имейте в виду, что этот этап может занять несколько часов в зависимости от размера вашей установки.

!!! Изменение расположения каталога данных может привести к нарушению связей в базе данных и не допустимо.

После копирования config/config.php на новую машину перед запуском Nextcloud проверьте и обновите все параметры, зависящие от конкретного сервера. Как минимум проверьте следующее:

  • datadirectory — по возможности сохраните тот же путь, что и на исходном сервере. Изменение пути к каталогу данных требует обновления базы данных и настоятельно не рекомендуется.
  • dbhostdbnamedbuserdbpassword — обновите эти значения, если на новом сервере используется другой сервер базы данных или другие учётные данные.
  • trusted_domains — добавьте или замените имя хоста либо IP-адрес нового сервера.
  • overwrite.cli.urloverwritehostoverwriteprotocoloverwritewebroot — измените в соответствии с URL нового сервера и конфигурацией обратного прокси, если он используется.
  • memcache.localmemcache.distributedmemcache.locking и соответствующие параметры подключения — обновите их, если на новой машине изменился адрес сервера кэширования или хранения сессий. В зависимости от используемой системы проверьте redis или redis.cluster (для Redis / Redis Cluster), либо memcached_servers (для Memcached).
  • objectstore — если используется внешнее объектное хранилище (S3, Swift и т. п.), убедитесь, что endpoint, бакет и учётные данные по-прежнему корректны и доступны с нового сервера.
  • mail_smtphostmail_smtpport — измените, если на новом сервере используется другой SMTP relay.
  • logfile — измените, если на новом сервере используется другой путь к файлу журнала.
  • tempdirectory — если указан собственный путь, убедитесь, что соответствующий каталог существует на новом сервере и доступен для записи.
  • serverid — если параметр задан, сохраните прежнее значение. Он идентифицирует сервер в конфигурациях с несколькими PHP-серверами и не должен изменяться. Если значение для каждого сервера переопределяется переменной окружения NC_serverid, настройте такое же переопределение на новом сервере.

Значения secret и instanceid генерируются один раз во время установки и связаны со всеми зашифрованными данными и пользовательскими сессиями. Не изменяйте и не генерируйте их заново. Их необходимо скопировать из исходного config.php.

Сохранение устаревших или неверных значений — особенно учётных данных базы данных или datadirectory — приведёт к ошибкам запуска или повреждению данных.

Проверьте файл config.php исходного Nextcloud и выясните, задан ли параметр data-fingerprint непустым значением. Если это так, обязательно выполните команду maintenance:data-fingerprint.

Пока Nextcloud всё ещё находится в режиме обслуживания и до изменения CNAME-записи в DNS запустите на новой машине базу данных и веб-сервер, после чего откройте новый Nextcloud в браузере.

Убедитесь, что:

  • отображается сообщение о режиме обслуживания;
  • записи появляются как в журнале веб-сервера, так и в журнале Nextcloud;
  • сообщения об ошибках отсутствуют.

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

Измените CNAME-запись в DNS так, чтобы пользователи направлялись на новый сервер.

  • nextcloud
  • 0 Корисниците го најдоа ова како корисно
Дали Ви помогна овој одговор?

Понудени резултати

Как подсоединить папку по WebDav в Mac OS

Для получения доступа к папке Nextcloud по протоколу WebDav в Mac OS, можно использовать...

Как подсоединить папку Nextcloud по WebDav в мобильных ОС

Заходим в облачное хранилище Nextcloud , нажимаем значок “папочки” в верхней панели и затем...

Как подсоединить папку по WebDav в Windows

Встроенный в ОС Windows webdav клиент является очень чувствительным к SSL сертификату. Поэтому...

Подключение бесплатного сертификата SSL от Let's encrypt к Nextcloud

Данная инструкция описывает подключение сертификата SSL к Nextcloud на базе web сервера apache2....

Как добавить доверенный домен в Nextcloud

Если при попытке зайти на облачное хранилище Nextcloud вы получаете ошибку «отредактируйте...