Raspberry Pi 3でNextcloudサーバ簡単構築 snapd版

64ビットOSが利用可能なRaspberry Pi 3でNextcloudサーバを構築したいと思います。

※20.3.22追記:

Raspberry Pi 4の場合、こちらの新しい記事をお勧め致します。

以下、古い記事になります。


Raspberry Pi 3でNextcloudサーバ簡単構築 snapd版

対応機種

64ビットaarch64対応のRaspberry Pi 3 ファミリーが対象になります。

64ビット版を使用する理由は、2GByte・4GByte以上のファイルを扱いたいためです。


使用するOS

2018年5月にリリースされましたFedora 28のaarch64版を使用しました。

32ビットのarmv7l版もsnapを利用できますが、2GB以上のファイルを扱うことができないようです。詳細はこちらの記事になります。


Nextcloudサーバ構築手順 snapd版

  1. こちらの記事の手順に従い、Fedoraインストールします。
  2. コンソールまたはSSHでrootでログインします。
  3. ホスト名を設定します。IPアドレスを固定にする場合はその設定も行います。
  4. 外付けUSB HDDを接続する場合、/var/snapへマウントすることでデータをHDDへ格納できるようです。詳細は後述致します。
  5. snapdをインストールします。
    dnf install snapd

  6. snapでnextcloudをインストールします。
    snap install nextcloud

    Nextcloudのバージョン12.0.5がインストールされたようです。

  7. ファイアウォールの設定を変更します。
    firewall-cmd --permanent --add-service=http
    firewall-cmd --permanent --add-service=httpd
    firewall-cmd --reload

    これで他のPCやスマートフォンからアクセスできるようになりました。

  8. 他のPCからWebブラウザでアクセスします。
    http://<Raspberry PiのIPアドレス>

  9. 管理用のユーザ名とパスワードを入力して、「セットアップを完了します」をクリックします。
  10. nextcloudのインストールが完了しました。

2GB、4GB以上のファイルを扱えるか

試しに6.3GBのファイルをNextcloudクライアント・アプリケーション経由でアップロードしてみました。

microSDカードで動かしましたので、アップロードとファイルの結合に時間が掛かりましたが、確かにアップロードできました。

このような感じで、確かにRaspberry Piのsnap環境に6GB以上のファイルがアップロードされています。


外付けUSB HDDを接続する場合

パーティションの作成

cfdiskでデータ用のext4パーティションと、swapパーティションを作成しました。

cfdisk /dev/sda
mkswap /dev/sda1
mkfs.ext4 /dev/sda2

swapサイズはmicroSDカードのものと同じ512MBで作成しました。数日間動かしてみましたが、特に問題無いようです。

swap領域の変更

/etc/fstabを編集して既存の(microSDカードの)swapを無効にして、HDDのswap領域を有効にしました。

sed -e 's/^\(.*swap\)/#\1/' /etc/fstab
# 問題なくswap行がコメントアウトされていれば-iで反映
sed -i 's/^\(.*swap\)/#\1/' /etc/fstab
blkid /dev/sda1 | grep -o -e '\sUUID\=\"[0-9a-f\-]*\"'|tee -a /etc/fstab
vi /etc/fstab
UUID=<swap領域のUUID> swap swap defaults 0 0

再起動後、swapが正しく変更されているか確認します。

swapon -s

手動でswapを変更する場合、swapon、swapoffコマンドを使用します。

データディレクトリの移動

nextcloud-snapページを拝見しますと

snapのremovable-mediaスロットを使用すると、/mediaディレクトリにアクセス可能となり、nextcloudのデータディレクトリを移動できる記述があります。

sudo snap connect nextcloud:removable-media

/mediaに外付けUSB HDDをマウントすれば、データをそちらに入れらるはずですが・・・Raspberry Pi 3でaarch64版Fedora 27とFedora 28で試してみましたが、どうもうまく行きませんでした。

代わりに、snapの実行ディレクトリ(/var/snap)に外付けHDDをマウントしてそちらにデータが入るようにしてみました。

以下の手順は、nextcloudの再インストールになりますのでご注意下さい。

  1. Nextcloudとsnapdを停止します。
    snap stop nextcloud
    systemctl stop snapd.socket
    
  2. /var/snapディレクトリをリネームします。
    mv /var/snap /var/snap.orig
  3. 外付けUSB HDDを/var/snapにマウントします。
    mkdir /var/snap
    vi /etc/fstab
    UUID=<外付けHDDパーティションのUUID> /var/snap             ext4    defaults 1 2
    mount /var/snap
  4. リネームした/var/snapのデータを外付けHDDへ移動します。
    mv /var/snap.orig/* /var/snap
    rmdir /var/snap.orig
  5. snapdを再起動後、nextcloudを再インストールします。
    systemctl start snapd.socket
    snap remove nextcloud
    snap install nextcloud

これでNextcloudサーバにファイルをたくさん入れることができます。


snaps便利ですね。

インストールは簡単でしたが、topやpsコマンドでプロセスを見てみると、LAMP環境(httpd + mysql + php-fpm)で動作していて、システム構成もしっかりしています。

ファイルサイズの制限もなく、簡単かつ実用的なシステムかと思います。

サーバの設定変更はsnapコマンド、Nextcloudのメンテナンスは、nextcloud.occまたはsnap run nextcloud.occコマンドで行うかと思います。

他のコマンド等、詳細はこちらになります。

さあ。いろいろと試してみましょうか!

スポンサーリンク

フォローする

スポンサーリンク