Процесс обновления любой ОС всегда сопряжен с трудностями и «подводными камнями». Такие сюрпризы таятся и в казалось бы простом обновлении с Ubuntu 18.04 до Ubuntu 20.04.
Для начала (перед самой командой do-release-upgrade) введём облако в режим обслуживания, чтобы мало ли чего не поломалось.
sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --on
Затем выполним do-release-upgrade вплоть до перезагрузки сервера.
do-release-upgrade
Система автоматически проверит все зависимости, заменит название дистрибутива в source.list и выкачает новые пакеты, попутно удалив старые.
С установленным nextcloud’ом система удалит все пакеты от php-fpm, которые нужны для корректной работы облака. Поэтому, чтобы не тупить и не искать решения проблемы неработающего nextcloud’а, приведу пару-тройку команд для быстрого ввода в строй своего облака.
P.S. Естественно, не забываем про бэкапы в процессе установки или используем снапшоты гипервизора.
В процессе обновления установщик предупредит о том, какие пакеты он будет удалять. В этом списке будут также и пакеты от php7.2-fpm.
Итак, после перезагрузки сервера выполним команду установки необходимых пакетов
apt install php-fpm php-mysql php-common php-cli php-json php-opcache php-readline php-mbstring php-xml php-gd php-curl php-zip php-intl php-bz2 php-bcmath php-gmp
В файле конфигурации nginx для Nextcloud заменим строку с php7.2-fpm на php7.4-fpm
sed -i -e "s/php7.2-fpm/php7.4-fpm/g" \ /etc/nginx/conf.d/nextcloud.conf
Так как в процессе удаления старых пакетов удалились и файлы конфигурации, то подредактируем их в файлах
/etc/php/7.4/fpm/php.ini
sed -i -e "s/memory_limit = 128M/memory_limit = 512M/g" /etc/php/7.4/fpm/php.ini
и /etc/php/7.4/fpm/pool.d/www.conf
sed -i -e "s/\;env\[/env\[/g" \ /etc/php/7.4/fpm/pool.d/www.conf
Затем перезапустим php-fpm и nginx
systemctl restart nginx php7.4-fpm
И отключим режим обслуживания
sudo -u www-data php /usr/share/nginx/nextcloud/occ maintenance:mode --off
Вот и всё. Если могут появиться какие ошибки, то их можно найти в веб-интерфейсе в настройках в журналировании.