Как обновить nextcloud на сервере
Перейти к содержимому

Как обновить nextcloud на сервере

  • автор:

Upgrade manually

If you upgrade from a previous major version please see critical changes first.

Always start by making a fresh backup and disabling all 3rd party apps.

  1. Back up your existing Nextcloud Server database, data directory, and config.php file. (See Backup , for restore information see Restoring backup )
  2. Download and unpack the latest Nextcloud Server release (Archive file) from nextcloud.com/install/ into an empty directory outside of your current installation.

Note To unpack your new tarball, run: unzip nextcloud-[version].zip or tar -xjf nextcloud-[version].tar.bz2

crontab -u www-data -e

chown -R www-data:www-data nextcloud find nextcloud/ -type d -exec chmod 750 <> \; find nextcloud/ -type f -exec chmod 640 <> \; 
sudo -u www-data php occ upgrade 

crontab -u www-data -e

Login and take a look at the bottom of your Admin page to verify the version number. Check your other settings to make sure they’re correct. Go to the Apps page and review the core apps to make sure the right ones are enabled. Re-enable your third-party apps.

Previous Nextcloud releases

You’ll find previous Nextcloud releases in the Nextcloud Server Changelog.

Troubleshooting

Occasionally, files do not show up after a upgrade. A rescan of the files can help:

sudo -u www-data php console.php files:scan --all 

Sometimes, Nextcloud can get stuck in a upgrade if the web based upgrade process is used. This is usually due to the process taking too long and encountering a PHP time-out. Stop the upgrade process this way:

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

Then start the manual process:

sudo -u www-data php occ upgrade 

If this does not work properly, try the repair function:

sudo -u www-data php occ maintenance:repair 

© Copyright 2023 Nextcloud GmbH.

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

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

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

  • Общая инструкция по обновлению Nextcloud.
  • Обновление в ручном режиме.

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

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

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

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

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

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

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

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

Обновление Nextcloud

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

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

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

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

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

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

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

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 — в этом случае, команда должна быть без указания пользователя:

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

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

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

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

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

mv nextcloud nextcloud_old

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

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

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

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

В текущем каталоге появится папка 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.

* в фигурных скобках через запятую перечислены все папки приложений, которые нужно скопировать из старого 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. Обновляем портал и базу данных.

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

systemctl stop nginx

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

systemctl stop apache2

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

systemctl stop httpd

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

а) Для Linux Deb:

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

б) Для Linux RPM:

sudo -u apache php /var/www/nextcloud/occ upgrade

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

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

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

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

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

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

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

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

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

sudo -u apache php /var/www/nextcloud/occ maintenance:mode —off

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

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

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

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

crontab -u www-data -e

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

crontab -u apache -e

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

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

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

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

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

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

3. Проверка.

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

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

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

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

Как правильно обновить NextCloud : NextCloud

Пришло время — вышла очередная версия NextCloud (удобно сделано обновление, в том числе — на телефон), как обновиться?

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

После того, как заклинило на «step 4 is currently in process. please reload this page later», что, скорее всего, не решится никогда, закрываете закладку с прогрессом, что дает гарантию незапуска следующего шага, идете в директорию
/var/www/nextcloud/data/updater-oc7anibltfqu
и удаляете там файлик .step, который и содержит статус обновления.

Гораздо более понятно работает скрипт обновлятора, запускаемый из под пользователя, под каким работает веб-сервер

sudo -u www-data php /var/www/nextcloud/updater/updater.phar

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

sudo -u www-data php /var/www/nextcloud/updater/updater.phar --no-interaction

Обновление Nextcloud

kurazhov's blog

UPD: Мануал для версии 18.0.0. Скрипт стал универсальнее.

Простой рецепт обновления Nextcloud. Полезно при обновлении мажорных версий. И желательно обновлять не пропуская версии. Не забывайте перед обновлением делать бэкапы

  • Nextcloud находится в директории /usr/share/nginx/nextcloud
  • Новая версия: 18.0.0.
  • Старая версия 17.0.1
OLD_VERSION=17.0.1 #старая версия NEW_VERSION=18.0.0 #новая версия cd /usr/share/nginx/ wget https://download.nextcloud.com/server/releases/nextcloud-$.tar.bz2 sudo -u www-data php nextcloud/occ maintenance:mode --on systemctl stop nginx mv nextcloud nextcloud-$ tar -xjf nextcloud-$.tar.bz2 cp nextcloud-$/config/config.php nextcloud/config/ chown www-data. nextcloud -R find nextcloud/ -type d -exec chmod 750 <> \; find nextcloud/ -type f -exec chmod 640 <> \; systemctl start nginx cd /usr/share/nginx/nextcloud/ sudo -u www-data php occ upgrade sudo -u www-data php occ maintenance:mode --off

Если ошибок нет, то всё прошло гладко.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *