Ubuntu14.04でownCloudインストールをNextcloudに変換する方法
序章
最近、 ownCloud のコア開発チームの大部分が、Nextcloudという新しいプロジェクトを開始するために去りました。 ownCloudは引き続き開発されますが、新しいプロジェクトが提供するものを確認することをお勧めします。 NextcloudとownCloudは共通のコードベースを共有しています。つまり、既存のownCloudインストールをNextcloudに移行するのは簡単な作業です。
このチュートリアルでは、既存のownCloudインストールをNextcloudに移行します。 このプロセスには、コアアプリケーションファイルをNextcloudのファイルと交換し、Nextcloudの組み込みアップデーターに手間のかかる作業を任せることが含まれます。 プロセスは単純ですが、すべてがスムーズに進むように、正しい順序で実行する必要のあることがいくつかあります。
注:ownCloudとNextcloudのインストールを更新できるのは一度に1つのメジャーバージョン番号のみです。 現在ownCloud9を使用している場合は、最初にNextcloud 10に移行してから、Nextcloud11にアップグレードする必要があります。 このチュートリアルでは、このプロセスについて説明します。
前提条件
ownCloudインストールをNextcloudに移行するには、次のものが必要です。
- Ubuntu14.04で実行されているownCloud9のインストール。
sudo
でコマンドを実行できるownCloudサーバー上の非特権ユーザーアカウント。 これは、UbuntuでSudoユーザーを作成する方法チュートリアルに従って構成できます。
ステップ1—Webサーバーの停止とデータのバックアップ
新しく構成したインストールで作業している場合でも、迅速なバックアップを実行することをお勧めします。 移動と削除を開始しようとしているので、安全を第一に考えてください。
まだ接続していない場合は、ownCloudを実行しているサーバーにログインします。
- ssh sammy@your_server_ip
バックアップと移行を実行している間は何も変更されないようにすることが重要です。そのため、ユーザーがownCloudにアクセスできないように、Webサーバーをシャットダウンするのが最も簡単な方法です。 次のコマンドを実行します。
- sudo service apache2 stop
Webサーバーが停止したので、サーバーがownCloudを格納しているディレクトリに移動します。 Ubuntu 14.04でownCloudのワンクリックインストールを使用している場合、インストールは/var/www/
ディレクトリ内にあります。 次のコマンドを実行してこのディレクトリに切り替え、owncloud/
が含まれていることを確認します。
- cd /var/www
- ls
owncloud
フォルダーが表示されます。
Outputhtml owncloud
次に、tar
コマンドを使用してバックアップアーカイブを作成します。画面への出力をerboseします。 新しいアーカイブはowncloud.tar.gz
と呼ばれ、owncloud/
ディレクトリ全体が含まれます。 次のコマンドを実行します。
- sudo tar czfv owncloud.tar.gz owncloud/
次に、アーカイブをホームディレクトリに移動して、安全に保管します。
- sudo mv owncloud.tar.gz ~/
注:ownCloudファイルはバックアップされますが、内部データストレージオプションの代わりにMySQLまたはその他のデータベースを使用している場合は、データベースのバックアップも作成する必要があります。 MySQLの場合、次のコマンドを実行してバックアップを作成します。
- mysqldump -u username -p dbname > ~/owncloud_backup.sql
username
、password
、およびdbname
の値は、/var/www/owncloud/config/config.php
にある構成ファイルにあります。
MySQLデータベースのバックアップと復元の詳細についてはここを参照してください。
Nextcloudをインストールする前に、Ubuntu14.04サーバーに固有のもう1つのステップがあります。
ステップ2-PHPのアップグレード
Ubuntu 14.04のワンクリックインストールから移行する場合は、PHPをアップグレードして、10.0.2より新しいバージョンのNextcloudを使用できるようにする必要があります。 標準のUbuntu14.04リポジトリにはPHP5.5のみが含まれていますが、NextCloud11以降ではPHP5.6が必要です。 幸い、UbuntuはPPAと呼ばれるサードパーティのリポジトリをサポートしています。 以前にPPAをインストールしたことがない場合は、次のコマンドを実行して、python-software-properties
というパッケージをインストールします。
- sudo apt-get install python-software-properties
次に、更新されたバージョンのPHPを含むPPAを追加します。
- sudo add-apt-repository ppa:ondrej/php
次に、PPAに含まれる既知のパッケージのリストを更新するようにパッケージマネージャーに指示します。
- sudo apt-get update
これで、PHP7とNextcloudに必要なすべてのモジュールをインストールできます。
- sudo apt-get install php7.0 php7.0-sqlite php7.0-mysql php7.0-pgsql php7.0-zip php7.0-gd php7.0-mb php7.0-curl php7.0-xml php7.0-apc
最後に、Webサーバーが使用するPHPモジュールを切り替えます。 Apacheの場合、これを行うためのコマンドは次のとおりです。
- a2dismod php5
- a2enmod php7.0
注:サーバーをownCloud以外の目的で使用している場合は、そのモジュールを無効にする前に、WebサーバーがPHP5.5を必要としないことを確認する必要があります。
それでは、Nextcloudをインストールしましょう。
ステップ3—Nextcloudをダウンロードする
Nextcloudリリースサイトには、さまざまな形式のすべてのNextcloudリリースのリストがあります。 現在のownCloudバージョンと同じ、または1つ後のメジャーバージョンであるリリースの最新の.tar.gz
ファイルを検索します。 たとえば、ownCloud 9ワンクリックインストールから移行する場合は、ファイルnextcloud-10.0.2.tar.bz2
を探します。
ファイルを見つけたら、パソコンにダウンロードしないでください。 代わりに、ファイル名を右クリックしてリンクアドレスをコピーし、ファイルをサーバーにダウンロードできるようにします。
2つのファイルをダウンロードします。 最初はあなたがウェブサイトで見つけたNextcloudパッケージになります。 もう1つのファイルは、「md5チェックサム」と呼ばれる検証ファイルになります。 md5ファイルのパスはパッケージとまったく同じですが、末尾に.md5
という追加の拡張子が追加されています。 次のコマンドを実行してホームディレクトリに移動し、2つのファイルをダウンロードします。
- cd ~
- wget https://download.nextcloud.com/server/releases/nextcloud-10.0.2.tar.bz2
- wget https://download.nextcloud.com/server/releases/nextcloud-10.0.2.tar.bz2.md5
md5sum
コマンドを実行してチェックサムを生成し、パッケージファイルの整合性を確認します。
- md5sum nextcloud-10.0.2.tar.bz2
次のような出力が表示されます。
Outputdc30ee58858d4f6f2373472264f7d147 nextcloud-10.0.2.tar.bz2
次に、ダウンロードした.md5
ファイルの内容を表示します。
- cat nextcloud-10.0.2.tar.bz2.md5
このコマンドの出力は、前のコマンドの出力と同じである必要があります。
Outputdc30ee58858d4f6f2373472264f7d147 nextcloud-10.0.2.tar.bz2
出力が異なる場合は、Nextcloudを再度ダウンロードしてください。
ファイルを解凍するには、tar
コマンドを再度使用しますが、今回は、 fileをverbose出力で抽出します。 次のコマンドを実行して、アーカイブを抽出します。
- tar xfv nextcloud-10.0.2.tar.bz2
最後に、新しく抽出したnextcloud
フォルダーを/var/www
フォルダーにコピーします。
- sudo mv nextcloud /var/www/nextcloud
これで、ownCloudからNextcloudへのファイルの移行を開始できます。
ステップ4—データの移行とファイルの所有権の設定
既存のownCloudインストールには、data/
とconfig/
の2つのディレクトリを保持する必要があります。 これらを元の場所からnextcoud
ディレクトリに移動しますが、最初に、Nextcloutに付属のデフォルトバージョンを削除する必要があります。
まず、コマンドを実行して、デフォルトのディレクトリが存在する場合は、nextcloud
ディレクトリから削除します。
- sudo rm -rf /var/www/nextcloud/data /var/www/nextcloud/config
次に、古いディレクトリをowncloud
ディレクトリから移動します。
- sudo mv /var/www/owncloud/data /var/www/nextcloud/data
- sudo mv /var/www/owncloud/config /var/www/nextcloud/config
sudo
コマンドを使用してファイルを移動すると、ファイルはすべてrootユーザーによって所有されます。 ただし、Nextcloudは常にwww-dataユーザーによって実行されます。 つまり、先に進む前に、/var/www/nextcloud
フォルダーとその内容の所有権を変更する必要があります。 これを行うには、-R
引数を指定してchown
コマンドを実行し、すべてのファイル所有権をwww-dataユーザーに再帰的に変更します。
- sudo chown -R www-data:www-data /var/www/nextcloud/
ファイルが配置されたので、Webサーバーにファイルへのアクセス方法を指示する必要があります。
ステップ5—Nextcloud内部のアップグレード
すべてのファイルを配置したら、内部アップグレードプロセスを開始できます。 NextcloudとownCloudは、occ
と呼ばれるインストールを管理およびアップグレードするためのツールを提供します。 /var/www/nextcloud/
ディレクトリに移動します。
- cd /var/www/nextcloud
occ
を使用する前に、/var/www/nextcloud/config/config.php
ファイルを更新してデータディレクトリの新しい場所を反映する必要があります。 具体的には、'datadirectory' => '/var/www/owncloud/data',
の行を'datadirectory' => '/var/www/nextcloud/data',
に変更する必要があります。 sed
を使用して、次のように簡単に変更できます。
- sudo sed -i "s/owncloud\/data/nextcloud\/data/g" config/config.php
注:通常、sed
は出力を画面にストリーミングしますが、-i
フラグはファイルを所定の位置に変更するように指示します。 正規表現の使用方法については、正規表現の概要を参照してください。 sed
の詳細については、LinuxでSedStreamEditorを使用してテキストを操作するための基本を参照してください。
次に、occ
を使用して、Nextcloudをメンテナンスモードにします。 これによりファイルがロックダウンされるため、アプリケーションのアップグレード中に外部から変更を加えることはできません。 次のコマンドを実行して、メンテナンスモードをオンにします。
- sudo -u www-data php occ maintenance:mode --on
これはsudo
を使用して、www-dataユーザーとしてコマンドを実行することに注意してください。
この出力が表示されるので、メンテナンスモードがオンになっていることを確認できます。
[secondary_output]
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
Maintenance mode enabled
次に、occ
を使用して、内部アップグレードプロセスを開始します。
- sudo -u www-data php occ upgrade
このコマンドは、ownCloudデータをすべてNextcloudに移行するため、多くの出力を表示しますが、最終的には次のメッセージが表示されます。
Output...
Starting code integrity check...
Finished code integrity check
Update successful
Maintenance mode is kept active
Reset log level
アップグレードで問題が発生した場合、出力には、問題の原因と問題の解決方法に関するフィードバックが表示されます。 アップグレードがスムーズに進み、メンテナンスモードをオフにしたと仮定します。
- sudo -u www-data php occ maintenance:mode --off
これでownCloudのインストールがNextcloudに移行されましたが、まだ古くなっている可能性があります。 ownCloud 9を移行した場合は、Nextcloud 10にのみ移行しますが、まだ新しいバージョンがあるので、アップグレードしましょう。
ステップ6—Nextcloudのアップグレード
Nextcloudを新しいメジャーバージョンにアップグレードするには、このチュートリアルのステップ3から5で使用したのと同じ手順を使用します。 まず、次のコマンドを使用して、現在インストールされているNextcloudフォルダーを邪魔にならない場所に移動します。
- sudo mv /var/www/nextcloud /var/www/nextcloud.old
次に、 Nextcloudリリースサイトから.tar.gz
ファイルを見つけてダウンロードし、手順3と同じようにMD5チェックサムを確認します。
- wget https://download.nextcloud.com/server/releases/nextcloud-11.0.0.tar.bz2
- wget https://download.nextcloud.com/server/releases/nextcloud-11.0.0.tar.bz2.md5
- md5sum nextcloud-11.0.0.tar.bz2
- cat nextcloud-11.0.0.tar.bz2.md5
アーカイブをダウンロードして確認したら。 それを開梱し、Webサーバー上のNextcloudの場所に移動します。
- tar xfv nextcloud-11.0.0.tar.bz2
- mv nextcloud /var/www/nextcloud
次に、手順4で行ったように、構成ファイルとデータファイルを古いインストールから新しいインストールに移動します。
- rm -rf /var/www/nextcloud/config /var/www/nextcloud/data
- mv /var/www/nextcloud.old/config /var/www/nextcloud
- mv /var/www/nextcloud.old/data /var/www/nextcloud
- sudo chown -R www-data:www-data /var/www/nextcloud/
最後に、occ
を使用してアップグレードを実行します。
- sudo -u www-data php occ maintenance:mode --on
- sudo -u www-data php occ upgrade
- sudo -u www-data php occ maintenance:mode --off
アップグレードする必要があるNextcloudのメジャーバージョンごとにこれらの手順を繰り返します。
すべてが最新になったので、Nextcloudにトラフィックを送信するようにWebサーバーを構成できます。
ステップ7-Webサーバーのトラフィックフローを変更する
Apache Webサーバーは、仮想ホストまたはvhostを使用してさまざまなディレクトリに転送します。 フォルダ/etc/apache2/sites-available/
には、サーバー用に構成されている各vhostの説明が含まれています。 これらのvhostは、関連するファイルを/etc/apache2/sites-enabled/
フォルダーにリンクすることで有効になります。 ファイル/etc/apache2/sites-available/000-owncloud.conf
は、/var/www/owcloud
を読み取るようにサーバーを構成し、その構成は/etc/apache2/sites-enabled/000-owncloud.conf
にあるリンクによって有効になります。
Nextcloudインストールを使用するようにサーバーを変換するには、ownCloud vhost構成のコピーを作成し、Nextcloudを指すように編集し、ownCloud vhostを無効にして、Nextcloudvhostを有効にします。
まず、ownCloud構成ファイルをコピーします。
- sudo cp /etc/apache2/sites-available/000-owncloud.conf /etc/apache2/sites-available/000-nextcloud.conf
次に、構成ファイル内のowncloud
のすべてのインスタンスをnextcloud
に置き換えます。 これを行うには、テキストエディタで/etc/apache2/sites-available/000-nextcloud.conf
を開いて自分で変更するか、正規表現とsed
コマンドを使用します。
次のコマンドを実行して、vhost構成ファイルの内容をsed
で変換します。
- sudo sed -i "s/owncloud/nextcloud/g" /etc/apache2/sites-available/000-nextcloud.conf
次に、リンク/etc/apache2/sites-enabled/000-owncloud.conf
を削除して、ownCloudvhostを無効にします。 Ubuntuには、サイトを無効にするためのa2dissite
コマンドが用意されています。 次のコマンドを実行します。
- sudo a2dissite 000-owncloud.conf
最後に、Nextcloud構成ファイルへのシンボリックリンクを作成して、Nextcloudvhostを有効にします。 a2ensite
コマンドを使用して、リンクを作成します。
- sudo a2ensite 000-nextcloud.conf
注: HTTPS経由でownCloudにアクセスする場合は、/etc/apache2/sites-available/owncloud-ssl.conf
vhostでもこれらの手順を繰り返す必要があります。
WebサーバーがNextcloudの場所を認識したので、次のコマンドでバックアップを開始できます。
- sudo service apache2 start
この時点で、すべてが新しいNextcloudインストールで稼働しているはずです。 Webブラウザーを開き、古いownCloudサーバーの場所に移動すると、Nextcloudログイン画面が表示されます。 古いユーザー名とパスワードはすべて、移行前と同じように機能します。 カレンダーアプリや連絡先アプリなど、一部のアプリを再度有効にする必要がある場合があるため、adminユーザーとしてログインします。
結論
このチュートリアルでは、以前のownCloudインストールをバックアップし、Nextcloudに移行し、ownCloudを無効にしました。 これで、ownCloudの場合と同じように、Webインターフェイスを使用してNextcloudにログインできます。
サーバーがNextcloudに移行されたので、使用している同期クライアントを更新します。 ownCloudと同様に、Nextcloudは、デスクトップおよびモバイルデバイス用の多数の同期クライアントを提供します。
ownCloudに戻すことにした場合は、手順1で作成したバックアップとバックアップした外部データベースからdata/
フォルダーとconfig/
フォルダーを復元できます。 data/
およびconfig/
フォルダーを/var/www/nextcloud
からownCloudにコピーして戻そうとしないでください。 バックアップが復元されたら、手順4と同じ手順を使用して、Nextcloud vhostを無効にし、ownCloudvhostを有効にするだけです。