Используемые термины: Nextcloud .
Процесс обновления Nextcloud хорошо описан в официальной документации:
Данная статья — адаптация инструкции по ручному обновлению на русский язык. Она будет рассмотрена на примере системы Linux.
Предварительные действия
Обновление Nextcloud
Шаги подготовки портала
Обновление
Завершающий этап
Дополнительная информация
Прежде чем начать наше обновление, выполним предварительные действия.
Так как процесс обновления — потенциальные риск потери данных, необходимо сохранить информацию.
Подробнее процесс описан в инструкции Резервное копирование и восстановление Nextcloud .
Не стоит скачивать самую последнюю версию портала — если ваше приложение давно не обновлялось, могут возникнуть проблемы при переходе через большое количество версий.
В самом Nextcloud перейдите на страницу администрирования — в общих сведениях мы увидим на какую версию программного продукта нам стоит перейти:
Перед тем, как обновлять Nextcloud, изучаем системные требования к версии, которую будем ставить. Обратите внимание на версию PHP, так как неподдерживаемая версия не позволит облаку заработать.
При необходимости, обновляем и сам PHP. Подробнее смотрите ссылки в конце данной инструкции .
В веб-интерфейса 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 .
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…