Сегодня обновим сервер OwnCloud до версии 10.13.1.
Перед обновлением можно ознакомиться со всем списком изменений, чтобы потом не было сюрпризов. Из важного: добавлена возможность принудительно включить двухфакторную аутентификацию.
https://owncloud.com/changelog/server/#10.13.1
Если обновление становится доступным, то в веб-интерфейсе можно увидеть уведомление:
ownCloud 10.13.1 is available. Get more information on how to update.
Проверить текущую версию можно в разделе Настройки → Администрирование → Основные → Состояние системы. Видно, что у меня стоит OwnCloud 10.12.2.
В разделе Настройки → Администрирование → Основные → Обновление можно увидеть доступную новую версию OwnCloud 10.13.1. По умолчанию обновления проверяются в канале stable, поэтому свежие версии приходят с некоторым опозданием. Можно сменить канал на экспериментальный, но есть шанс напороться на какие-нибудь неучтённые баги. При этом переключиться обратно на канал стабильный обновлений нельзя, непонятно почему.
Есть несколько способов обновить OwnCloud. Самый простой — ткнуть в соответствующую кнопку "Открыть окно обновления" в админке. Но не все способы одинаково полезны. Если у вас большой проект, то обновление может отвалиться по таймауту и мы получим кучу проблем. Если уж обновляться, то нужно делать это правильно. OwnCloud рекомендует выполнять обновление в ручном режиме:
https://doc.owncloud.com/server/10.13/admin_manual/maintenance/upgrading/manual_upgrade.html
Обновление OwnCloud в ручном режиме
Сначала нужно убедиться, что у нас есть все резервные копии. После этого нужно переключить сервер в режим обслуживания.
https://doc.owncloud.com/server/10.13/admin_manual/maintenance/enable_maintenance.html
cd /var/www/owncloud/
sudo -u www-data ./occ maintenance:mode --on
На всякий случай. Режим обслуживания отключается командой:
sudo -u www-data ./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 owncloud /opt/backup/
Отключаем сторонние приложения. Можно было это сделать и из веб интерфейса ранее. Список приложений:
sudo -u www-data ./occ app:list
У вас может быть свой набор сторонних приложений, которые следует отключить.
Отключить приложение, примеры:
sudo -u www-data ./occ app:disable brute_force_protection
sudo -u www-data ./occ app:disable twofactor_totp
Делаем резервную копию своих изменений в .htaccess и .user.in, если они есть.
Скачиваем новую версию OwnCloud.
cd /opt/owncloud/
sudo wget https://download.owncloud.com/server/stable/owncloud-10.13.1.tar.bz2
Для обновления я использую скрипт instance.sh, с помощью которого делал установку.
sudo ./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.12.2.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_2023-06-10-19.54.56 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 ./occ app:list
sudo -u www-data ./occ app:enable brute_force_protection
sudo -u www-data ./occ app:enable twofactor_totp
Отключаем режим обслуживания:
sudo -u www-data ./occ maintenance:mode --off
Запускаем веб-сервер:
service apache2 start
Включаем все задания в cron:
sudo -u www-data crontab -e
Раскомментируем все задачи обслуживания, связанные с OwnCloud.
service cron restart
Проверяем работу сайта.
Версия OwnCloud обновлена.