概要

PCにある大量のデータをスマホでも開けるようにしたくNextCloudを導入してみました。
自宅サーバなので容量気にせずクラウドストレージが利用できるので結構便利です。

クラウドストレージ以外にも様々なプラグインがあるので利用者がもし増えたら
検討したいと思います。
今のところ自身だけの利用なのでとりあえずファイルサーバ的に使おうと思います。

一回作成してみたのですがディスク構成ミスってしまいやり直しです。。

構成図

Proxmox

Proxmox上で動かしている仮想サーバで構築します。
PoCで構築した際はRootパーティションを増やしすぎてバックアップ不可になってしましたので、
データ領域はPC上に常に保存する設定にしバックアップとしたいと思います。

構成図的には以下のような感じです。

インストール環境
事前準備

構築済みAlmalinuxをブートします。

Apacheが未インストールであればインストールします。
不足分があるかもしれないので以下のコマンドを実行します。
コマンド:dnf -y install httpd php php-mbstringdnf -y install httpd php php-mbstring

不足分があるかもしれないので以下のコマンドを実行します。
コマンド:dnf -y install epel-releasednf -y install epel-release

Mariadbインストールしていない場合はMariadbをインストールします。
コマンド:dnf -y install mariadb-serverdnf -y install mariadb-server
コマンド:ln -s /var/lib/snapd/snap /snapln -s /var/lib/snapd/snap /snap

必要なPHP関連モジュールをインストールします。
コマンドdnf install -y php php-gd php-mbstring php-intl php-pecl-apcu php-mysqlnd php-opcache php-json php-zip php-processdnf install -y php php-gd php-mbstring php-intl php-pecl-apcu php-mysqlnd php-opcache php-json php-zip php-processdnf install -y php php-gd php-mbstring php-intl php-pecl-apcu php-mysqlnd php-opcache php-json php-zip php-processdnf install -y php php-gd php-mbstring php-intl php-pecl-apcu php-mysqlnd php-opcache php-json php-zip php-process

ホスト:Proxmox
ゲスト:AlmaLinux 9.x

ホスト:Proxmox
ゲスト:AlmaLinux 9.x

NextCloudインストール手順

※ログから作成した手順なのでところどころ漏れがあります。後ほど修正予定です。

  1. 以下のコマンドを実行してNextCloudのモジュールを入手
    コマンド:yum install wget
    wget https://download.nextcloud.com/server/releases/latest.tar.bz2
    ※wgetが動作しない場合はyum install wgetを先に実行
  2. ダウンロードフォルダを展開するために準備展開
    • 以下のコマンドを実行
      コマンド:yum install bzip2
    • 以下のコマンドを実行
      コマンド:yum install tar
  3. 以下のコマンドを実行してNextCloudを展開する
    コマンド:yum install tartar -jxvf latest.tar.bz2
  4. 以下のコマンドで展開したNextCloudを/var/www/配下に移動する
    コマンド:mv nextcloud/ /var/www/mv nextcloud/ /var/www/
  5. 以下のWeb実行アカウントのapacheに権限を付与する
    コマンド:chown -R apache:apache /var/www/nextcloudchown -R apache:apache /var/www/nextcloud
  6. 不要になったダウンロードしたフォルダを削除する
    コマンド:rm -f latest.tar.bz2rm -f latest.tar.bz2
データ格納用ディスクをマウントする

  1. 対象となるディスクを確認する
    コマンド:fdisk -l
    例:/dev/sdb
  2. 対象ディスクにパーティションを作成する
    コマンド:fdisk /dev/sdb
    • コマンド (m でヘルプ): n ⇐新規パーティション作成
    • 選択 (既定値 p): p ⇐基本パーティション
    • コマンド (m でヘルプ): w ⇐実行
  3. パーティションが作成されたことを確認する
    コマンド:fdisk -l
    例:/dev/sdb1
  4. パーティションをext4形式でフォーマットする
    コマンド:mkfs -t ext4 <フォーマットするパーティション>
    例:mkfs -t ext4 /dev/sdb1
  5. 作成したパーティションをマウントするディレクトリを作成する
    ※こちらがデータ保存用のフォルダとなる
    コマンド:/var/www/nextcloud/data
  6. 作成したディレクトリへパーティションをマウント
    コマンド:mount
    例:mount /dev/sdb1 /var/www/nextcloudc
  7. デーモンをリロードする
    コマンド:systemctl daemon-reloadsystemctl daemon-reload
  8. パーティションのUUIDを確認する
    コマンド:blkid
  9. 以下のコマンドでfstabを編集し起動時に自動マウント設定
    ※間違えると起動しなくなるので慎重に!
    コマンド:vi /etc/fstab
    例:
  10. 一旦サーバを再起動
  11. apacheに権限を付与する
    コマンド:chown -R apache:apache /var/www/nextcloud/
    コマンド:chown -R apache:apache /var/www/nextcloud/data
  12. certbotで証明書を取得
  13. apacheを再起動
    コマンド:systemctl restart httpd
  14. 一旦サーバを再起動
  15. 再起動後も正常にマウントされていることを確認
    コマンド:df -l
    例:UUID=ebf74b76-3e5e-4d15-bfd5-9e1a9c00084d /var/www/nextcloud/data ext4 defaults 0 0
NextCloudセットアップ

環境が整ったのでWebブラウザでNextCloudをセットアップする

  1. https://<サーバ名>/nextcloudへアクセスする
  2. ファイルをアップロードする
  3. /var/www/nextcloud/dataに格納したデータ容量を新規ディスクが消費していることを確認する

投稿者 つー