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

Содержание статьи
Условия, предшествующие основному процессу.
Для успешной работы вам понадобится функционирующая инстанция Nextcloud. Если ее у вас нет, воспользуйтесь одним из нижеприведенных руководств для настройки сервера Nextcloud.
- Установка NextCloud на Ubuntu 20.04 с использованием Apache (пакет LAMP).
- Настройка NextCloud на Ubuntu 20.04 с использованием Nginx (стек LEMP)
- Настройка NextCloud на CentOS 8/RHEL 8 с использованием Nginx (стек LEMP).
Создание резервной копии вашего Nextcloud
Перед тем как обновить Nextcloud, обязательно создайте резервную копию базы данных и конфигурационного файла.
Создание резервной копии базы данных NextCloud
Для создания резервной копии базы данных NextCloud в первую очередь необходимо выяснить имя базы данных, выполнив соответствующую команду на вашем сервере NextCloud.
sudo mysql - u root - e "show databases"
Если ваша MariaDB нуждается в аутентификации с использованием пароля, используйте эту команду вместо предыдущей. Укажите пароль для пользователя root MariaDB/MySQL.
mysql - u root - p - e "show databases"
Вы столкнетесь с чем-то похожим:
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | nextcloud | | performance_schema | +--------------------+
Имя вашей базы данных NextCloud — nextcloud. После того как вы установите имя базы данных, воспользуйтесь утилитой mysqldump для создания резервной копии, заменив выделенный красным текст на название вашей базы данных NextCloud.
sudo mysqldump - u root nextcloud-database-name > ~/nextcloud. sql
mysqldump - u root - p nextcloud-database-name > ~/nextcloud. sql
Указанная команда сформирует файл дампа (nextcloud. sql) в вашей домашней директории, который можно будет использовать для восстановления базы данных Nextcloud в случае серьезных сбоев.
Создание резервной копии папки с настройками NextCloud
Для создания резервной копии папки конфигурации NextCloud сначала необходимо перейти в каталог, где установлен Nextcloud. Учтите, что местоположение каталога может варьироваться в зависимости от вашей конфигурации. Например, при установке через стек LAMP каталог может находиться по пути /var/www/nextcloud/, а при использовании стека LEMP — по адресу /usr/share/nginx/nextcloud/.
cd /var/www/nextcloud/
После этого воспользуйтесь командой tar для создания резервной копии каталога с конфигурацией.
sudo tar - cpzvf ~/nextcloud-config.tar.gz config/
Поскольку веб-сервер может только читать файл config.php, потребуется добавить sudo. Резервная копия (nextcloud-config.tart.gz) будет сохранена в вашем домашнем каталоге.
Теперь пора обновить NextCloud.
Обратите внимание: перед переходом к следующей основной версии обязательно обновите до самой последней точечной версии.
Обновление Nextcloud через терминал
Использование командной строки является более продуктивным подходом, и количество ошибок при этом будет значительно ниже, чем при обновлении через веб-приложение. Если у вашей инстанции Nextcloud большое количество пользователей и файлов, рекомендуется применять именно командный метод.
Откройте директорию, где установлен NextCloud. В зависимости от вашей конфигурации, путь к установке может варьироваться. Например, при установке через стек LAMP каталог может находиться по адресу /var/www/nextcloud/, а если использовался стек LEMP, то данные могут находиться в /usr/share/nginx/nextcloud/.
cd /var/www/nextcloud/
После этого откройте приложение для обновления на

Начните процесс после выполнения обновления.
sudo - u www-data php7.4 /var/www/nextcloud/occ upgrade sudo - u www-data php7.4 /var/www/nextcloud/occ db:add-missing-indices sudo - u www-data php7.4 /var/www/nextcloud/occ db:convert-filecache-bigint
После завершения обновления перейдите на страницу Настройки ->Просмотрите информацию, и вы убедитесь, что ваша версия Nextcloud обновлена.
Обратите внимание: после обновления не забудьте снова активировать сторонние приложения.
Можно настроить задачу Cron для автоматического обновления Nextcloud. Для этого необходимо отредактировать файл crontab для пользователя www-data.
sudo - u www-data crontab - e
Вставьте следующую строку в конец данного файла. Не забудьте заменить /var/www/nextcloud/ на путь к вашему собственному каталогу установки Nextcloud.
0 3 * * * php7.4 /var/www/nextcloud/обновление/обновление. phar --без-взаимодействия; php7.4/var/www/nextcloud/occ app:update --all
Сохраните изменения и закройте документ. Задание Cron будет запускаться ежедневно в 3 часа ночи.
Рекомендация по решению проблем: Временами обновление может не сработать из-за несоответствия версии PHP. Попробуйте перейти на более новую версию PHP, например, с 7.4 на 8.0, а затем повторите попытку обновления.
Обновление NextCloud через графический интерфейс веб-обновления.
Зайдите в раздел Настроек NextCloud и откройте вкладку Обзор в левой боковой панели. Если имеется новая версия, нажмите кнопку для обновления.

После этого кликните на кнопку «Запустить обновление».

NextCloud перейдет в режим обслуживания для подготовки к обновлению. Если возникнут ошибки, обратитесь к рекомендациям по устранению проблем в следующем разделе данной статьи.

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

Время обновления зависит от размера вашей установки. В моем случае оно завершилось за несколько секунд. После завершения обновления перейдите на страницу Настройки ->Просмотрите информацию, и вы убедитесь, что ваша версия Nextcloud обновлена.
Если на предыдущем этапе вы ответили утвердительно, вам следует перейти в каталог, где установлен NextCloud, и ввести команду для начала процесса обновления. Обратите внимание, что путь к каталогу установки Nextcloud может варьироваться в зависимости от вашей конфигурации. Например, при использовании стека LAMP каталог может находиться по адресу /var/www/nextcloud/, а если вы применили стек LEMP, данные могут располагаться в /usr/share/nginx/nextcloud/.
cd /usr/share/nginx/nextcloud/ sudo - u www-data php7.4 occ upgrade
www-data — это название учетной записи, используемой веб-сервером, которое может варьироваться в зависимости от вашей системы.
- На Debian и Ubuntu обычно используется пользователь www-data.
- В системах CentOS и RHEL обычно используются Apache для веб-сервера Apache и Nginx для веб-сервера Nginx.
- На Arch Linux это, как правило, http.
По окончании обновления отключите режим обслуживания с помощью:
sudo - u www-data php7.4 occ maintenance:mode --off
Перейдите на страницу Настройки ->Просмотрите информацию, и вы убедитесь, что ваша версия Nextcloud обновлена.
Обратите внимание: после обновления не забудьте снова активировать сторонние приложения.
Рекомендации по диагностике и решению проблем.
Вспомогательные документы
Во время обновления Nextcloud вы можете столкнуться с такой ошибкой:
Обнаружены следующие дополнительные файлы:.well-know
Рекомендуется создать копию этих «дополнительных» файлов, удалить их, а затем выполнить обновление. После того как обновление будет завершено, вы сможете восстановить эти файлы.
Ошибка 504: истекло время ожидания шлюза.
Если загрузка не удалась из-за ошибки 504 gateway timeout, необходимо перезапустить PHP-FPM.
sudo systemctl restart php7.4-fpm
Сбой при загрузке ZIP-архива в Nextcloud.
Если вы увидели эту ошибку, скорее всего, причина в том, что ваш сервер не смог загрузить новый ZIP-архив Nextcloud.
Шаг 4 в данный момент выполняется. Пожалуйста, обновите эту страницу позже.
Для начала необходимо подключиться к вашему серверу Nextcloud через SSH и затем выполнить переход на учетную запись пользователя root.
sudo su -
Откройте каталог данных вашего Nextcloud. Учтите, что путь к каталогу данных может варьироваться в зависимости от конфигурации. Например, если вы устанавливали Nextcloud с использованием стека LAMP, путь может быть /var/www/nextcloud-data/. Если вы использовали стек LEMP, то каталог данных, вероятно, будет находиться по адресу /usr/share/nginx/nextcloud-data/.
cd /usr/share/nginx/nextcloud-data/
В данном каталоге имеется подкаталог, название которого начинается с updater. Для просмотра файлов и подкаталогов выполните команду ls.
Он у меня называется updater-ocao79wqklov, поэтому я иду в этот подкаталог.
cd updater-ocao79wqklov
После этого укажите все файлы и подкаталоги, включая скрытые элементы.
ls - a
В каталоге вы обнаружите файл с расширением. step и папку downloads. Файл. step отвечает за мониторинг состояния обновления. Его необходимо удалить.
rm. step
После этого откройте папку downloads.
cd downloads/
Удалите загруженный файл в формате ZIP.
rm nextcloud-*.zip
Затем мы вручную загружаем ZIP-архив Nextcloud с помощью следующей команды. Разумеется, вам потребуется заменить
Добавление значительного стабильного релиза в основной канал обновлений может потребовать времени, так как существуют приложения, для которых еще не подготовлены обновления к следующему крупному стабильному релизу.
На данный момент последней стабильной версией является Nextcloud 21, однако веб-приложение для обновлений не предоставляет возможности перейти на эту версию. В таком случае необходимо переключить канал обновления с стабильного на бета.

Вы можете обновиться до Nextcloud 21, однако стоит учитывать, что некоторые приложения могут быть недоступны.

По завершении обновления советую переключиться на стабильный канал обновлений.
Старт Nextcloud 21 с использованием PHP8
Nextcloud начал полную поддержку PHP8, начиная с версии 21. Для начала установите PHP8 на ваш сервер Ubuntu, используя следующую команду:
sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update sudo apt install php-imagick libapache2-mod-php8.0 php8.0-common php8.0-mysql php8.0-fpm php8.0-gd php8.0-curl php8.0-zip php8.0-xml php8.0-mbstring php8.0-bz2 php8.0-intl php8.0-bcmath php8.0-gmp
Прочитайте данный учебник, чтобы настроить ваш виртуальный хост Apache/Nginx для работы с PHP 8.0.
- Как установить разные версии PHP на Ubuntu 20.04, 18.04 и 20.10
Чтобы проверить, использует ли ваш Nextcloud PHP 8, перейдите на страницу Настройки Nextcloud -> Система.
После обновления до PHP 8 ваша установка Nextcloud может начать выдавать предупреждения о том, что
Лимит памяти PHP ниже рекомендованного значения 512MB.
Выполните следующую команду для изменения ограничения памяти в PHP8.
sudo sed - i 's/memory_limit = 128M/memory_limit = 512M/g' /etc/php/8.0/fpm/php. ini
После этого перезапустите PHP-FPM, чтобы применить внесённые изменения.
sudo systemctl reload php8.0-fpm
Заключение
Надеюсь, этот гид был полезен в процессе обновления Nextcloud. Если вам понравилась эта информация, подписывайтесь на нашу бесплатную рассылку, чтобы получать больше рекомендаций и полезных советов.

