2019/10/22

ラズパイでクラウドサーバ立ち上げ

もともとあったDLNAサーバ用のラズパイにクラウド機能を追加.

環境

  • Raspbian Stretch lite 2019.04.08
  • NextCloud 15.0.0
  • ieServer
  • Apache/2.4.25 (Raspbian)
  • PHP 7.0.33-0+deb9u5 (cli)
  • MariaDB 10.1.38-0+deb9u1

ラスパイセットアップ

割愛. 参考[1]などで調べれば出てくる.

  1. SDイメージ書き込み
  2. sudo raspi-configでパスワード, ホスト名, ロケーションの変更. ssh有効化.

固定IPアドレス割当

有線接続のためDHCPではじめから勝手にネットに繋がるが, SSHやらいろいろするためには固定IPアドレスにするべき. そのままなので参考[2]を見てくれ(なげやり).

外付けドライブのマウント

事前に外付けドライブをexFATでフォーマットしておく.

ntfs-3gが必要らしいのでインストール. インストールしたら再起動が必要らしい.

sudo apt install -y ntfs-3g
sudo reboot

認識されているデバイスの確認.

sudo fdisk -l
sudo blkid /dev/sdb*

おそらく/dev/sdb*として認識されているはず.

絶対に/dev/sdb*が変わらない自信があるならディレクトリ指定してマウント. /mnt/exthddにマウントした.

sudo mkdir /mnt/exthdd
sudo mount /dev/sdb* /mnt/exthdd

普通はUUIDを指定してマウントする.

sudo mount UUID="*" /mnt/exthdd

dfでマウントできたか確認.

参考[3][4]

起動時自動マウント

起動時の自動マウントには普通/etc/fstabを使うが, 失敗して起動できなくなるのがトラウマなのでsystemdでマウントする. 参考[5]そのままなので割愛. /etc/rc.localmountする前に念のためsleep 10を追記してる.

NextCloud導入

NextCloudをローカルで動かすまで. まんま参考[6]なので割愛.

NextCloudの17.0.0を使う場合はPHP7.1が必要. Raspbian Busterからは普通にインストールできるんだろうか? Raspbian Stretchではaptのリポジトリを追加すれば使える[7].

sudo sh -c 'echo "deb http://mirrordirector.raspbian.org/raspbian/ buster main contrib non-free rpi" >> /etc/apt/sources.list'

PHPのツールが足りない場合はhttp://localhost/nextcloudにアクセスした画面で教えてくれるのでそれに従えばうまくいくはず.

WAN設定

ポート開放

ポートフォワーディングでポート開放. 使用しているルータ環境によるので割愛.

  • プロトコル:TCP
  • 外部ポート:80
  • 内部IPアドレス:ラズパイのIPアドレス

を設定.

Apache確認

ラズパイが接続しているLANとは別のネットワークからグローバルIPアドレスを指定してアクセスする. グローバルIPアドレスの確認は以下.

curl inet-ip.info

アクセスするとApacheの初期画面「It works!」が見れるはず.

/etc/apache2/sites-available/000-default.confを編集してNextCloudにアクセスできるようにする.

/etc/apache2/sites-available/000-default.conf

  #ServerAdmin webmaster@localhost
        ServerAdmin dbpi@localhost
        #DocumentRoot /var/www/html
        DocumentRoot /var/www/html/nextcloud

もう一度グローバルIPアドレスからアクセスすると, NextCloudの画面が出るはず(ドメインで拒否されるはず).

ドメインの取得

参考[8]. ieSever.Netでドメインの取得. ユーザー登録してログインし, グローバルIPアドレスと取得したドメインを紐付ける. 表示されているグローバルIPアドレスが

curl inet-ip.info

で表示される値と一致するか確認.

ラズパイでのグローバルIPアドレスとドメインの紐づけは参考[9].

/var/www/html/nextcloud/config/config.phpを編集してドメインを追記すると外部からもNextCloudにログインできるようになる.

/var/www/html/nextcloud/config/config.php

  'trusted_domains' => 
  array (
    0 => 'mynextcloud.local',
    1 => '<取得したドメイン>',
  ),

以上. イメージのバックアップを忘れずに.

参考

[1] 第4回: 最低限の設定を行う – Blue-black.ink
[2] 固定IPアドレスの設定(有線LANの場合) – hiramine.com
[3] RaspberryPi 3 にUSBの外付けHDD(NTFSフォーマット)を接続する - min117の日記
[4] LinuxでUUIDでHDDをマウントする - プログラミングとかLinuxとかの備忘録
[5] systemdで起動時にmountする方法 - Qiita
[6] NextcloudとRaspberry Pi 3B+で作る自分専用クラウド - ラズパイダ
[7] [raspberry pi] PHP7.1-fpmをapt-getでインストールする - Qiita
[8] IT活用日記 自宅のWebサーバーをDDNSを使って外部に公開する【Debian】
[9] Raspberry Piで自宅ウェブサーバ立て直した話 - shuto_log.aep

0 件のコメント:

コメントを投稿