はじめに
Nextcloudは、自前のサーバを使って手軽にセキュアなファイル共有環境を実現できるオンラインストレージです。
2019年4月25日に最新メジャーアップデートとして Nextcloud 16 がリリースされました。
今回は、Nextcloud 16 へのアップデートの手順をまとめます。
おおまかな手順
- データベースのバックアップ。
- Nextcloud 15 の最新版にアップデート。
- Nextcloud 16 をダウンロードし配備。
- アップグレードコマンド実施。
サーバ環境
今回の手順は、以下の環境で実施しております。
- Nextcloud 15.0.5
- CentOS7
- Nginx
- PHP 7.2
- MariaDB 10.3
- Redis 3.2
細かい手順
1. データベースのバックアップ
データベースの変更を伴うため、作業前にデータベースのバックアップをおすすめします。
今回の環境は MariaDB となりますので、以下のようなコマンドでバックアップを取得します。
$ mysqldump -u root -p nextcloud > backup.sql
nextcloud
は Nextcloud で利用しているデータベース名を指定します。backup.sql
は バックアップデータの出力パス/ファイル名を指定します。
2. Nextcloud 15 の最新版にアップデート
Nextcloud 16 にアップデートするには、アップデートしようとする Nextcloud を Nextcloud 15 の最新版にアップデートしておく必要があります。
今回の環境は Nextcloud 15.0.5 なので、現時点(2019年4月27日)の最新版である 15.0.7 にアップデートします。
※もし現在の Nextcloud のバージョンが 14 以下の場合は、メジャーバージョンを一つずつ上げていく必要があります(例: Nextcloud 13 からアップデートするには、 13 → 13の最新版 → 14の最新版 → 15の最新版というように順番にあげていきます)。手順としてはこの手順を繰り返す形となります。
まず、最新版のアップデートが取得できる状態か確認します。
$ sudo -u nginx php /var/www/html/nextcloud/occ update:check
Nextcloud 15.0.7 is available. Get more information on how to update at https://docs.nextcloud.com/server/15/admin_manual/maintenance/upgrade.html.
1 update available
1 update available
のような表示があればアップデートが可能です。
引き続いてアップデートを実行します。
$ sudo -u nginx php /var/www/html/nextcloud/updater/updater.phar
Nextcloud Updater - version: v14.0.2RC2-7-g57268cb
Current version is 15.0.5.
Update to Nextcloud 15.0.7 available. (channel: "stable")
Following file will be downloaded automatically: https://download.nextcloud.com/server/releases/nextcloud-15.0.7.zip
Steps that will be executed:
[ ] Check for expected files
[ ] Check for write permissions
[ ] Create backup
[ ] Downloading
[ ] Verify integrity
[ ] Extracting
[ ] Enable maintenance mode
[ ] Replace entry points
[ ] Delete old files
[ ] Move new files in place
[ ] Done
Start update? [y/N]
y
を入力し、しばらく待ちます。
Start update? [y/N] y
Info: Pressing Ctrl-C will finish the currently running step and then stops the updater.
[✔] Check for expected files
[✔] Check for write permissions
[✔] Create backup
[✔] Downloading
[✔] Verify integrity
[✔] Extracting
[✔] Enable maintenance mode
[✔] Replace entry points
[✔] Delete old files
[✔] Move new files in place
[✔] Done
Update of code successful.
Should the "occ upgrade" command be executed? [Y/n]
Y
を入力します。
Should the "occ upgrade" command be executed? [Y/n] Y
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
Set log level to debug
Updating database schema
Updated database
Checking for update of app accessibility in appstore
Checked for update of app "accessibility" in appstore
〜〜〜 (中略) 〜〜〜
Checking for update of app workflowengine in appstore
Checked for update of app "workflowengine" in appstore
Starting code integrity check...
Finished code integrity check
Update successful
Maintenance mode is kept active
Reset log level
Keep maintenance mode active? [y/N]
N
を入力して、メンテナンスモードを抜けます。
アップデート後のバージョンを確認します。
$ sudo -u nginx php /var/www/html/nextcloud/occ status
- installed: true
- version: 15.0.7.0
- versionstring: 15.0.7
- edition:
あとは Nextcloud にアクセスできるかどうかを確認します。
3. Nextcloud 16 をダウンロードし配備。
Nextcloud 16 のアップデートについては少しずつ展開されてきますが、すぐにアップデートがおりてきません。このため、手動でアップデートを行います。
まず、Nextcloud 16 のパッケージをダウンロードしてきます。チェックサムも確認します。
$ wget https://download.nextcloud.com/server/releases/nextcloud-16.0.0.tar.bz2
--2019-04-28 16:30:43-- https://download.nextcloud.com/server/releases/nextcloud-16.0.0.tar.bz2
Resolving download.nextcloud.com (download.nextcloud.com)... 176.9.217.52
Connecting to download.nextcloud.com (download.nextcloud.com)|176.9.217.52|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 61731904 (59M) [application/x-bzip2]
Saving to: ‘nextcloud-16.0.0.tar.bz2’
100%[==============================================================>] 61,731,904 6.77MB/s in 27s
2019-04-28 16:31:11 (2.22 MB/s) - ‘nextcloud-16.0.0.tar.bz2’ saved [61731904/61731904]
$ wget https://download.nextcloud.com/server/releases/nextcloud-16.0.0.tar.bz2.md5
--2019-04-28 16:31:13-- https://download.nextcloud.com/server/releases/nextcloud-16.0.0.tar.bz2.md5
Resolving download.nextcloud.com (download.nextcloud.com)... 176.9.217.52
Connecting to download.nextcloud.com (download.nextcloud.com)|176.9.217.52|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 59 [application/x-bzip2]
Saving to: ‘nextcloud-16.0.0.tar.bz2.md5’
100%[==============================================================>] 59 --.-K/s in 0s
2019-04-28 16:31:15 (3.41 MB/s) - ‘nextcloud-16.0.0.tar.bz2.md5’ saved [59/59]
$ md5sum -c nextcloud-16.0.0.tar.bz2.md5 < nextcloud-16.0.0.tar.bz2
nextcloud-16.0.0.tar.bz2: OK
ダウンロードした Nextcloud 16 パッケージを展開します。
$ tar xf nextcloud-16.0.0.tar.bz2
アップデート作業中に Nextcloud にアクセスが来ないように一時的にメンテナンスモードにします。
$ sudo -u nginx php /var/www/html/nextcloud/occ maintenance:mode --on
Maintenance mode enabled
現在の Nextcloud をバックアップしておきます。
$ sudo mv /var/www/html/nextcloud/ /var/www/html/nextcloud15
取得した Nextcloud 16 を配備します。
$ sudo mv nextcloud /var/www/html/
先にバックアップした Nextcloud から config.php
をコピーします。
$ sudo cp -pi /var/www/html/nextcloud15/config/config.php /var/www/html/nextcloud/config/
$ ll /var/www/html/nextcloud/config/config.php
-rw-r-----. 1 nginx nginx 946 4月 28 16:55 /var/www/html/nextcloud/config/config.php
Nextcloud システムディレクトリの所有者情報を変更します。
$ sudo chown -R nginx. /var/www/html/nextcloud/
4. アップグレードコマンド実施。
Nextcloud 16 に移行する準備が整いましたので、Nextcloud 16 へのアップデートを実行します。
$ sudo -u nginx php /var/www/html/nextcloud/occ upgrade
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
Set log level to debug
Updating database schema
Updated database
〜〜〜 (中略) 〜〜〜
Starting code integrity check...
Finished code integrity check
Update successful
Maintenance mode is kept active
Reset log level
現在のバージョンを確認します。
$ sudo -u nginx php /var/www/html/nextcloud/occ status
- installed: true
- version: 16.0.0.9
- versionstring: 16.0.0
- edition:
メンテナンスモードを元に戻します。
$ sudo -u nginx php /var/www/html/nextcloud/occ maintenance:mode --off
あとがき
Nextcloud 16 では様々な新機能が盛り込まれております。Nextcloud のメジャーアップデートを実施するには、直前の最新バージョンにアップデートをしておく必要があるため、メジャーバージョンがかなり古いものの場合、一つずつアップデートしていく手間はありますが、手順はそれほど難しくないので、参考にしてみてください。