Как конвертировать установку ownCloud в Nextcloud в Ubuntu 14.04

Вступление

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

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

[.note] #Note: Вы можете обновлять установки ownCloud и Nextcloud только с одним основным номером версии за раз. Если вы в настоящее время используете ownCloud 9, вам необходимо сначала перейти на Nextcloud 10, а затем перейти на Nextcloud 11. В этом руководстве рассматривается этот процесс.
#

Предпосылки

Для того чтобы перенести вашу собственную установку Cloud на Nextcloud, вам потребуется:

  • Работающая установка ownCloud 9, работающая на Ubuntu 14.04.

  • Учетная запись непривилегированного пользователя на сервере ownCloud, который может запускать команды сsudo. Вы можете настроить это, следуя руководствуHow to Create a Sudo User on Ubuntu.

[[step-1 -—- stop-the-web-server-and-backing-up-data]] == Шаг 1. Остановка веб-сервера и резервное копирование данных

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

Войдите в свой сервер, на котором выполняется ownCloud, если вы еще не подключены:

ssh sammy@your_server_ip

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

sudo service apache2 stop

Теперь, когда веб-сервер остановлен, перейдите в каталог, где ваш сервер хранит ownCloud. Если вы используете установку ownCloud в Ubuntu 14.04 в один клик, ваша установка находится в каталоге/var/www/. Выполните следующие команды, чтобы переключиться в этот каталог и убедиться, что он содержитowncloud/:

cd /var/www
ls

Вы увидите папкуowncloud:

Outputhtml  owncloud

Затем создайте архив резервных копий с помощью командыtar, чтобыcсжать gzipfмолчание и вывести на экран выводverbose. Новый архив будет называтьсяowncloud.tar.gz и будет содержать весь каталогowncloud/. Выполните следующую команду:

sudo tar czfv owncloud.tar.gz owncloud/

Теперь переместите архив в свой домашний каталог для хранения:

sudo mv owncloud.tar.gz ~/

[.Примечание]##

Note: ваши файлы ownCloud сохраняются, но если вы используете MySQL или любую другую базу данных вместо внутреннего хранилища данных, вам также следует сделать резервную копию базы данных. Для MySQL создайте резервную копию, выполнив эту команду:

mysqldump -u username -p dbname > ~/owncloud_backup.sql

Вы можете найти значения дляusername,password иdbname в файле конфигурации, расположенном в/var/www/owncloud/config/config.php.

Вы можете найти дополнительную информацию о резервном копировании и восстановлении баз данных MySQLhere.

Перед установкой Nextcloud есть еще один шаг, специфичный для серверов Ubuntu 14.04.

Шаг 2 - Обновление PHP

Если вы переходите с установки One-Click на Ubuntu 14.04, вам необходимо обновить PHP, чтобы иметь возможность использовать любую версию Nextcloud, более новую, чем 10.0.2. Стандартные репозитории Ubuntu 14.04 включают только PHP 5.5, но PHP 5.6 требуется начиная с NextCloud 11. К счастью, Ubuntu поддерживает сторонние репозитории, известные как PPA. Если вы раньше не устанавливали PPA, выполните эту команду, чтобы установить пакет с именемpython-software-properties:

sudo apt-get install python-software-properties

Затем добавьте PPA, который содержит обновленные версии PHP:

sudo add-apt-repository ppa:ondrej/php

Затем скажите менеджеру пакетов обновить свой список известных пакетов, который включает в себя пакеты в PPA:

sudo apt-get update

Теперь вы можете установить PHP7 и все модули, которые требуются Nextcloud:

sudo apt-get install php7.0 php7.0-sqlite php7.0-mysql php7.0-pgsql php7.0-zip php7.0-gd php7.0-mb php7.0-curl php7.0-xml php7.0-apc

Наконец, переключите модуль PHP, который использует ваш веб-сервер. Для Apache следующие команды:

a2dismod php5
a2enmod php7.0

[.note] #Note: Если вы используете свой сервер для чего-либо, кроме ownCloud, вы должны убедиться, что вашему веб-серверу не нужен PHP5.5, прежде чем отключать этот модуль.
#

Теперь давайте установим Nextcloud.

[[step-3 -—- download-nextcloud]] == Шаг 3. Скачивание Nextcloud.

ВNextcloud release site вы найдете список всех выпусков Nextcloud в различных форматах. Найдите самый последний файл.tar.gz для выпуска, который совпадает с вашей текущей версией ownCloud или имеет одну основную версию после нее. Например, если вы переходите с установки ownCloud 9 One-Click, вам нужно искать файлnextcloud-10.0.2.tar.bz2.

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

Вы собираетесь загрузить два файла. Первым будет пакет Nextcloud, который вы нашли на веб-сайте. Другой файл будет файлом проверки, который называется «контрольная сумма md5». Файл md5 будет иметь тот же путь, что и пакет, но с дополнительным расширением.md5, добавленным в конец. Выполните следующие команды, чтобы перейти в свой домашний каталог, затем загрузите два файла.

cd ~
wget https://download.nextcloud.com/server/releases/nextcloud-10.0.2.tar.bz2
wget https://download.nextcloud.com/server/releases/nextcloud-10.0.2.tar.bz2.md5

Запустите командуmd5sum, чтобы сгенерировать ее контрольную сумму для проверки целостности файла пакета:

md5sum nextcloud-10.0.2.tar.bz2

Вы увидите нечто похожее на этот вывод:

Outputdc30ee58858d4f6f2373472264f7d147  nextcloud-10.0.2.tar.bz2

Затем отобразите содержимое загруженного файла.md5:

cat nextcloud-10.0.2.tar.bz2.md5

Вывод этой команды должен быть идентичен выводу предыдущей команды:

Outputdc30ee58858d4f6f2373472264f7d147  nextcloud-10.0.2.tar.bz2

Если результаты отличаются, загрузите Nextcloud снова.

Чтобы распаковать файл, снова используйте командуtar, но на этот раз exобработает молчаниеfс помощью сербозного выводаv. Выполните эту команду, чтобы извлечь архив:

tar xfv nextcloud-10.0.2.tar.bz2

Наконец, скопируйте только что извлеченную папкуnextcloud в папку/var/www:

sudo mv nextcloud /var/www/nextcloud

Теперь вы можете начать перенос файлов из ownCloud в Nextcloud.

[[step-4 -—- migrating-data-and-setting-file-owner]] == Шаг 4. Перенос данных и установка прав собственности на файлы

В вашей существующей установке ownCloud есть два каталога, которые вы хотите сохранить:data/ иconfig/. Вы переместите их из исходного местоположения в каталогnextcoud, но сначала вам нужно удалить версии по умолчанию, которые поставлялись с Nextclout.

Сначала выполните команду, чтобы удалить каталоги по умолчанию из каталогаnextcloud, если они существуют:

sudo rm -rf /var/www/nextcloud/data /var/www/nextcloud/config

Затем переместите старые каталоги из каталогаowncloud:

sudo mv /var/www/owncloud/data /var/www/nextcloud/data
sudo mv /var/www/owncloud/config /var/www/nextcloud/config

Одним из следствий перемещения файлов с помощью командыsudo является то, что все файлы будут принадлежать пользователюroot. Однако Nextcloud всегда запускается пользователемwww-data. Это означает, что вам нужно изменить владельца папки/var/www/nextcloud и ее содержимого, прежде чем идти дальше. Для этого запустите командуchown с аргументом-R, чтобы рекурсивно изменить все права собственности на файлы пользователюwww-data:

sudo chown -R www-data:www-data /var/www/nextcloud/

Теперь, когда файлы на месте, нам нужно сообщить веб-серверу, как получить к ним доступ.

[[step-5 -—- upgrade-the-nextcloud-internals]] == Шаг 5 - Обновление внутренних компонентов Nextcloud

После установки всех файлов вы можете начать внутренний процесс обновления. Nextcloud и ownCloud предоставляют инструмент для управления и обновления установок под названиемocc. Перейдите в каталог/var/www/nextcloud/:

cd /var/www/nextcloud

Прежде чем вы сможете использоватьocc, вам необходимо обновить файл/var/www/nextcloud/config/config.php, чтобы он отражал новое расположение каталога данных. В частности, строку'datadirectory' => '/var/www/owncloud/data', необходимо изменить на'datadirectory' => '/var/www/nextcloud/data',. Используйтеsed, чтобы легко изменить это:

sudo sed -i "s/owncloud\/data/nextcloud\/data/g" config/config.php

[.note] #NOTE: Обычноsed выводит поток на экран, но флаг-i указывает ему изменить файл на месте. Для получения информации о том, как использовать регулярные выражения, см.An Introduction To Regular Expressions. И чтобы узнать больше оsed, посмотритеThe Basics of Using the Sed Stream Editor to Manipulate Text in Linux.
#

Теперь используйтеocc, чтобы перевести Nextcloud в режим обслуживания. Это блокирует файлы, поэтому никакие изменения не могут быть внесены извне во время обновления приложения. Выполните следующую команду, чтобы включить режим обслуживания:

sudo -u www-data php occ maintenance:mode --on

Обратите внимание, что это используетsudo для запуска команд от имени пользователяwww-data.

Вы увидите этот вывод, чтобы убедиться, что режим обслуживания включен:

[secondary_output]
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
Maintenance mode enabled

Затем используйтеocc, чтобы начать процесс внутреннего обновления:

sudo -u www-data php occ upgrade

Эта команда отображает большой вывод, поскольку она переносит все данные ownCloud в Nextcloud, но в конце вы увидите следующие сообщения:

Output...

Starting code integrity check...
Finished code integrity check
Update successful
Maintenance mode is kept active
Reset log level

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

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

Ваша установка ownCloud теперь перенесена в Nextcloud, но она все еще может быть устаревшей. Если вы мигрировали ownCloud 9, вы будете мигрировать только на Nextcloud 10, но есть еще более новая версия, так что давайте обновимся.

[[step-6 -—- upgrade-nextcloud]] == Шаг 6 - Обновление Nextcloud

Чтобы обновить Nextcloud до новой основной версии, используйте ту же процедуру, что и в шагах с 3 по 5 этого руководства. Во-первых, удалите вашу текущую папку Nextcloud из этой команды:

sudo mv /var/www/nextcloud /var/www/nextcloud.old

Затем найдите файл.tar.gz изNextcloud release site, загрузите его и проверьте его контрольную сумму MD5, как вы это делали на шаге 3.

wget https://download.nextcloud.com/server/releases/nextcloud-11.0.0.tar.bz2
wget https://download.nextcloud.com/server/releases/nextcloud-11.0.0.tar.bz2.md5
md5sum nextcloud-11.0.0.tar.bz2
cat nextcloud-11.0.0.tar.bz2.md5

После того, как вы скачали и проверили архив. распакуйте его и переместите в папку Nextcloud на веб-сервере:

tar xfv nextcloud-11.0.0.tar.bz2
mv nextcloud /var/www/nextcloud

Затем переместите файлы конфигурации и данных из старой установки в новую, как вы делали в шаге 4:

rm -rf /var/www/nextcloud/config /var/www/nextcloud/data
mv /var/www/nextcloud.old/config /var/www/nextcloud
mv /var/www/nextcloud.old/data /var/www/nextcloud
sudo chown -R www-data:www-data /var/www/nextcloud/

Наконец, используйтеocc для выполнения обновления:

sudo -u www-data php occ maintenance:mode --on
sudo -u www-data php occ upgrade
sudo -u www-data php occ maintenance:mode --off

Повторите эти шаги для каждой основной версии Nextcloud, которую вы хотите обновить.

Теперь, когда все обновлено, мы можем настроить веб-сервер для отправки трафика в Nextcloud.

Шаг 7 - Изменение потока трафика веб-сервера

Веб-сервер Apache направляет в разные каталоги с помощью виртуальных хостов или vhosts. Папка/etc/apache2/sites-available/ содержит описание каждого виртуального хоста, настроенного для сервера. Эти виртуальные хосты включаются путем связывания связанных с ними файлов с папкой/etc/apache2/sites-enabled/. Файл/etc/apache2/sites-available/000-owncloud.conf настраивает сервер для чтения/var/www/owcloud, и эта конфигурация включается ссылкой, расположенной в/etc/apache2/sites-enabled/000-owncloud.conf.

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

Сначала скопируйте файл конфигурации ownCloud:

sudo cp /etc/apache2/sites-available/000-owncloud.conf /etc/apache2/sites-available/000-nextcloud.conf

Затем замените все экземплярыowncloud в файле конфигурации наnextcloud. Вы можете сделать это, открыв/etc/apache2/sites-available/000-nextcloud.conf в текстовом редакторе и внеся изменения самостоятельно, или используя регулярные выражения и командуsed.

Выполните следующую команду, чтобы преобразовать содержимое файла конфигурации vhost сsed:

sudo sed -i "s/owncloud/nextcloud/g" /etc/apache2/sites-available/000-nextcloud.conf

Затем отключите виртуальный хост ownCloud, удалив ссылку/etc/apache2/sites-enabled/000-owncloud.conf. Ubuntu предоставляет командуa2dissite для отключения сайтов. Выполните эту команду:

sudo a2dissite 000-owncloud.conf

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

sudo a2ensite 000-nextcloud.conf

[.note] #Note: Если вы получаете доступ к ownCloud через HTTPS, вам также нужно будет повторить эти шаги с виртуальным хостом/etc/apache2/sites-available/owncloud-ssl.conf.
#

Теперь, когда веб-сервер знает, где найти Nextcloud, мы можем запустить его с помощью этой команды:

sudo service apache2 start

На этом этапе все должно быть в порядке с вашей новой установкой Nextcloud. Откройте веб-браузер и перейдите к местоположению вашего старого сервера ownCloud, и вы увидите экран входа в систему Nextcloud. Все ваши старые имена пользователей и пароли будут работать так же, как и до миграции. Войдите в систему как пользовательadmin, так как вам может потребоваться повторно включить некоторые из ваших приложений, включая приложения «Календарь» и «Контакты».

Заключение

В этом руководстве вы создали резервную копию предыдущей установки ownCloud, мигрировали в Nextcloud и отключили ownCloud. Теперь вы можете войти в Nextcloud с помощью веб-интерфейса, как вы это делали с ownCloud.

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

Если вы решите снова переключиться на ownCloud, вы можете восстановить папкиdata/ иconfig/ из резервной копии, созданной на шаге 1, а также из любой внешней базы данных, которую вы создали. Не пытайтесь скопировать папкиdata/ иconfig/ из/var/www/nextcloud обратно в ownCloud. Как только резервные копии будут восстановлены, все, что вам нужно сделать, это отключить виртуальный хост Nextcloud и активировать собственный ownCloud, используя ту же процедуру, что и в шаге 4.

Related