Ручное обновление Nextcloud

Обновлено Обновлено: Опубликовано Опубликовано:

Используемые термины: Nextcloud.

Процесс обновления Nextcloud хорошо описан в официальной документации:

Данная статья — адаптация инструкции по ручному обновлению на русский язык. Она будет рассмотрена на примере системы Linux.

Подготовка системы к обновлению

Прежде чем начать наше обновление, выполним предварительные действия.

Резервное копирование

Так как процесс обновления — потенциальные риск потери данных, необходимо сохранить информацию.

Подробнее процесс описан в инструкции Резервное копирование и восстановление Nextcloud.

Определяем версию, до которой стоит обновляться

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

В самом Nextcloud перейдите на страницу администрирования - в общих сведениях мы увидим на какую версию программного продукта нам стоит перейти:

Изучение требований

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

При необходимости, обновляем и сам PHP. Подробнее смотрите ссылки в конце данной инструкции.

Обновление приложений

В веб-интерфейса nextcloud переходим к окну управления приложениями:

Если есть приложения, которые нуждаются в обновлении, мы увидим кнопку Обновить все — нажимаем на нее:

Обновление Nextcloud

Рассмотрим процесс по шагам. Разобьем их на 3 группы.

Предварительные шаги

1. Переходим в каталог, где находится папка nextcloud.

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

Например, у меня это каталог /var/www/nextcloud — значит я выполняю команду:

cd /var/www

2. Отключаем веб-сервер.

Nextcloud может быть настроен с использованием различных веб-серверов. Наиболее популярные из них — nginx и apache. В зависимости от этого, наши команды будут разливаться.

а) Для nginx:

systemctl stop nginx

б) Для apache в системах на основе Deb:

systemctl stop apache2

в) Для apache в системах на основе RPM:

systemctl stop httpd

3. Переводим Nextcloud в режим обслуживания.

Команда будет зависеть от того, под каким пользователем запускается php интерпретатор.

а) Если пользователь www-data (как правило, в Linux на основе DEB):

sudo -u www-data php ./nextcloud/occ maintenance:mode --on

б) Если пользователь apache (как правило, в Linux на основе RPM):

sudo -u apache php ./nextcloud/occ maintenance:mode --on

4. Отключение заданий по расписанию.

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

В зависимости от системы запускаем редактирование заданий.

а) Для систем Deb:

crontab -u www-data -e

б) Для систем RPM: 

crontab -u apache -e

Имейте ввиду, что задание cron может быть также настроено для пользователя root — в этом случае, команда должна быть без указания пользователя:

crontab -e

Также файл с настройкой задания может находиться в каталоге /etc/cron.d.

Если мы найдем задание, заканчивающееся на nextcloud/cron.php, комментируем строку:

#... nextcloud/cron.php

Выполняем обновление

1. Меняем файлы на новые.

Переименовываем текущий каталог с порталом Nextcloud:

mv nextcloud nextcloud_old

Переходим на страницу загрузки и копируем ссылку на zip-архив для скачивания нужной версии приложения:

По скопированной ссылке загружаем исходник:

wget https://download.nextcloud.com/server/releases/nextcloud-25.0.10.zip

Распакуем его:

unzip nextcloud-*.zip

В текущем каталоге появится папка nextcloud.

2. Возвращаем некоторые файлы со старого Nextcloud.

Скопируем из уже старого приложения конфигурационный файл:

cp nextcloud_old/config/config.php nextcloud/config/

Если каталог с данными находится в том же каталоге, что и портал, перенесем каталог data:

mv nextcloud_old/data nextcloud/

Сравниваем приложения, которые входят в состав нового nextcloud с теми, что были установлены ранее:

diff --brief nextcloud_old/apps/ nextcloud/apps/ | grep "Only in nextcloud_old"

Команда покажет каталоги приложений, которых нет в новом приложении — из нужно скопировать вручную командой cp. Точная команда зависит от того, что вернул diff.

Например:

cp -R nextcloud_old/apps/{accessibility,analytics,calendar,contacts,cospend,deck,duplicatefinder,files_antivirus,...} nextcloud/apps/

* в фигурных скобках через запятую перечислены все папки приложений, которые нужно скопировать из старого nextcloud в новый.

Теперь визуально сравним темы:

ls -la nextcloud_old/themes/

ls -la nextcloud/themes/

Если в сторой версии были установлены дополнительные темы, то нужно их также перенести в каталог с новой версией портала.

Задаем владельца для каталога nextcloud. В зависимости от системы команды будут разные.

а) Для Linux Deb:

chown -R www-data:www-data nextcloud

б) Для Linux RPM: 

chown -R apache:apache nextcloud

3. Обновляем портал и базу данных.

Снова включаем веб-сервер. В зависимости от последнего, наши команды будут разливаться.

а) Для nginx:

systemctl start nginx

б) Для apache в системах на основе Deb:

systemctl start apache2

в) Для apache в системах на основе RPM:

systemctl start httpd

Запускаем команду для обновления портала. Она будет зависеть от типа Linux.

а) Для Linux Deb:

sudo -u www-data php ./nextcloud/occ upgrade

б) Для Linux RPM: 

sudo -u apache php ./nextcloud/occ upgrade

Процесс займет какое-то время. Ждем.

Готово — Nextcloud обновлен. Возвращаем некоторые настройки.

Завершающие действия

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

1. Режим обслуживания — отключение.

Команда будет зависеть от того, под каким пользователем запускается php интерпретатор.

а) Если пользователь www-data (как правило, в Linux на основе DEB):

sudo -u www-data php ./nextcloud/occ maintenance:mode --off

б) Если пользователь apache (как правило, в Linux на основе RPM):

sudo -u apache php ./nextcloud/occ maintenance:mode --off

2. Включение заданий в cron.

Напомним, что данный шаг нужно делать только, если Nextcloud настроен на выполнение регламентных заданий через cron.

В зависимости от системы запускаем редактирование заданий.

а) Для систем Deb:

crontab -u www-data -e

б) Для систем RPM: 

crontab -u apache -e

Снимаем комментарий, который ставили ранее. Должно получиться что-то на подобие:

... nextcloud/cron.php

Разово запустим выполнение заданий.

а) Для систем Deb:

sudo -u www-data php -f ./nextcloud/cron.php

б) Для систем RPM:

sudo -u apache php -f ./nextcloud/cron.php

3. Обновление индексов.

Оптимизируем работу базы данных. Для разных систем Linux выполняется, немного, по-разному.

а) Для систем Deb:

sudo -u www-data php ./nextcloud/occ db:add-missing-indices

б) Для систем RPM:

sudo -u apache php ./nextcloud/occ db:add-missing-indices

4. Проверка.

Все операции по обновлению выполнены.

Проверяем:

  • Работу веб-портала.
  • Синхронизацию данных (если используется).
  • Работу сетевых дисков (если используется).

5. Чистка.

Завершая работу над обновлением, удалим загруженный архив: 

rm -f nextcloud-*.zip

Также можно переименовать каталог nextcloud_old:

mv nextcloud_old nextcloud_25.0.3

* в моем примере был выполнен переход с версии 25.0.3.

Читайте также

Полезная информация по Nextcloud:

1. Установка и настройка Nextcloud + Apache на Ubuntu.

2. Установка и настройка NextCloud на Rocky Linux 8.

3. Установка и настройка Nextcloud + NGINX на Ubuntu.

4. Резервное копирование и восстановление Nextcloud.

5. Установка разных версий PHP на Linux Ubuntu.

6. Установка разных версий PHP на Linux Debian.

7. Установка PHP 7 и 8 на Linux CentOS.

# Linux # Серверы
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет