ownCloudからNextCloudへ乗り換え(変更)する
owncloudは、dropboxのようなファイルの同期ソフトである。長らく愛用していたのだが、「ファイルの履歴管理」などの機能がない点に不満を覚えていた。そこでいろいろと漁っていたのだが、最近はowncloudの創設者が新たに「NextCloud」なる別のソフトウェアを立ち上げているらしい。
owncloudとNextcloudはDBを使い回しできるようなので、今回はowncloudの環境をそのままにNextCloudへと移行することにしてみた。
現行のowncloud構成
当方のowncloud構成はこんな感じ。owncloudもnextcloudも、PHP+MySQLで動いている。
- Apache: Apache/2.4.18
- PHP: PHP 7.0.22
- MySQL: mysql Ver 14.14
- owncloud: 9.1.4
公式サイトで移行可能なNextCloudのバージョンを確認する
NextCloudの公式サイトを見ると、owncloudのどのバージョンから、NextCloudのどのバージョンへ移行することが出来るのか、一覧表が記載されている。
私の場合、ownCloud 9.1.4を使用しているので、NextCloudは10.0.Xが推奨されている。
まずはNextCloud 10をダウンロードし、そのあとで12までアップデートすることにしよう。
ということで、NextCloudの10.0.0.6をダウンロードする。
wget https://download.nextcloud.com/server/releases/nextcloud-10.0.6.zip
今回、上記のファイルは/var/www/nextcloudに展開した。
バックアップを取っておく
owncloudのバックアップは、設定ファイル一式(/var/www/owncloud)とファイルの存在するディレクトリ(/media/owncloud)のバックアップ、それとDBのバックアップを行った。
tar -zcvf conf /var/www/owncloud
tar -zcvf files /media/owncloud
mysqldump -u root -p owncloud > owncloud-bk.sql
owncloudからnextcloudへ移行する
owncloudのバックアップとメンテナンスモードへの移行
まず、owncloudをメンテナンスモードに移行する。
cd /var/www/owncloud
sudo -u www-data php occ maintenance:mode --on
「Maintenance mode enabled」と出れば成功だ。ウェブ上の画面もメンテナンスモードに変化する。
その後、Apacheを停止させる。
service apache2 stop
ここから実施する作業は、こんな感じ。
- /var/www/owncloudにあるconfigファイルを、/var/www/nextcloudにコピーする
- /var/www/owncloud/apps配下をNextCloudにコピーする
- /var/www/nextcloudのパーミッションが正しく設定されていることを確認
- Apacheの設定で、/var/www/owncloudとなっている部分を/var/www/nextcloudへと変更
ファイルのコピー
コピーは超単純である。
cp /var/www/owncloud/config/config.php /var/www/nextcloud/config/
cp -r /var/www/owncloud/apps /var/www/nextcloud/apps
パーミッションの変更
権限をwww-data(Apache)に変更してあげる。
chown -R www-data:www-data /var/www/nextcloud
find /var/www/nextcloud/ -type d -exec chmod 750 {} \;
find /var/www/nextcloud/ -type f -exec chmod 640 {} \;
Apacheの設定変更
DirectoryやAliasなどで/var/www/owncloudとしている部分を、必要に応じて/var/www/nextcloudに変更する。
最後に、/var/www/nextcloudに移動し、以下のコマンドを実行しておわり。
sudo-uwww-dataphpoccupgradesudo-uwww-dataphpoccmaintenance:mode--off
こんな感じでアップデートが進んでいく。
なお、上記の操作を行うことによって、勝手にLogLevelが2(Debug)となりウェブコンソールからログイン出来なくなることがある。
その際は、config.phpを開き、loglevelを0に設定してあげると良い。
「CSRF Check Failed」
最初、こんな画面が表示された。
「CSRF check failed」。どうやら、1passwordが自動的に入力してログインする状態になっていると、上記の画面が出るようだ。
Safariから1passwordを外してやると、正常に画面が表示され、またログインも出来るようになった。
(「CSRF Check Failed」が出ている状態でも、リロードすればログイン自体は出来ている模様)
一通り見てみたが、私の環境だとアプリパスワード等も無事で、唯一無事でなかったのは二段階認証の設定くらいである。
これは、NextCloudを最新版にバージョンアップしたあとに実施することとしよう。
NextCloudを最新版(12.0.4)にアップデートする
今回は手動でアップデートを行う。
まず、NextCloud 12.0.4を先ほどとおなじようにダウンロード。その後、「upgrade manually」ページを参考に進めていく。といっても、owncloudからの変更と手順はほとんど同じ。
service apache2 stop
mv /var/www/nextcloud /var/www/nextcloud-old
unzip nextcloud-12.0.4.zip
mv ./nextcloud /var/www/
cd /var/www
cp ../nextcloud-old/config/config.php ./nextcloud/config/
cp -r ../nextcloud-old/apps ./nextcloud/apps
chown -R www-data:www-data ./nextcloud
find nextcloud/ -type d -exec chmod 750 {} \;
find nextcloud/ -type f -exec chmod 640 {} \;
cd nextcloud
sudo -u www-data php occ upgrade
service apache2 start
sudo -u www-data php occ maintenance:mode --off
なお、「sudo -u www-data php occ upgrade」で、場合によっては次のように怒られるかもしれない。
Exception: Updates between multiple major versions and downgrades are unsupported.
Update failed
その際は、config.phpのversionを11.0.6等に書き換えるとうまく動作する。
二段階認証を有効にする
下記から二段階認証用のアプリをダウンロードしよう。
上記を解凍したのち、/var/www/nextcloud/apps/内に展開する。
まず、左上の部分から「アプリ」に入る。
「Two Factor TOTP Provider 」を探し、有効化すれば、二段階認証がオンになる。
あとは、「個人」に遷移すると、「TOTP 第2認証」という画面が出ているはずだ。
ここから二段階認証の設定を行うことが可能。
あえてOwnCloudからNextCloudに乗り換える必要があったかというとなんとも言えないが、以下の点はOwnCloudよりも便利なのではないかと思った。
- アドオンの豊富さ。そしてインストールが簡単。
- クライアントアプリがOwnCloudよりも優秀(な印象)。とくにスマホ版。
- なんとなくデザインがオシャレ
……あれ、owncloudでも良いんじゃね? いやいや、NextCloudのほうが「どんどん進化している」感あります。