
Сегодня обновим сервер OwnCloud до версии 10.15.
Перед обновлением можно ознакомиться со всем списком изменений, чтобы потом не было сюрпризов. Из важного: исправлены ошибки производительности, добавлены уведомления о критических исправлениях безопасности.
https://owncloud.com/changelog/server/#10.15
Если обновление становится доступным, то в веб-интерфейсе можно увидеть уведомление:
ownCloud 10.15 is available. Get more information on how to update.

Проверить текущую версию можно в разделе Настройки → Администрирование → Основные → Состояние системы. Видно, что у меня стоит OwnCloud 10.14.0.3.

В разделе Настройки → Администрирование → Основные → Обновление можно увидеть доступную новую версию OwnCloud 10.15. По умолчанию обновления проверяются в канале stable, поэтому свежие версии приходят с некоторым опозданием. Можно сменить канал на экспериментальный, но есть шанс напороться на какие-нибудь неучтённые баги. При этом переключиться обратно на канал стабильный обновлений нельзя.

Есть несколько способов обновить OwnCloud. Самый простой — ткнуть в соответствующую кнопку "Открыть окно обновления" в админке. Но не все способы одинаково полезны. Если у вас большой проект, то обновление может отвалиться по таймауту и мы получим кучу проблем. Если уж обновляться, то нужно делать это правильно. OwnCloud рекомендует выполнять обновление в ручном режиме:
https://doc.owncloud.com/server/10.15/admin_manual/maintenance/upgrading/manual_upgrade.html
Обновление OwnCloud в ручном режиме
Сначала нужно убедиться, что у нас есть все резервные копии. После этого нужно переключить сервер в режим обслуживания.
https://doc.owncloud.com/server/10.15/admin_manual/maintenance/enable_maintenance.html
cd /var/www/owncloud/
sudo -u www-data /var/www/owncloud/occ maintenance:mode --on
На всякий случай. Режим обслуживания отключается командой:
sudo -u www-data /var/www/owncloud/occ maintenance:mode --off
Отключаем все задания в cron:
sudo -u www-data crontab -e
Комментируем все задачи обслуживания, связанные с OwnCloud.
service cron restart
Останавливаем веб-сервер:
service apache2 stop
Если бэкапов у нас нет, или они отстали, то бэкапим базу данных и файлы данных. Как минимум, нужно забэкапить config data apps apps-external.
rsync -Aax config data apps apps-external /oc-backupdir/
Я просто всё копирую, есть место.
rsync -Aax /var/www/owncloud /opt/backup/
Отключаем сторонние приложения. Можно было это сделать и из веб интерфейса ранее. Список приложений:
sudo -u www-data /var/www/owncloud/occ app:list
У вас может быть свой набор сторонних приложений, которые следует отключить.
Отключить приложение, примеры:
sudo -u www-data /var/www/owncloud/occ app:disable brute_force_protection
sudo -u www-data /var/www/owncloud/occ app:disable twofactor_totp
Делаем резервную копию своих изменений в .htaccess и .user.in, если они есть.
Скачиваем новую версию OwnCloud.
cd /opt/owncloud/
sudo wget https://download.owncloud.com/server/stable/owncloud-10.15.0.tar.bz2

Для обновления я использую скрипт instance.sh, с помощью которого делал установку.
sudo /opt/owncloud/instance.sh
Начинают задавать вопросы, прилежно отвечаем.
Do you want to secure your .htaccess files post installing/upgrade (y/N)? N
Do you want to install a new instance (y/N)? N
Do you want to upgrade an existing installation (y/N)? y
Use links for data and apps-external directories (Y/n)? Y
Do you want to chmod/chown these links (y/N)? y
Is the instance in maintenance mode? (y/N)? y
Please specify the tar file to extract with full path: /opt/owncloud/owncloud-10.15.0.tar.bz2
Начинается обновление. Обновляются файлы.
SUCCESS
А ниже написано что делать дальше:
Please manually run: cd /var/www/owncloud
Please manually run: sudo -uwww-data ./occ upgrade
Copy any changes manually added in .user.ini and .htaccess from the backup
Please manually run: sudo -uwww-data ./occ maintenance:mode --off
Please manually remove the directory of the old instance: /var/www/owncloud_2024-08-24-23.46.12
When successfully done, re-run this script to secure your .htaccess files

Так и делаем. Обновляем БД.
cd /var/www/owncloud
sudo -u www-data ./occ upgrade

Обновление прошло без ошибок.
Вносим свои изменения в .htaccess и .user.in, если они были.
Включаем сторонние приложения, которые ранее отключили. Список приложений:
sudo -u www-data /var/www/owncloud/occ app:list
sudo -u www-data /var/www/owncloud/occ app:enable brute_force_protection
sudo -u www-data /var/www/owncloud/occ app:enable twofactor_totp
Отключаем режим обслуживания:
sudo -u www-data /var/www/owncloud/occ maintenance:mode --off
Запускаем веб-сервер:
service apache2 start
Включаем все задания в cron:
sudo -u www-data crontab -e
Раскомментируем все задачи обслуживания, связанные с OwnCloud.
service cron restart
Проверяем работу сайта.

Версия OwnCloud обновлена.