[専用クラウドレシピ] RaspberryPi3にRaspbian+OwnCloud

3分・・・とはいきませんが、今回のレシピは・・・、

スポンサーリンク

レシピ

RaspberryPi3にRaspbianを載せて、OwnCloudを運用させます。

[用意する物] ※Mac環境

  • RaspberryPi3本体と電源アダプター ※5V2.5A
  • SDカードのサイズはお好みで16GBから
  • Raspbian(今回は5-27版)
  • SDFormatter
  • ApplePiーBaker(WindowsではWin32DiskImagerなど)
  • Mysql
  • apache2
  • Raspbianでの呪文

※コマンド記述してある「nano」は、適時「vi」「vim」などに読み替えてください。

下ごしらえ

今回はSDカードは32GBを用意しました。

SDカードをフォーマット

sdformatter

インストールするRaspbianは公式サイトからダウンロードします。

今回はフルデスクトップにしました。

download_raspbian_for_raspberry_pi

Torrentの方が何倍も早くダウンロードできます。1.2GBくらいあります。光回線で3分くらい?

これをSDカードに焼くには、簡単にできるPi Maker1.94を利用しました。

tweaking4all_com_-_macos_x_-_applepi_baker_-_prep_sd-cards_for_img_or_noobs

もちろんコマンドラインでもできますが、説明が難しいので、イメージを焼くツールであれば何でもいいです。WindowsではWin32DiskImagerなどです。

焼いてみる

ApplePi-Baker画面

そしてRestore Backupをポチッとな。

やはりこれも5、6分くらい。コマンドラインよりちょー簡単!

SSHでログイン

Raspbian Jessie は標準で avahi-daemon と sshd が起動しているので、名前で直接 ssh 接続することが可能です。Macの端末から。

ssh pi@raspberrypi.local

で初期ユーザーpi初期パスワードがraspberry

The authenticity of host 'raspberrypi.local ()' can't be established.

ECDSA key fingerprint is SHA256:

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'raspberrypi.local,(ECDSA) to the list of known hosts.

pi@raspberrypi.local's password:

The programs included with the Debian GNU/Linux system are free software;

the exact distribution terms for each program are described in the

individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent

permitted by applicable law.

Last login: Fri May 27 11:50:32 2016

pi@raspberrypi:~ $

RaspberryPiOS自体の設定

pi@raspberrypi:~ $sudo raspi-config

Expand Filesystemを選択してファイルシステムを最大まで使うようにする。Internationalisation Options -> Change Locale -> ja_JP.UTF-8で日本語環境へInternationalisation Options -> Change Timezone -> Asia -> Tokyoで日本時間へ

OSのアップデートとアップグレードで最新に

ご存じのお約束

pi@raspberrypi:~ $ sudo apt-get update

pi@raspberrypi:~ $ sudo apt-get upgrade

デフォルトのユーザーを変更

ユーザー名を追加(ユーザー名の所に任意の名前を入力)

pi@raspberrypi:~ $ sudo adduser ユーザー名

権限を付与

pi@raspberrypi:~ $ sudo visudo

最後の行に

user名 ALL=(ALL) ALL

保存して終了 (control+x → y → Enter)

一旦、ログアウト

pi@raspberrypi:~ $ logout

作成したユーザーで接続し直しする。

ssh 作成したユーザー名@raspberrypi.local

デフォルトのユーザーpiを削除する。

$ sudo userdel pi

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] password for 作成したユーザー名:ここでパスワードを入力

日本語環境へフォントとIMEを追加(モニターに繋いでからでもOK)

sudo apt-get install fonts-vlgothic
sudo apt-get install ibus-mozc

etc/fstabの設定

RaspberryPiに外付けHDDを接続してデータ領域にしたい。そこに自動的にマウントできるよう記述しておく(後でも構いません)

とりあえず、/etc/fstabに書いてマウントをします。

$ sudo blkid

私の場合はUSBの外付けHDDは以下でした。

/dev/sda1: LABEL=”MEDIA” UUID=”416C-1E0F” TYPE=”vfat” PARTUUID=”b949d0b1-01″

$ sudo mkdir /mnt/usbhdd
$ sudo nano /etc/fstab
proc            /proc           proc    defaults          0       0
uuid="416C-1E0F" /mnt/usbhdd vfat defaults,nosuid 0 0
こんな感じで。最後の行に付け加えます。
私の場合は、vfat形式でUUIDは416C-1E0Fでした。
vfat形式ではうまくいきませんでした。権限が付与されない・・・。次に時間があるときに・・・。

ハマったので追記

ここを参考にして・・・、
http://www.lisa.jp/index.php/OwnCloud
fstabには以下のように
/dev/sda1 /mnt/usbhdd vfat user,rw,noauto,codepage=932,iocharset=utf8 0 0

そしてマウントも日本語ファイルを含むため

$ sudo mount -t vfat /dev/sda1 /mnt/usbhdd -o codepage=932,iocharset=utf8
デフォルトが /var/www/owncloud/なのと、マウントしたデータフォルダが、/mnt/usbhdd/owncloud-dataなので、その中身を確認したいところ、権限がapache2なので中身が見られない。
そこで、一旦一般ユーザーに権限を移して、確認やファイル移動をした後に、再びapache2に権限を戻すということをやり繰りして直しました(^_^;)
具体的に書くと、
sudo chown -R 一般ユーザー名 /var/www/owncloud/
そしてこの中に/config/config.phpがあるので、
$ sudo nano /var/www/owncloud/config/config.php
その中の
'datadirectory' => '/var/www/owncloud/data',

これが設定画面の

owncloud

ここに変わっていればOK。

もしくは変更してからファイルを移動なりコピーする。

'datadirectory' => '/mnt/usbhdd/owncloud-data',

移動かコピーしてから再起動

sudo su
mv /var/www/owncloud/data /mnt/usbhdd/owncloud-data
reboot

apache2に権限を戻すのは、

sudo chown -R www-data:www-data /var/www/owncloud/
ただ、移動を間違うと以下のメッセージが
owncloud
.htacccessファイルも移動してしまう恐れがあるので、今一度、下の方に記述してあるhtaccessを有効にするを実行してください。

fstabで指定するオプションの各フィールドについて

フィールド 記述内容
第1フィールド マウントしたいデバイスファイルを書く。
例:/dev/sdb5
UUIDや、ボリュームラベルで指定する事もできる。LABEL=Boot、UUID=3e6be9de-8139-11d1-9106-a43f08d823a6
第2フィールド ファイルシステムのマウントポイントを記述する。
例:/mnt/diskA
第3フィールド ファイルシステムのタイプを記述する。
例:ext3, ext4, iso9660, nfs 等
第4フィールド ファイルシステム毎のマウントオプションを記述する。オプションが複数ある場合は、「,カンマ」で区切る。
第5フィールド ファイルシステムを dump コマンドがダンプする必要があるかを記述する。1が必要。0が不要。記述がないのも不要とみなす。
第6フィールド fsckが、ブート時にファイルシステムのチェックを実行する順序を決定するために参照される。
ルートファイルシステムは、1と記述する必要がある。それ以外のパーティションは、2と記述する。
0の場合は、fsckによるチェックが不要とみなす。
 ※参考サイト:
http://kazmax.zpp.jp/linux_beginner/mount_hdd.html

LAMP環境の設定

サーバーとしてapache2とデータベースのMysql、各種PHP関連をインストール

こちらのサイトを参考にしてください。

まとめて必要な物をインストール

$ sudo apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-intl php5-gd php-xml-parser php5-mysql smbclient curl libcurl3 php5-curl php5-json php5-mysql php5-intl php5-mcrypt php5-imagick

途中でmysqlの設定があります。

パスワードを決めます。

apache2の確認

無事にインストールされたか、以下のURLにアクセスして”It works!”と表示されるか確認します。

http://<RaspberrypiのIPアドレス>

※IPアドレスはifconfigで調べられます。

apache2_debian_default_page__it_works

Apache2の設定

$ sudo /etc/php5/apache2/php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Asia/Tokyo"

上記部分を探してAsia/Tokyoに変更します。

ドキュメントルートの指定

$ sudo nano /etc/apache2/sites-available/000-default.conf
# 下記に設定
DocumentRoot /var/www/

一度、apache2の再起動

sudo /etc/init.d/apache2 restart

Mysqlの設定と確認

MySQLの設定

$ mysql -u root -p

Enter password:

パスワードは先に任意で決めたパスワードを入力する。

以下のようになればOK

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 43

Server version: 5.5.52-0+deb8u1 (Raspbian)


Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql>

owncloudという名前のデータベースを作成

次のコマンドでデータベースを作成

mysql> create database owncloud default character set utf8;

おまじない。GUIで決めたrootのpasswordです。お間違いないように。

mysql> DELETE FROM mysql.user WHERE user = "" OR host = "::1";
mysql> SET PASSWORD FOR root@localhost = PASSWORD("password");
mysql> SET PASSWORD FOR root@127.0.0.1 = PASSWORD("password");

owncloudのデータベースを操作するユーザーowncloudを追加する。

grant all on owncloud.* to owncloud@localhost identified by 'password';

owncloudユーザーのpassword(rootではありません)は任意で変更してください。

mysql> exit

Bye

exitで終了する。

IPアドレスの固定

sudo nano /etc/network/interfaces

iface eth0 inet static
address [設定したい固定 IP アドレス(他の機器と被らないようにする)]
netmask [サブネットマスク]
gateway [デフォルトゲートウェイの IP アドレス]

以下のような感じで環境に合わせてください。

iface eth0 inet static
address 192.168.0.10
netmask 255.255.255.0
gateway 192.168.0.1

OwnCloudのインストール

公式サイトを参考に

リポジトリを追加して

$ sudo wget -nv https://download.owncloud.org/download/repositories/stable/Debian_8.0/Release.key -O Release.key
apt-key add - < Release.key
$ sudo sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list"

owncloudのインストール

$ sudo apt-get update
$ sudo apt-get install owncloud

owncloudの設定

http://<IPアドレス><raspberrypiのipアドレス>/owncloud/

以下の画面で管理者ユーザーの作成と、これまでに作成したデータベースのユーザー名やパスワードなどを入力します。

注意:データフォルダーをデフォルトのまま設定してしまいました。なんとか修正しましたが、ハマりました。ここに外付けHDDのマウントポイントを記入しないとなりません。

私の場合、/mnt/usbhdd/owncloud-data

owncloud

こんな感じです。

データフォルダーのデフォルトは、/var/www/owncloud/dataです。

また、実際のファイルが保存されるのは、

/var/www/owncloud/data/<ユーザー名>/files のようです。

owncloud

完了するボタンで完了ですが、ちょっと時間がかかります。

以下のようになればOK!

%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab_-_owncloud

これでowncloudは運用できます。お疲れ様でした。

下記のsslを有効にしたら、httpsで接続してください。

https://<IPアドレス>/owncloud/

セキュリティ警告の回避方法

.htaccessを有効にする。

owncloud.conf を新規作成

$ sudo nano /etc/apache2/sites-available/owncloud.conf

以下をコピペ

Alias /owncloud "/var/www/owncloud/"

<Directory /var/www/owncloud/>
  Options +FollowSymlinks
  AllowOverride All

 <IfModule mod_dav.c>
  Dav off
 </IfModule>

 SetEnv HOME /var/www/owncloud
 SetEnv HTTP_HOME /var/www/owncloud

</Directory>

シンボリックリンクを作成する。

$sudo ln -s /etc/apache2/sites-available/owncloud.conf /etc/apache2/sites-enabled/owncloud.conf

ssl有効化

httpsで接続するため、sslを有効にする。

ディレクトリ移動

$ cd /etc/apache2/sites-available
$ ls
000-default.conf  default-ssl.conf

Raspbianではdefault-ssl.conf

これをコピーして使う

$ sudo cp default-ssl.conf owncloud-ssl.conf

ドキュメントルートを変更

$ sudo nano owncloud-ssl.conf
<IfModule mod_ssl.c>

        <VirtualHost _default_:443>

                ServerAdmin webmaster@localhost


                DocumentRoot /var/www/owncloud

/var/www/htmlを/var/www/owncloudへ書き換える。

sslを読み込み直し、apache2をリスタートする。

$ sudo a2enmod ssl
$ sudo a2ensite owncloud-ssl.conf
$ sudo service apache2 restart

参考サイト

公式サイトにより

ownCloud向けのpermissionの設定

shファイルの作成(vimまたはnanoなどで)

一度にパーミッションを変更するスプリクト

書き込めないなどの場合は適用してください。

$ sudo nano setupOwncloud.sh

以下をコピペし、

#!/bin/bash
 ocpath='/var/www/owncloud'
 htuser='www-data'
 htgroup='www-data'
 rootuser='root'

printf "Creating possible missing Directories\n"
 mkdir -p $ocpath/data
 mkdir -p $ocpath/assets

printf "chmod Files and Directories\n"
 find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
 find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750

printf "chown Directories\n"
 chown -R ${rootuser}:${htgroup} ${ocpath}/
 chown -R ${htuser}:${htgroup} ${ocpath}/apps/
 chown -R ${htuser}:${htgroup} ${ocpath}/config/
 chown -R ${htuser}:${htgroup} ${ocpath}/data/
 chown -R ${htuser}:${htgroup} ${ocpath}/themes/
 chown -R ${htuser}:${htgroup} ${ocpath}/assets/

chmod +x ${ocpath}/occ

printf "chmod/chown .htaccess\n"
 if [ -f ${ocpath}/.htaccess ]
 then
 chmod 0644 ${ocpath}/.htaccess
 chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
 fi
 if [ -f ${ocpath}/data/.htaccess ]
 then
 chmod 0644 ${ocpath}/data/.htaccess
 chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess
 fi

実行権限を与え、

$ sudo chmod +x ./setupOwncloud.sh

実行する。

$ sudo ./setupOwncloud.sh

参考サイト

Rapverry Pi に最低限のLAMP環境を構築してみます。 ## 0. 環境 ### 0-1. OS - Raspbian GNU/Linux 8 ### 0-2. 導入内容 - Apache2 - mod_php5 - My...
After a cleaning install (remove folder and database), and after an install by command line as my previous post, I've this in http-error.log : AH00169: ...

デスクトップクライアント

ownCloud is an open source, self-hosted file sync and share app platform. Access & sync your files, contacts, calendars & bookmarks across your devices. You d...

インターフェイスは使いやすいです。後は外部からの接続でどの程度の速度が出るのか楽しみです。続きはまた。

外部からの接続

外から接続するには、DynamicDNSを利用するしかないため、ひとまずは、Wi-Fi内から便利に使う方法を試しました。

iPhoneやiPadで撮影した写真を、自宅Wi-Fiの中に入ったら自動的にバックアップする。

iOSではPhotoSyncというアプリがあります。

これをWebDavを利用して接続します。

ポイントはWebDavのURL

https://<IPアドレス>/owncloud/remote.php/webdav/

あとは通常通りログインのユーザー名とパスワードです。

具体的な使い方は別に記事にします。

デジタルジュン

「習うより慣れろ」「好きこそものの上手なれ」

スポンサーリンク
スポンサーリンク