ownCloudからNextCloudへ乗り換え(変更)する

2018年7月8日Linux・Ubuntu TipsLinux,Ubuntu,owncloud,Apache,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」と出れば成功だ。ウェブ上の画面もメンテナンスモードに変化する。

owncloud-maintenance

その後、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

こんな感じでアップデートが進んでいく。

update-nextcloud

なお、上記の操作を行うことによって、勝手にLogLevelが2(Debug)となりウェブコンソールからログイン出来なくなることがある。
その際は、config.phpを開き、loglevelを0に設定してあげると良い。

「CSRF Check Failed」

最初、こんな画面が表示された。

nextcloud-erro

「CSRF check failed」。どうやら、1passwordが自動的に入力してログインする状態になっていると、上記の画面が出るようだ。

Safariから1passwordを外してやると、正常に画面が表示され、またログインも出来るようになった。
(「CSRF Check Failed」が出ている状態でも、リロードすればログイン自体は出来ている模様)

nextcloud-login

一通り見てみたが、私の環境だとアプリパスワード等も無事で、唯一無事でなかったのは二段階認証の設定くらいである。

これは、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/内に展開する。

まず、左上の部分から「アプリ」に入る。

app

「Two Factor TOTP Provider 」を探し、有効化すれば、二段階認証がオンになる。
あとは、「個人」に遷移すると、「TOTP 第2認証」という画面が出ているはずだ。

two-facta

ここから二段階認証の設定を行うことが可能。

あえてOwnCloudからNextCloudに乗り換える必要があったかというとなんとも言えないが、以下の点はOwnCloudよりも便利なのではないかと思った。

  • アドオンの豊富さ。そしてインストールが簡単。
  • クライアントアプリがOwnCloudよりも優秀(な印象)。とくにスマホ版。
  • なんとなくデザインがオシャレ

……あれ、owncloudでも良いんじゃね? いやいや、NextCloudのほうが「どんどん進化している」感あります。

Posted by webnetforce