RaspberryPiでNextCloud構築
RaspberryPi3 Model B のRaspbianというOSを利用してNextCloudを立てる方法です。
ここでは、RaspberryPi(以下ラズパイ)にすでにOSがインストールされ初期設定が終わっている前提での解説とします。
目次
下準備
これは暗黙のルールといっても過言では無いでしょう。
$ sudo apt-get update
$ sudo apt-get upgrade
これで最新にできました。
No Cloud No Life
まずはApache2とPHP7のインストールです。
$ sudo apt-get install apache2
インストールが成功しましたか?では次。
$ sudo apt-get install php7.0 php7.0-cli php7.0-gd php7.0-pgsql php7.0-mysqlnd php7.0-mcrypt php7.0-dev php7.0-curl php7.0-zip php7.0-mbstring
これでPHP7.0のインストールができます。足りてないモジュールがあると後から怒られます。
ではとりあえずApache2を再起動しましょう。
$ sudo service apache2 restart
NextCloudのインストール
まずはディレクトリ移動しましょう。
cdコマンドで移動できます。
$ cd /var/www/html
移動したらcURLコマンドでネットからNextCloudをダンロードして展開します。
$ curl https://download.nextcloud.com/server/releases/nextcloud-11.0.2.tar.bz2 | sudo tar -jxv
少々時間がかかりますが待ちましょう。
終わったらまた移動します。
$ cd /var/www/html/nextcloud
mkdirコマンドでフォルダを生成します。
$ sudo mkdir -p /var/www/html/nextcloud/data
できたそのフォルダへのアクセス権限を変更して行きます。。
$ sudo chown www-data:www-data /var/www/html/nextcloud/data
$ sudo chmod 750 /var/www/html/nextcloud/data
$ sudo chown www-data:www-data config apps
これでNextCloudのインストールは完了です。
MariaDBをインストールしよう
RaspbianStretchではMySQLよりMariaDBの方が推奨されています。これはMySQLインストール時にrootパスワードを聞かれずに進んでしまい、rootパスワードがわからずアクセスできないからです。(致命的)なのでMariDBを利用しましょう。
$ sudo apt-get install mariadb-client mariadb-server
それではMariDBのモニター画面に入ります。
$ sudo mysql -u root -p
するとコマンド入力する場所がpi@username:~ $からMariaDB [(none)]>になったと思います。
次にNextCloud用のデーターベースを作成します。データーベース名はなんでも構いません。ここではncdbとします。
CREATE DATABASE ncdb;
そしてそのデーターベースを利用する際のユーザー名とパスワードを設定します。
ここではユーザー名をpi パスワードをtusbian とします。
CREATE USER 'pi'@'localhost' IDENTIFIED BY 'tusbian';
そしてpiユーザーにデーターベース管理の権限を与えます。
GRANT ALL PRIVILEGES ON newdb.* to 'pi'@'localhost';
次にコンソールから権限をフラッシュさせます。
FLUSH PRIVILEGES;
次のコマンドを打って終了させます。
quit
USBメモリにデータ保存できるようにさせよう
この章は飛ばしても構いません。
このままの状態だとRaspbianの入ったMicroSDカード内にクラウドデータが入ってしまうので、
USBメモリにクラウドデータを保存させるやり方を紹介します。
外付けHDDは試していませんが、できるかもしれません。
まずはUSBメモリを接続して以下のコマンド打ちます。
$ sudo disk -l
するとコンソールの一番下の方に
Device Boot Start End Sectors Size Id Type /dev/sda1 2048 60594431 60592384 28.9G 83 Linux
のように出ているはずです。
/dev/sda1のディレクトリにLinuxフォーマットでマウントされているよということです。
しかしこのままでは使えないので初期化します。(USBメモリ内全データ削除)
※初期マウント場所が/dev/sda1であることを前提に進めます。ご自身のディレクトリに合わせて設定してください。
$ sudo fdisk /dev/sda1
するとCommand (m for help):と出てくるのでそのあとに以下の順番で打ちます。
Command (m for help): d
Command (m for help): n
Select (default p): p
Partition number (1-4, default 1): 1
今のコマンドで表示された情報でよければ次に進みます。
Command (m for help): w
これでパーティーションの設定は終わりです。
次にext4でフォーマットします。
$ sudo mkfs.ext4 /dev/sda1
※Windowsに挿しても認識しなくなります。
マウント先のフォルダを作ります。
$ sudo mkdir /media/usb0
そしてマウント先を変更します。
$ sudo mount /dev/sda1 /media/useb0
とりあえずディスクの容量を確認します。
$ df
ここで、「Filesystem」の/dev/sda1が「Mounted on」の/media/usb0になってればOKです。
次に自動マウントされるように設定します。
$ sudo blkid /dev/sda1
今のコマンドで出てきたUUIDを控えておいてください。
$ cd /etc
$ sudo cp fstab fstab_backup
バックアップを取ったらファイルを書き換えます。
$ sudo nano fstab
そして最後の行に次の文を追加してください。
#/dev/sda1 /media/usb0 ext4 defaults,noatime 0 0 UUID=uuid /media/usb0 ext4 defaults,noatime 0 0
uuidの部分を先ほど控えたものに置き換えて、Ctrl+Oで保存し、Ctrl+Xで閉じます。
とりあえずラズパイを再起動させます。
$ sudo reboot
そして自動マウントされているか確認しましょう。
$ df
「Filesystem」の/dev/sda1が「Mounted on」の/media/usb0になっていれば成功です。
※アンマウントさせるときは以下のコマンドを打ちましょう。
$ sudo unmount /media/usb0
マウントさせたUSBメモリにクラウドデータ保存環境の構築
このままでは、「.ocdata」ファイルがないよぉって怒られるのでいじります。
以下の順にコマンドを打ってください。
$ sudo chown www-data.www-data /media/usb0
$ sudo touch /media/usb0/.ocdata
$ sudo chown www-data.www-data /media/usb0/.ocdata
これでOKです。
NextCloud設定しよう
http://localhost/nextcloud
等でラズパイのNextCloudフォルダにアクセスすると初期設定画面がでます。
UserName:管理者のユーザー名 Password:管理者ログイン時のパスワード
クラウドデータ格納ディレクトリには先ほど作ったUSBメモリのフォルダを入力しましょう。
/media/usb0
※任意です。初期では/var/www/html/nextcloud/dataになっています。
そしてデーターベースにはMariDBを選択し、先ほど作ったNextCloud用のデーターベース情報を打ち込みます。
localhostはほっといて大丈夫です。
そしてFinish setupを押しましょう!
これでセットアップ完成です。
お疲れ様でした。
このままだとSSL化されていないのでしてもいいでしょう。
また、NextCloudにアクセスするときはlocalhost/nextcloudなのを忘れないように。
Apache2のconf設定でnextcloudに誘導してもいいでしょう。
何かミスっていたら教えてください。
では。
4 Comments
匿名
こんにちは.良記事をありがとうございます.
さて,PHPのインストールコマンドの中に
php7.0-pqsql
がありますが,
php7.0-pgsql
の間違いだと思われますので,ご確認をお願いします.
Orange777
確認しました。
訂正ありがとうございます。
Anonymous
こんにちは.良記事をありがとうございます.
さて,PHPのインストールコマンドの中に
php7.0-pqsql
がありますが,
php7.0-pgsql
の間違いだと思われますので,ご確認をお願いします.
Orange777
確認しました。
訂正ありがとうございます。