Неспеша обновляю хосты с Debian Bullseye до Debian Bookworm и на той неделе столкнулся с ситуацией когда не получилось привычным способом обновить сервер с установленным Nextcloud 25.
В Bookworm поставляется PHP 8.2 который не поддерживается в Nextcloud 25, а сначала обновить Nextcloud до 26 в Debian Bullseye тоже нельзя, т.к. в Nextcloud 26 удалена поддержка PHP 7.4.
В этом случае придется следовать процедуре ручного обновления, предварительно обновив дистрибутив до Debian Bookworm в котором уже PHP 8.2.
В моём случае Nextcloud установлен в контейнере LXC и достаточно создать снимок состояний контейнера перед обновлением. В случае проблем с обновлением просто делается возврат к прежнему состоянию. В общем случае нужно выполнить резервное копирование базы данных и файла config/config.php.
Сначала обновляю систему до Debian Bookworm. Далее скачиваю дистрибутив Nextcloud 26 и проверяю контрольную сумму
$ wget -q https://download.nextcloud.com/server/releases/nextcloud-26.0.5.tar.bz2 https://download.nextcloud.com/server/releases/nextcloud-26.0.5.tar.bz2.sha256 $ sha256sum -c nextcloud-26.0.5.tar.bz2.sha256 nextcloud-26.0.5.tar.bz2: OK
Распаковываю дистрибутив Nextcloud 26 и останавливаю веб-сервер
$ tar -xf nextcloud-26.0.5.tar.bz2 $ sudo systemctl stop apache2
Перед заменой файлов нужно отключить запуск крона
$ sudo crontab -u www-data -e
Заменяю файлы дистрибутива, копирую данные и файл настроек
$ sudo mv /var/www/nextcloud /var/www/nextcloud-old $ sudo mv ./nextcloud /var/www/nextcloud $ sudo cp nextcloud-old/config/config.php nextcloud/config/ $ sudo cp -a nextcloud-old/data nextcloud/
Дальше нужно скопировать недостающие приложения. Я примерно помню что там установлено дополнительно, но лучше проверить еще раз
$ ls -1 nextcloud-old/apps | sort > /tmp/nextcloud-apps-old $ ls -1 nextcloud/apps | sort > /tmp/nextcloud-apps $ diff -u /tmp/nextcloud-apps /tmp/nextcloud-apps-old @@ -1,5 +1,6 @@ activity admin_audit +bookmarks bruteforcesettings circles cloud_federation_api @@ -8,6 +9,7 @@ dashboard dav encryption +epubreader federatedfilesharing federation files @@ -20,7 +22,9 @@ firstrunwizard logreader lookup_server_connector +news nextcloud_announcements +notes notifications oauth2 password_policy $ sudo cp -a nextcloud-old/apps/{bookmarks,epubreader,news,notes} nextcloud/apps/
Осталось поправить права доступа и запустить веб-сервер
$ sudo chown -R www-data:www-data nextcloud/ $ find nextcloud/ -type d -exec chmod 750 {} \; $ find nextcloud/ -type f -exec chmod 640 {} \; $ sudo systemctl restart apache2
Теперь нужно переключиться под пользователя www-data и запустить процесс обновления
$ sudo su - www-data -s /bin/bash www-data $ cd nextcloud/ www-data $ php occ upgrade www-data $ php occ db:add-missing-indices www-data $ exit
Последний штрих - включить задания cron обратно
$ sudo crontab -u www-data -e
Обновление с Nextcloud 26 до 27 прошло штатным образом.
Комментариев нет:
Отправить комментарий