うまくいかなかったポイントは?
アップロードされたファイルのサーバー側の保存先を変更したかったが、なんでかできなかった。
背景
初期状態でアップロードされるファイルたちは/var/snap/nextcloud/common/nextcloud/data
の下にユーザー別のディレクトリに保存される。しかし、私の環境ではこのディレクトリは起動ドライブ(WindowsでいうCドライブ)で、且つデータ保存用途としては小さすぎました。なので、USB接続のHDDに専用のディレクトリを作成してそこに保存させようという思惑が生じます。
設定ファイルをいじろう
各種設定は/var/snap/nextcloud/current/nextcloud/config/config.php
を編集すればOK。データ保存先を定めているのはdatadirectryの値らしい。標準で先ほど示したディレクトリが書かれてました。これを任意のディレクトリに書き換えればよい。でも、何かの間違いでミスってもまずいのでファイルをコピーして切り戻しできるように準備した。
cp config.php backup.config.php
これでよし。config.php
を編集しよう(黄色の部分がHDDのディレクトリ)。
念のため、編集する前にsnap stop nextcloud
で処理を止めておく。
'datadirectory' => '/media/nextcloud/data'
ただし、HDDはfstabでマウント先を/media
か/mnt
に固定しておかないとnextcloud君がアクセスできないようなのでご注意。また、もとのディレクトリにいる.ocdata
ファイルがdata下にないとエラーになるのでコピーして配置しておく。
あれ?元のディレクトリから変わらない…
本来ならこれで問題なく保存先が変更されるのだが、初期のディレクトリのまま変わらない。その証拠に保存可能領域が変わってない(<-管理者画面から確認できる)。
はてさてどうしたものか。
と、1週間くらい調べながら悩んだところ公式ドキュメントにこんな一文があった。
You can add arbitrary files ending with
Configuration Parameters — Nextcloud latest Administration Manual latest documentation.config.php
in theconfig/
directory, for example you could place your email server configuration inemail.config.php
.
/config
の下にあるなんたら.config.php
ってファイルは設定ファイルの1つとして読み込んでくれるってことです。つまり…、さっき作った切り戻し用ファイルは設定ファイルの1つとして読み込まれる対象だということ。そのせいで、いくらconfig.phpを書き換えてもbackup.config.phpが優先されて初期の設定が適用されていたってわけ。
くだらなさすぎるでしょ(笑)
最終的な設定手段
別の設定ファイルを読み込んでくれるなら、追加設定はその形で書いた方が安全だろう。ということでdatadir.conf.php
を作り、任意の保存先だけを書きました。
<?php
$CONFIG = array (
'datadirectory' => '/media/nextcloud/data',
);
こんな感じ。
これで設定は完了したのでsnap start nextcloud
またはsnap restart nextcloud
で再開すれば設定が反映される。