Linux

ownCloud+nginx+さくらVPSでプライベートクラウド構築

前回、さくらVPS+nginx環境にSSL証明書を導入してHTTPSによる通信ができるようになりました。今回はownCloudを導入して自分専用のファイルサーバを構築していきます。

はじめに

ownCloudはファイル共有サーバー・ソフトウェアです。ownCloud社によりオープンソースの無償版と機能拡張+商用サポートがついた有償版(Enterprise版)が提供されています。

公式はこちら。
owncloud.org

また、ownCloudを開発していたメンバーによって作られたNextcloudというものも存在します。こちらはオープンソースのソフトウェアとして提供することに注力しているようです。
ownCloudとNextcloudの関係については下記が参考になります。

qiita.com

どちらも簡単に言うとDropbox風のファイル共有サーバーを自前で作れますよという機能になります。今回はownCloudの無償版を使います。

ownCloudの導入

概要

使用するVPSは既にWordpressを運用している状態ですので、今回はサブディレクトリにownCloudをインストールします。
具体的にはLinux(CentOS7)に下記ディレクトリ構成でインストールします。

/var/www/wordpress
/var/www/owncloud

それぞれ、
https://”サーバのドメイン”/で接続 ⇒ WordPressにアクセス、
https://”サーバのドメイン”/owncloudで接続 ⇒ ownCloudにアクセス

という感じに住み分けます。

事前準備

まずは下記を用意します。

  1. Linuxサーバ(VPS等)
  2. 独自ドメイン
  3. SSL証明書

Linuxサーバには事前に必要なソフト(nginx, php, mysql(mariaDB))をインストールしておきます。
PHPのバージョンが5.6.0以上である必要があるので注意です。

下記所有者をnginxに変更します。

念のため装置をリブートしておきましょう。

ownCloudのダウンロード

こちらから必要なファイルをダウンロードしてきます。

https://owncloud.org/install/
f:id:segmentation-fault:20171007135910p:plain
f:id:segmentation-fault:20171007135914p:plain

ダウンロードが完了したら/var/wwwに展開して所有者をnginxに変更します。

各種設定

ownCloudにアクセスするために下記の設定ファイルを編集していきます。

(1) /etc/php-fpm.d/www.conf
(2) /etc/nginx/conf.d/myserver.conf

/etc/php-fpm.d/www.conf

ユーザとグループがapacheになっている場合はnginxに変更します。
また、nginxとphp-fpm間で通信する為のUNIXドメインのソケットを追記します。

/etc/nginx/conf.d/myserver.conf

nginxの設置ファイルを編集します。
“location ^~ /owncloud { … }”でくくられた部分でWordpressとownCloudを住み分けてます。

編集が完了したらngint -tでコンフィグの確認をします。

ファイルの編集が終ったらnginx, php-fpmを再起動します。

データベースの作成

ownCloud用にデータベースを作成します。

これで事前準備は完了です。

接続確認

https://”サーバのドメイン”/owncloudで接続して下記画面が出ればOKです。

https://”サーバのドメイン”/の場合はWordpressが起動すること事も確認しましょう。

f:id:segmentation-fault:20171007150821p:plain

管理者アカウント(ownCloudへのログイン用のアカウント)とデータベースファイルを指定してセットアップを行います。
(管理者アカウントにadminを指定するとエラーになるので注意。)

f:id:segmentation-fault:20171007151003p:plain

セットアップ後に下記画面が表示されるので作成した管理者アカウントでログインします。

f:id:segmentation-fault:20171007151204p:plain

無事ログインまで出来れば完了です。

f:id:segmentation-fault:20171007151332p:plain

スマホからアクセス

ownCloud環境を構築できましたのでスマホアプリからアクセスしてみましょう。
私はAndroidユーザなのでAndroidアプリ(有料)を使います。

f:id:segmentation-fault:20171007153553j:plain
f:id:segmentation-fault:20171007153555j:plain

ファイルの参照、追加、削除が出来るか確認しましょう。

ハマったこと

作業の過程で色々なエラーで苦しめられました(^-^;)

PHPのバージョンが古い

現象:こんな画面が表示される。

f:id:segmentation-fault:20171007152225p:plain

対策:PHPのバージョンアップ

/var/run/php-fpm/php-fpm.sockにアクセス不可

現象:こんな画面が表示される。

f:id:segmentation-fault:20171007152934p:plain

原因:/var/run/php-fpm/php-fpm.sockにアクセス権が足りない。

対策:www.confにソケットの権限を追記する。

データベースのユーザ名にハイフン”-“があるとAccess deniedになる。

現象:こんな画面が表示される。

f:id:segmentation-fault:20171007152329p:plain

対策:試しにデータベースのユーザ名を”-“無しにするとエラーが出なくなった。

セットアップ実行で404 Not Foundになる

現象:

公式のマニュアルでExample Configurationsにある例に従って設定してみるも、セットアップ画面までは行くが、セットアップ実行で404 Not Foundになってしまう。

対策:

原因は分からずじまいですが、nginxの設定ファイルに下記を記載したら動作した。

まとめ

セキュリティ的に見直すところもあるとは思いますが、ひとまずownCloudを使って自分だけのファイルサーバを作ることができました。
エラーには苦しめられましたが、それもまた良い勉強になったということで。