【ownCloud】自宅のパソコンをクラウドストレージへ【Raspberry Pi Desktop】

Linux

Raspberry Pi Desktop に ownCloud をインストールし自宅クラウドストレージを構築する

子供が習い事をしていると、必死に打ち込んでいる姿を見るとついつい写真や動画を撮影してしまいますよねー

筆者の子供もサッカースクールに通っていて、試合のたびに写真や動画を撮影しています。

ただ1つ困ったことが・・・

近年はカメラやスマホに内臓されたカメラの画質がよくなった分、写真や動画のサイズも大きくて、仲の良い父兄の方々との共有にいつも苦労していました。

SNS での共有もいいのですが、4K動画などはそれも難しく、オンラインストレージ(以下、クラウドストレージと呼びます)は無料版だと容量が不足し、かと言って、写真や動画の共有のためだけに有料のクラウドストレージと契約するのも嫌なので、自作クラウドストレージを構築することに決定。

その方法は、余っていたパソコンに Raspberry Pi Desktop をインストールし、それにクラウドストレージを構築いたします。

ですので、今回は Raspberry Pi Desktop を使い、自宅のパソコンをクラウドストレージ化する手順を解説したいと思います。



スポンサーリンク

スポンサーリンク

スポンサーリンク

環境紹介

簡単ではありますが、クラウドストレージを構築する環境を紹介したいと思います。

画像クリックで拡大画像を表示します

クラウドストレージを構築するパソコンには、静的 IP アドレス(プライベート)を設定しています。
そのため、インターネットからクラウドストレージを操作するため、ONU の設定も追加いたします。

Disk は HDD です。
SSD も考えたのですが、レスポンスは重要ではないので家で転がっていた 1TB の HDD を搭載しています。




クラウドストレージの構築

今回、クラウドストレージを構築するために ownCloud という無料のソフトウェアを導入します。

ownCloud を簡単に説明すると、オンプレミスの専用 Web サーバなどにクラウドストレージを構築することでファイル共有ができるアプリケーションです。

と、いうことで、今回の目的(写真や動画の共有)に一致していますので、ownCloud を使ったクラウドストレージの構築手順を解説いたします。



パッケージのインストール

まず、はじめに、必要なパッケージをインストールします。

Web サーバーを構築するため、Webサーバーソフトウェアの Apache を、また、ownCloud は PHP と JavaScript で組まれているため、PHP をインストールします。
なお、ウィキペディアでは、「各種データベース管理システムに対応している。」と説明されていますので、データベースには MariaDB を採用いたします。


では、Apache のインストールから開始します。

Raspberry Pi Desktop を起動し、ターミナルを開きます。
また、Apache をインストールするため、以下のコマンドを実行します。

sudo apt install apache2
画像クリックで拡大画像を表示します




次に、PHP をインストールするため、以下のコマンドを実行します。

sudo apt install php7.3 php7.3-curl php7.3-dom php7.3-gd php7.3-intl php7.3-mbstring php7.3-mysql php7.3-zip
画像クリックで拡大画像を表示します




次に、MariaDB をインストールするため、以下のコマンドを実行します。

sudo apt install mariadb-server
画像クリックで拡大画像を表示します




設定ファイルの編集

続いて、設定ファイルの編集を実施します。


ownCloud 用の設定ファイルを作成するため、以下のコマンドを実行します。

cd /etc/apache2/sites-available/
sudo vi owncloud.conf
画像クリックで拡大画像を表示します




次に、作成した ownCloud 用の設定ファイルに設定値を追加します。

画像クリックで拡大画像を表示します


以下が追加した設定値です。

Alias /tamaocloud "/var/www/html/owncloud/"
<Directory /var/www/html/owncloud/>
    Options +FollowSymlinks
    AllowOverride All
    <IfModule mod_dav.c>
        Dav off
    </IfModule>
    SetEnv HOME /var/www/html/owncloud
    SetEnv HTTP_HOME /var/www/html/owncloud
</Directory>




次に、PHP の設定ファイルを変更するため、以下のコマンドを実行します。

sudo vi /etc/php/7.3/apache2/php.ini
画像クリックで拡大画像を表示します




次に、アップロードサイズなどの設定値を変更します。

画像クリックで拡大画像を表示します


以下が変更した設定値です。

upload_max_filesize = 2M → 1024M
max_file_uploads = 20 → 100
post_max_size = 8M → 1024M



次に、シンボリックリンクの作成とモジュールの有効化を実施するため、以下のコマンドを実行します。

sudo a2ensite owncloud.conf
sudo a2enmod rewrite
sudo a2enmod headers
画像クリックで拡大画像を表示します




次に、Apache を再起動するため、以下のコマンドを実行します。

sudo systemctl restart apache2
画像クリックで拡大画像を表示します




データベースの作成

続いて、データベースの作成を実施します。


MariaDB にアクセスするため、以下のコマンドを実行します。

sudo mysql -u root
画像クリックで拡大画像を表示します




次に、データベースの作成とユーザ権限を設定するため、以下の SQL を実行します。

CREATE DATABASE IF NOT EXISTS DB_OwnCloud;
GRANT ALL PRIVILEGES ON DB_OwnCloud.* TO 'root'@'localhost' IDENTIFIED BY 'dbtamaopassword';
画像クリックで拡大画像を表示します

データベース名やユーザー名など、環境にあわせて変更してください。

筆者の環境では、 データベース名 は「DB_OwnCloud」を、ユーザー名には「root」を設定しています。




ownCloud の構築

続いて、ownCloud の構築をおこないます。


ソフトウェアを入手するため、以下のコマンドを実行します。

cd /var/www/html/
sudo wget https://download.owncloud.org/community/owncloud-complete-20210721.tar.bz2
画像クリックで拡大画像を表示します


2021年12月7日時点で日付が最も新しいソフトウェアが入った圧縮ファイルは「owncloud-complete-20210721.tar.bz2」でした。





次に、圧縮ファイルを解凍するため、以下のコマンドを実行します。

sudo tar xvf owncloud-complete-20210721.tar.bz2
画像クリックで拡大画像を表示します




次に、ソフトウェアが入った圧縮ファイルを削除するため、以下のコマンドを実行します。

sudo rm -f owncloud-complete-20210721.tar.bz2
画像クリックで拡大画像を表示します

ソフトウェアが入った圧縮ファイルが不要の場合のみ削除します。
別の環境で流用する場合などは、保管しておいても問題ありません。




次に、データフォルダやセッションフォルダの作成、また、フォルダのアクセス権を設定するため、以下のコマンドを実行します。

sudo mkdir /var/www/html/owncloud/data
sudo chown www-data:www-data /var/www/html/owncloud/data
sudo chmod 750 /var/www/html/owncloud/data
sudo chmod 777 /var/www/html/owncloud
sudo mkdir /var/lib/php/session
sudo chmod 777 /var/lib/php/session
画像クリックで拡大画像を表示します

コマンド実行後に、パソコンの再起動、もしくは Apache の再起動を実施します。


パソコンの再起動、もしくは Apache の再起動を実施しなかった場合、ownCloud の初期設定でエラーになることがあります。




パソコンの再起動後、ownCloud へ Web ブラウザから接続すると、初期設定画面が表示されます。
適切な値を設定し、[セットアップを完了] をクリックします。

画像クリックで拡大画像を表示します

[ユーザー名] と [パスワード] は、新規で管理者アカウントを設定します。

また、データベースの設定では、「データベースの作成」で作成したデータベース用のユーザーやデータベース名を設定します。

なお、[データーフォルダー] は、デフォルトで表示されている値で問題ありません。




クラウドストレージの検証

クラウドストレージの構築が完了しましたので、プライベートネットワーク内でクラウドストレージの検証を実施します。


ownCloud の初期設定が完了すると、ownCloud ログイン画面が表示されます。
[ユーザーまたはメールアドレス] と [パスワード] を入力し、[ログイン] をクリックします。

画像クリックで拡大画像を表示します

[ユーザーまたはメールアドレス] と [パスワード] には、「ownCloud の構築」で設定した「ユーザー名」と「パスワード」を入力します。




ownCloud にログインできました。
また、ローカルのファイルをアップロードすることができました。

画像クリックで拡大画像を表示します
画像クリックで拡大画像を表示します




同一ネットワーク上の別のパソコンからも ownCloud へのログインができ、アップロードしたファイルの確認もできました。

画像クリックで拡大画像を表示します

ownCloud は、正常に機能しています。




インターネット対応

ownCloud として機能していますが、インターネット経由でクラウドストレージにアクセスすることができません。

プライベートネットワーク内だけで活用するのであればそれでも問題はないのですが、今回の場合、外部からアクセスが必須要件なため、ポートを開放し、インターネット経由でクラウドストレージにアクセスする設定を追加します。

ONU に HG8045Q を利用しているため、HG8045Q の設定方法を解説しますが、それ以外をご使用の場合はそちらの設定を確認してください。




HG8045Q にログインし、[転送ルール] → [ポートマッピング設定] を開きます。
また、画面上部に配置された [新規作成] をクリックし、ポートマッピング設定を追加します。

画像クリックで拡大画像を表示します

画面下部に配置された [新規作成] をクリックすると、[プロトコル] などが設定できるようになります。




次に、ownCloud の設定ファイルを変更するため、以下のコマンドを実行します。

sudo vi /var/www/html/owncloud/config/config.php
画像クリックで拡大画像を表示します

ポートの開放はできましたが、インターネット経由でクラウドストレージ(グローバル IP アドレス)へアクセスしてもエラーになるため、その対応となります。




次に、プライベート IP アドレスが設定されている箇所を、グローバル IP アドレスに置き換えます。

画像クリックで拡大画像を表示します
画像クリックで拡大画像を表示します




外部からのクラウドストレージの検証

ポート開放とグローバル IP アドレスへの対応が完了しましたので、インターネット経由でクラウドストレージの検証を実施します。


グローバル IP アドレスへアクセスすると ownCloud ログイン画面が表示されます。
[ユーザーまたはメールアドレス] と [パスワード] を入力し、[ログイン] をクリックします。

画像クリックで拡大画像を表示します

ownCloud ログイン画面が表示されましたので、インターネット経由でもクラウドストレージにアクセスできています。




インターネット経由でも ownCloud にログインできました。

画像クリックで拡大画像を表示します

[sample.xlsx] もダウンロードできました。




Android(スマホ)からもクラウドストレージにアクセスできています。

画像クリックで拡大画像を表示します
画像クリックで拡大画像を表示します




iPhone(スマホ)からもクラウドストレージにアクセスできています。

画像クリックで拡大画像を表示します
画像クリックで拡大画像を表示します




まとめ

以上が、自宅のパソコンに ownCloud をインストールし、クラウドストレージ化する手順となります。

いかがでしたでしょうか。

今回の例では、自宅のパソコンをクラウドストレージ化することで、約 1TB のクラウドストレージを運用することができました。

それにより、パブリックなクラウドストレージの制限から解放されますので、かなり自由に使うことができるようになります。

運用時間やアクセス、ファイルサイズなど、色々な制約を自分で設定できますので自由度が高く使い勝手がよいと思います。

また、ownCloud は、ネットで情報を探せば 2~3時間で構築できてしまうので、そのあたりの情報量の多さもメリットだと思います。
情報量が少ないと、構築のハードルは上がってしまいますよねー

あと、クラウドストレージなので当然だとは思いますが、ownCloud も Web ブラウザがあればデバイスに依存しな点もいいですね。

ただし、いい事ばかりではありません。

フル稼働すれば、電気代はそれなりにかかります。筆者は低電力のパソコンにクラウドストレージを構築したため、1ヶ月フル稼働しても電気代は300~400円ぐらいですが、消費電力が大きいパソコンの場合は・・・ゾッとします。
それでも、大容量のクラウドストレージを契約するよりはコストを抑えられるとは思いますが・・・どうなんでしょう。

今後の課題としては、DDNS と SSL への対応です。
共有する人が増えた場合、限定した人しか使わないとはいえ、グローバル IP アドレスをさらし、また、暗号化しないで使い続けるのは恐怖です。
※本稿の投稿後に執筆した DDNS と SSL への対応手順です。よろしければこちらもご覧ください。

もう1つの課題は、セキュリティです。
セキュリティ対策をせずにが外部に公開した場合、大変なことがおきると思いますので、これも近いうちに対応いたします。
※本稿の投稿後に執筆したセキュリティへの対応手順です。よろしければこちらもご覧ください。

あとは、パフォーマンスも・・・ まだまだやることがありました。

次は、パフォーマンスの改善方法を解説したいと思います。




本稿をご覧になっていただいている読者様の中で、もし、インフラエンジニアを目指している方、もしくはインフラエンジニアに興味がある方がいらっしゃれば、スクールで学ぶことも「あり 」です。
いくつかインフラ系の技術が学べるスクールをピックアップいたしましたので、ご検討の一助となれば幸いです。

 スクール  受講料  受講期間  ポイント
ササエル 19,800円 14レッスン 初級のインフラエンジニアに特化したオンラインスクールです。インフラエンジニアを目指すなら、まずはここから!?
98,000円 15レッスン 初級の次は中級も学べます。
TechAcademy [テックアカデミー] 174,900円(※1) 4週間プラン コースにより、若干、インフラ要素あり。また、学べる言語が細分化されているので、目的に合ったコースが選べます。
【CCNAコース ウズウズカレッジ】 33,000円/月 1ヶ月~ 応募資格を満たしていれば、無料特待プランで受講料が無料!?
初心者OK!KENスクール 187,000円(※2) 50時間 ネットワークコースのLinuxレベル1取得講座。Webサーバーの構築まで学べます。
119,900円(※2) 30時間 ネットワークコースのWindows Server構築講座。クライアントOSの管理操作を学べます。
※1.フロントエンドコースの料金です。学生の場合、料金は163,900円と割引があります。
※2.スクール提携企業特別割引の場合、受講料が10~15% OFF、入会金無料。学生割引特典の場合、全講座料金 20% OFF。




最後までお読みいただきありがとうございました。


では。


スポンサーリンク

スポンサーリンク

Linux
スポンサーリンク
たまおをフォローする
スポンサーリンク
たまーのテクノロジー
タイトルとURLをコピーしました