RaspberryPi に ownCloud をインストールする手順を記載します。
ownCloud は Dropbox の様なオンラインストレージが構築できるオープンソースのソフトウェアです。
今回は USB接続のハードディスクを接続してownCloudのデータフォルダーとして利用します。
最新版 ownCloud X (10.0)の記事も作成しました。
用意するもの
- Raspberry Pi 3 本体
- microSDカード:4GB以上のもの
- USB接続のハードディスク:容量はお好みで、USB2.0対応のもの。USBメモリでもOKです。
- OS:RASPBIAN JESSIE LITE
ハードディスクを接続するとこのような配線になります。USBポートは4つあるうちどこに差し込んでも構いません。
事前準備
OSイメージを用意します。
Raspbian Jessie Lite のOSイメージファイルを入手する
microSDカードに上記のOSイメージを書き込みます。
microSDカードにOSイメージを書き込む方法
Raspberry PiのIPアドレスは192.168.10.124に設定します。
Raspberry Pi 3 でIPアドレスを固定にする方法
インストール
rootに切り替え
sudo su
既存ソフトウェアのアップデート
apt-get update apt-get upgrade
必要なパッケージをインストール
apt-get -y install nginx openssl ssl-cert php5-cli php5-sqlite php5-gd php5-common php5-cgi sqlite3 php-pear php-apc curl libapr1 libtool curl libcurl4-openssl-dev php-xml-parser php5 php5-dev php5-gd php5-fpm memcached php5-memcache php5-curl varnish
ユーザーを作成
groupadd www-data usermod -a -G www-data www-data
nginxの設定
nano /etc/nginx/sites-available/default 中身を以下に差し替えます。server_nameはowncloud.localとしていますが任意のものに変更してください。 upstream php-handler { server 127.0.0.1:9000; } server { listen 80; server_name owncloud.local; return 301 https://$server_name$request_uri; } server { listen 443 ssl; server_name owncloud.local; ssl_certificate /etc/nginx/cert.crt; ssl_certificate_key /etc/nginx/cert.key; root /var/www/owncloud; client_max_body_size 1000M; fastcgi_buffers 64 4K; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 360; rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect; rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect; rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect; index index.php; error_page 403 /core/templates/403.php; error_page 404 /core/templates/404.php; location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) { deny all; }
PHPの設定
nanoエディタで編集する場合はCTRL+Wキーで検索すると便利です。
nano /etc/php5/fpm/php.ini ファイルアップロードの上限を1000M(1G)バイトに設定 upload_max_filesize = 1000M post_max_size = 1000M
nano /etc/php5/fpm/pool.d/www.conf 以下項目を修正 listen = /var/run/php5-fpm.sock ↓ listen = 127.0.0.1:9000
nano /etc/dphys-swapfile 以下項目を修正 CONF_SWAPSIZE=100 ↓ CONF_SWAPSIZE=512
nano /etc/php5/fpm/pool.d/www.conf 以下項目を修正 ;clear_env = no ↓ clear_env = no
自己証明書を作成
cd /etc/nginx/ openssl genrsa 2048 > cert.key openssl req -new -key cert.key > cert.csr openssl x509 -days 3650 -req -signkey cert.key < cert.csr > cert.crt chmod 600 cert.*
nginx再起動
systemctl restart nginx.service
外付けディスクの接続状況を確認
fdisk -l 一番下に表示される/dev/sda1がUSB接続した機器になります。 Device Start End Sectors Size Type /dev/sda1 2048 1953523711 1953521664 931.5G Microsoft basic data
外付けディスクを初期化
fdisk /dev/sda1 次の順で実行 p パーティションの表示 d パーティションの削除 → pで表示されたものをすべて削除 n パーティションの作成 → 後はすべてデフォルト(エンターキーを押すだけ) p パーティションの表示 → Type=Linux のパーティションが表示されればOK w 設定を反映 q メニューを抜ける
ext4形式でフォーマット
mkfs.ext4 /dev/sda1
ディスクをマウント
mkdir /mnt/usb1 mount /dev/sda1 /mnt/usb1
接続したディスクのUUIDを調べる。fstabに記載するので控えておいてください。
blkid /dev/sda1
自動起動の設定
nano /etc/fstab 次の1行を一番最後に追記します。UUIDはblkidの実行結果を記載。 UUID="4672bf21-7fca-45dc-8337-8df5e23189c5" /mnt/usb1 ext4 defaults 0 0
再起動
reboot
マウントされていればfstabの設定はOK
df 表示例 Filesystem 1K-blocks Used Available Use% Mounted on /dev/root 15448336 1660204 13130600 12% / devtmpfs 469532 0 469532 0% /dev tmpfs 473864 0 473864 0% /dev/shm tmpfs 473864 6364 467500 2% /run tmpfs 5120 4 5116 1% /run/lock tmpfs 473864 0 473864 0% /sys/fs/cgroup /dev/mmcblk0p1 63503 20756 42747 33% /boot /dev/sda1 961301832 73368 912374040 1% /mnt/usb1 →マウントしたUSBハードディスク
USBハードディスクにowncloudのデータフォルダーを作成します。
cd /mnt/usb1 mkdir owncloud chown -R www-data:www-data owncloud
ownCloudのインストール。2017/4/1時点での最新である9.1.4を使います。
mkdir -p /var/www/owncloud cd /var/www wget https://download.owncloud.org/community/owncloud-9.1.4.tar.bz2 tar xvf owncloud-9.1.4.tar.bz2 chown -R www-data:www-data /var/www/owncloud rm owncloud-9.1.4.tar.bz2
ブラウザでRaspberry Pi のIPアドレスを開きます。SSLで保護されていないと警告が出ますが無視してください。
http://192.168.10.124/owncloud
以下を入力して「セットアップを完了します」をクリックします。
セットアップが完了すると設定ファイルが生成されます。ここにmemcachedの設定を追加します。
nano /var/www/owncloud/config/config.php 最後の行「);」の上に1行追加 <?php ~ 中略 ~ 'memcache.local' => '\OC\Memcache\APCu' );
再起動
reboot