オンラインストレージアプリNextcloudをロリポップにインストールする

sinceretechnology

 

 

 

はじめに

 

 

遠隔の方々とお仕事をするとどうしてもメールでのやり取りが多くなります。ちょっとしたやり取りはメールでも問題ないのですが、資料のやり取りをメールですると、資料のバージョン管理ができませんし、そもそも同じ資料を何度も送り合うのは効率が悪いこと極まりないです。

かといってONEDRIVEDROPBOXの無料サービスに大事な資料を人に預けるのはちょっと躊躇してしまします。

そこで今回クラウドストレージアプリNextcloudをサーバーに設置して動作を検証してみました。

 

 

 

 

動作環境

 

 

NEXTCLOUDの動作は以下の条件です。

PlatformOptions
Operating System
  • Ubuntu 18.04 LTS (recommended)
  • Red Hat Enterprise Linux 7 (recommended)
  • Debian 8 (Jessie), 9 (Stretch)
  • SUSE Linux Enterprise Server 11 with SP3 & 12
  • openSUSE Leap 42.1+
  • CentOS 7
Database
  • MySQL 5.x or MariaDB 5.5+ (recommended)
  • Oracle Database 11g (only as part of an enterprise subscription)
  • PostgreSQL 9/10
  • SQLite (only recommended for testing and minimal-instances)
Webserver
  • Apache 2.4 with mod_php or php-fpm (recommended)
  • nginx with php-fpm
PHP Runtime
  • 7.0
  • 7.1
  • 7.2
  • 7.3

 

※オンラインマニュアルより抜粋
https://docs.nextcloud.com/server/15/admin_manual/installation/system_requirements.html

 

 

 

技術的情報はNextcloud (ネクストクラウド)サイトより引用させて頂きました

https://www.nextcloud.jp/

 

 

 

 

インストール

 

インストールの手順を簡単にまとめました。

 

  1. NEXTCLOUDで使用するデータベースを用意します。
    データベースはsqlite、MySQL/MarinaDB、PostgreSQLが使用できます。

     

  2. NEXTCLOUDのサイトからサーバー用アプリをダウンロードします。
    ※こちらからダウンロードできます https://nextcloud.com/install
    nextcloud web-installer
     
  3. 上記リンク先のphpファイルを右クリックでダウンロードします。
    ダウンロードしたファイルをサーバーのドキュメントルートに設置します。
    ※もしくはサーバーのドキュメントルートにNEXTCLOUDファイルをアップロードしてファイルを展開する方法でも可能です。

     
  4. ユーザ用のデータフォルダを作成します。
    通常はnextcloudのシステムファイルが設置されているディレクトリに設置します。
    フォルダ名は特に決まりはなく、セットアップウィザードでここで作成したフォルダ名とパスを指定します。
    この時フォルダのアクセス権限を0770に設定する必要があります。誰でも書き換えができる設定(777など)にするとセキュリティ上の観点からエラーになります。
     
  5. ブラウザでドキュメントルートに設置したNEXTCLOUDをアクセスします。インストールウィザードが現れますのでインストールはNEXTCLOUDのオンラインマニュアルにしたがってインストールします。
    ※インストールとサーバー設定が細かく記載されています(英文)
    https://docs.nextcloud.com/server/15/admin_manual/installation/


     
  6. セキュリティとセットアップ確認設定メニューの「管理」->「概要」を選択すると、システムがセキュリティとセットアップ状況のチェックを自動的に行い、その結果を表示します。
    セットアップの設定やセキュリティに不備があればエラーの内容とトラブルシューティングのリンクが表示されますので、それに従って対応します。
    https://docs.nextcloud.com/server/16/admin_manual/issues/general_troubleshooting.html

 

 

 

 

注意事項

 

エラーが表示される場合は、ウェブルートフォルダ以下の権限を適切に設定されているかどうか確認してください。

Permissionエラーの場合はおそらくこれが原因です。

 

ログに、Activityアプリで「InvalidObjectExeption missing keys」のエラーが大量に発生する現象が発生しました。権限を見直してもなお出続けるためBookmarkアプリを消したところエラーがでなくなくなりました。

原因はわかりませんが、現在不要なアプリを消して様子を見ています。

 

 

 

 

 

 

メンテナンス

 

 

NEXTCLOUDを使うと大量の資料を持ち歩くことなく、いつでもアクセスできたりメンバーと共有したりメリットが多いです。しかし、これに頼りっきりになるとサーバーが使えなくなったときは悲惨です。

そこで、万一のときのためにバックアップする手順をスクリプト化して定期的にバックアップを取るようにします。

 

 

 

バックアップ手順

 

バックアップの手順については、こちらもオンラインマニュアルに記載されています。
https://docs.nextcloud.com/server/15/admin_manual/maintenance/backup.html

必要なバックアップはデータベースのすべてのテーブルと必要なファイルです。
※ただし、バージョンによって必要なファイルが変わる可能性があります。

  1. データベースのバックアップを取る
  2. DATAフォルダのバックアップを取る
  3. CONFIGフォルダのバックアップを取る
  4. THEMESフォルダのバックアップを取る
  5. APPSフォルダのバックアップを取る
  6. 必要があれば安全なストレージに転送する

 

これらの一連の処理をスクリプト化して定期的に実行すれば万一のときも安心です。

 

 

 

バックアップスクリプト

 

バックアップスクリプトのサンプルはオンラインマニュアルに記載されていますが、簡易的な方法としてローカルの別フォルダにデータベースのダンプファイルとファイルの圧縮ファイルを作成するスクリプトを作成しました。

 

 

 

データベースのバックアップ

 

オンラインマニュアルのmysqldumpコマンドの例ですが、パスワードオプションでワーニングが発生します。

mysqldump --single-transaction -h [server] -u [username] -p[password] [db_name] > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak

 

MySQLの5.6あたりからコマンドラインでパスワードを直書きするとワーニングを出すように仕様が変わったようで、対策としてユーザー名とパスワードおよびホストは、設定ファイルを作成してそこで指定するようにします。

設定ファイル

[mysqldump]
user=xxxx
password='****'
host=example.com

 

mysqldump実行時にdefault-extra-fileオプションで設定ファイルを読み込むことが可能です。

mysqldump --defaults-extra-file=設定ファイル --single-transaction --single-transaction データベース名 > データベースダンプファイル名

 

 

 

ファイルのバックアップ

 

ファイルのバックアップは単純にtarコマンドでフォルダを圧縮しました。

対象のフォルダはCONFIG、DATA、APPSとあるのでそれぞれ下記の書式でtarコマンドを実行します。

tar cpzf バックアップパス+圧縮ファイル名.tar.gz 対象フォルダパス

 

DATAフォルダは日々更新されてサイズが大きくなります。Cronなどで自動化して不測の事態の備えておきましょう。

 

 

 

 

 

さいごに

 

肝心の動作の検証報告が今回できませんでした。NEXTCLOUDは基本機能はオンラインストレージですが、アプリ(ここでいうアプリはNEXTCLOUD用のアプリでブラウザアプリやWordPressのプラグインのようなもの)を追加すると様々なことが可能になります。

かなり便利です。また次の機会に報告したいと思います。

 

 

 

 

 


この記事に関するご質問やご意見などございましたらお問い合わせフォームからお気軽にご連絡ください。