Статья писалась прямо в процессе миграции.
В ней описан процесс переноса данных и пользователей с одного проекта на другой. Так как NextCloud по сути является форком ownCloud, то особых проблем и сложностей при переносе возникать не будет. Еще очется отметить наличие бесплатных клиентов для популярных платформ.
Начнем с того что создадим бэкап существующего облака. Если у вас облако работает с использованием SQLite, то база скопируется вместе с ядром облака:
user@host:/var/www/# tar cf - ./cloud | pv > /home/user/cloud.tar
Т.к. я использую MySQL нужно забэкапить и ее:
user@host:/var/www/# mysqldump --user=sqluser --password=password basename > /home/user/cloud.sql
Далее проверим удовлетворяет ли наш сервер рекомендуемым требованиям нового облака:
- Red Hat Enterprise Linux 7 / Ubuntu 16.04 LTS
- MySQL/MariaDB
- PHP 7.0 +
- Apache 2.4 with mod_php
Проверить версию PHP и Apache можно следующим образом:
user@host:/var/www/# php -v
user@host:/var/www/# apache2 -v
После того как убедились, что все впорядке приступим к установке нового облака.
Для этого скачаем архив с официального сайта проекта http://nextcloud.com, перейдем в домашний каталог и начнем загрузку:
user@host:/home/user/# wget https://download.nextcloud.com/server/releases/nextcloud-10.0.4.tar.bz2
После того как архив скачается распакуем его:
user@host:/home/user# tar xfv nextcloud-10.0.4.tar.bz2
Далее очищаем папку где лежало облако (помним что у нас есть бэкап):
user@host:/var/www/cloud/html/# rm -rf ./*
И переносим извлеченные из архива файлы в директорию с облаком:
user@host:/var/www/cloud/html/# mv /home/user/nextcloud/* ./
Далее можно переносить данные и настройки облака в новое ядро.
Здесь я допустил, скажем так, косяк, заставивший меня проделывать двойную работу, мне пришлось опять распаковывать архив с бэкапом. Т.к. к моменту миграции у меня еще не много успело накопиться данных, то это заняло не так много времени. Если же у вас многогигабаийтный или терабайтный архив озаботьтесь заранее, чтобы папки
/var/www/cloud/html/config/
и/var/www/cloud/html/data/
были доступны вне архива.
Копируем папки с конфигом и данными из старого в новое:
user@host:/home/user/cloud/html/# mv ./config/ /var/www/cloud/html/config/
user@host:/home/user/cloud/html/# mv ./data/ /var/www/cloud/html/data/
Далее, в связи с перемещениями файлов туда-сюда из под рутового пользователя, у файлов облака могут быть некорректные права, вернем серверу его владения:
user@host:/var/www/# chmod -R www-data:www-data /var/www/cloud/html/
У меня имена директорий в ходе миграции не менялись. Если вы устанавливали новое облако в новую директорию, вам необходимо поправить пути в конфигурационном файле
/var/www/cloud/html/config/config.php
Теперь необходимо заставить облако обновиться. Для этого переводим облако в режим обслуживания внутрренней командой от имени вебсервера:
user@host:/var/www/cloud/html/# sudo -u www-data php occ maintenance:mode --on
и обновляем:
user@host:/var/www/cloud/html/# sudo -u www-data php occ upgrade
После обновления выключаем режим обслуживания.
user@host:/var/www/cloud/html/# sudo -u www-data php occ maintenance:mode --off
В итоге получаем рабочее облако на новой платформе.
До последней версии NextCloud можно обновиться следуя инструкциям на официальном сайте и из административной панели.
Несколько замечаний:
— здесь я не стал приводить команды переходов между папками;
— ваше облако может находиться в директории отличной от /var/www/cloud/html, например, в такой /var/www/html/owncloud/;
— на счет баз, переезд между базами описан в документации к ownCloud (здесь), перед миграцией перейдите с SQLite на MySQL/MariaDB;
— папка /home/user/ подразумевает вашу домашнюю папку.
Truly rather great web site. Rather good towards browse and very a great deal interesting content. Certainly period incorporates not nevertheless appear again and greet.