Nextcloudを導入する時に、快適に利用する為にはサーバーのチューニングや、configなどの初期設定に加えて、セキュリティ面の設定も最初に行うべきです。
今回はローカルマシンだけでなく一般的なレンタルサーバーなどで利用するケースも合わせて設定していきます。
レンタルサーバーはNextcloudがボタン一発でインストールできる「MixHost」を利用しています。最近SSDの高速化と容量劇的アップが告知されましたので必見です。
今回は自分用メモとしてまとめます。
目次
Nextcloudのファイルを暗号化させる
ファイル暗号化をさせると転送スピードがやや落ち、ファイル容量もやや大きくなります。
その変わりにサーバー上のファイルが暗号化された状態になるので、セキュアに利用したい場合は一番最初に設定しておくことをおすすめします。
まずはアプリから「Default encryption module」を有効家しておきましょう。
次に設定のセキュリティから画像の状態にすれば完了です。メインストレージ暗号化にもきちんとチェックしましょう。
この設定が完了してからのアップロードするファイルが暗号化されます。
これ以前のファイルを暗号化するには、公式ドキュメントをどうぞ。
復号化キーをバックアップする
Nextcloudを暗号化すると、passwordを忘れてしまうと復号化が永遠にできなくなります。
永続的なデータ損失を防ぐために、すべての暗号化キーを定期的にバックアップする必要があります。
暗号化キーは次のディレクトリに保存されます。
ユーザーの秘密鍵およびユーザーのファイルを復号化するために必要な他のすべての鍵はここです。
システム全体の外部ストレージに保存されているファイルを復号化するために必要な秘密鍵とその他すべての鍵はここです。
暗号化を有効にすると、すべてのファイルがNextcloudアプリケーションによって暗号化および復号化され、暗号化されてリモートストレージに保存されます。これにより、外部でホストされているストレージ上のデータが保護されます。
Nextcloud管理者とストレージ管理者は、バックエンドストレージを閲覧するときに暗号化されたファイルのみを表示します。
つまりファイルを見れるのは復号化キーを管理しているあなたのみとなります。
(ただし、サーバー上に復号化キーを同時に保管する仕組みなので鉄壁とは言えないでしょう)
PHP.iniの設定
- max_execution_time = 3600
- max_input_time = 600
- memory_limit = 1024M
- post_max_size = 512M
- upload_max_filesize = 512M
PHPの処理をさせる最大時間です。タイムアウトまでの時間になります。大容量ファイルの取り扱いは数分かかるので、大きめに設定しておきましょう。
サーバー側でPHPが起動してからスクリプトの実行を開始するまでの時間です。
Nextcloudの最低推奨値は512MBになっているので、それ以上にしておきましょう。サーバーの余裕を見て設定しましょう。
POST送信する時の全体のデータサイズ上限です。
1つのファイルに対する最大ファイルサイズです。
Nextcloud Mail(メールアプリ)
config.phpは基本的にはデフォルトのままで大丈夫ですが、自分の利用したいアプリに応じて細かい設定をすることができます。
config.php
メールアプリで以下のSMTPエラーが出る場合
Creating account failed: Connection to SMTP at smtp.mail.xxxxx:465 failed. Error connecting to SMTP server.
config.phpに以下を追記で解決する場合があります。
'app.mail.smtp.timeout' => 20,
'app.mail.transport' => 'php-mail',
NextcloudのMailアプリにGmailを設定する方法
GmailのIMAPを設定しても弾かれてしまう場合は、Googleアカウントの設定を見直す必要がありました。
- 2段階認証を設定する
- アプリパスワードを発行する
- NextcloudのMailアプリの設定画面にてGmailのパスワードに「アプリパスワード」の方を利用する
Gmailをいくつも連携してみたところ、私の環境では10個ほどでも実用に耐えうるウェブメーラー環境が作れました。一元管理派の方には設定するまでが面倒ですがおすすめです。昨今流行中のSparkメーラーのような状況が自分で作れます。
Nextcloud RSSアプリ
RSSが登録し放題となります。FeedlyやInoreaderの登録上限に困っている場合には重宝するでしょう。使い勝手としても必要十分の性能があります。
RSSを定期的に読み取る為にサーバーでcronの設定などは必須となります。
また、NextcloudのRSSアプリはPlayストアでは有料アプリですが、F-Droidというクライアントアプリを経由してインストールすると無料になるようです。
Nextcloudのファイル操作について
FTP等で直接ファイルを追加した場合
NextCloudは基本的にウェブ上やアプリ上でファイル操作を行わないとファイルがデータベースに反映されません。
FTP等を利用して大量にファイルを操作したい時には、作業完了後にファイルスキャンを実行する必要がありました。
全てのファイルを再スキャンするコマンド
% php /nextcloud/occ files:scan --all
files:scan
Nextcloudサーバに保管しているファイルをスキャンして、Nextcloudに未登録のファイルがあった場合にはNextcloud管理のファイルキャッシュとして取り込みを行います。Nextcloudのデータディレクトリのほか、SMB/CIFSなど連携設定されている外部ストレージもスキャン対象となります。
VPSではない一般的なレンタルサーバーの場合はコマンド環境が難しい場合も多いですね…。
NextCloudで動画のサムネイルを表示させる方法
ffmpegやImageMagickがインストールされているか確認しよう
レンタルサーバーでNextCloudを利用している場合は環境に依存する部分ですが、ffmpegやImageMagick(PHP版)などのインストールがあれば動画のサムネイルが生成できます。おそらく、どれか一つでもインストールされていれば良いはずです。
すでにアップロード済みのファイルのサムネイルを生成するには、ファイル全体の再スキャンが必要です。
今後自動でサムネイルを生成したい場合はconfig.phpに以下の記述を行えばOKです。
'enable_previews' => true,
'enabledPreviewProviders' =>
array (
0 => 'OC\\Preview\\Image',
1 => 'OC\\Preview\\Movie',
2 => 'OC\\Preview\\MKV',
3 => 'OC\\Preview\\MP4',
4 => 'OC\\Preview\\AVI',
),
Nextcloudのエラーについて
暗号化アプリの無効なプライベートキーです。あなたの暗号化されたファイルへアクセスするために、個人設定からプライベートキーのパスワードを更新してください。
何かの拍子にNextcloudから常に表示されるようになってしまったエラーです。
これを解決させた方法はconfig.phpのバックアップから古いインスタンスIDなどに全て置き換えることで解決しました。
'instanceid' => 'xxxxxxxxxxxxxx',
'passwordsalt' => 'yyyyyyyyyyyyyyyyyyyyyyyyyyyy',
'secret' => 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz',
この部分ですね。
かなりハマった部分なので、同じ現象に陥った方は覚えておいて下さい。
softaculousのNextcloudを利用している際のアップデートトラブル
レンタルサーバー等のsoftaculousを利用してNextcloudを管理している場合で、cPanelからアップデートをかけてもプログレスバーが95%で止まってしまうことがありました。3~4分かかると書かれていますがその10倍待っても終わりません。
この原因はNextcloud内に保存したデータの肥大化です。アップデートの際にバックアップにチェックを入れるとデータ丸々複製してバックアップが開始します。数百GBあるNextcloudの場合は注意が必要ですね。
ちなみにバックアップを選択してアップデートを行った場合の保存先ですが、ルートディレクトリにある「softaculous_backups/」にバックアップデータが保存されていました。
まとめ
Nextcloudは設定一つでかなり利便性が変わります。気がついた部分があれば今後も追記していきます。
今日も知識欲は止まらない。