2019年5月15日水曜日

Amazon Lightsail上のNextcloudに外部ストレージを設定する

Amazon Lightsail上にNextcloudサーバーを引っ越したのですが,契約しているプランだとストレージが20GBしかないので,32GBほどディスクを追加しました。Wikiを参考にNextcloudのデータを新しいディスクに移動しようとしたのですが,Internal Server Errorが出て詰んでしまいました。悪戦苦闘して解決したので備忘録がてら手順を書いておきます。
まず「追加のブロックストレージディスクを作成して Linux ベースの Lightsail インスタンスにアタッチする」を参考に,たとえば/dev/xvdf/media/diskにマウントするよう設定します。このときのポイントは新しいディスクを/media/以下のディレクトリにマウントすることです。それ以外のディレクトリは使えないようです。
$ sudo mkdir /media/disk
$ sudo vim /etc/fstab
最終行に以下を追記。
/dev/xvdf /media/disk ext4 defaults, nofail 0 2
Nextcloudで外部ストレージを扱うには以下のようにします。
$ sudo mount -a 
$ sudo snap connect nextcloud:removable-media
Nextcloudのデータディレクトリを/media/disk/dataに指定します。
$ sudo vim /var/snap/nextcloud/current/nextcloud/config/config.php
'datadirectory' => '/var/snap/nextcloud/common/nextcloud/data','datadirectory' => '/media/disk/data',に書き換え。以下のとおりNextcloudを一旦無効化してデータをコピーし,再び有効化します。
$ sudo snap disable nextcloud
$ sudo cp -a /var/snap/nextcloud/common/nextcloud/data /media/disk/
$ sudo chmod 770 /media/disk/data
$ sudo snap enable nextcloud
これで正常に稼働するはずです。
1週間ぐらいかかっちゃいましたが,解決してよかったよかった。