本文へジャンプします。

ownCloudを使ったクラウドストレージ構築(導入編)

DropBoxをはじめとして、様々なクラウドストレージサービスが提供されていますが、無料サービスの容量が急に縮小されたり、情報セキュリティの観点からデータを外部サービスに預けるのは好ましくない、と考えるケースもあるかと思います。そのような場合に、自前でクラウドストレージを構築できる「ownCloud」を利用するケースが増えているようです。

ownCloudは、Webブラウザーでのアクセスはもちろん、WindowsやMac OS X、iOSにAndroidといったクライアントアプリケーションが用意されており、オープンソース版であれば無償で利用できるのも魅力です。

今回は、ownCloudをニフティクラウド上に導入し、Windowsクライアントから接続するまでの手順を解説します。

前提条件

ownCloudの最新版であるバージョン9をニフティクラウド上にインストールしますが、いくつか前提条件があるのでまとめておきます。

サーバータイプ

e-small(1vCPU/1GBメモリ)で作成します。ownCloudを利用するユーザー数によってはCPUやメモリを増やしてください。また、保存するファイル容量に応じてディスク容量も増やしてください。

IPアドレス

付替IPで固定IPアドレスが割り当てられるように設定します。

DNSによる名前解決

DNSを設定してホスト名から固定IPアドレスを名前解決できるように設定しておきます。

解説では、www.example.comというホスト名を使用していますが、適宜自分のホスト名に置き換えるようにしてください。

OS

CentOS 7を使用します。サーバーを作成後、yumコマンドでアップデートを行っておきます。

sudo yum update -y

フロントエンドWebサーバー

Apache Webサーバーを使用します。

PHP

ownCloud 9はPHP 7に対応していますが、今回はCentOS 7の標準であるPHP 5.4を使用します。必要に応じて、PHP 5.5やPHP 7を導入するようにしてください。CentOS 7へのPHP 5.5の導入方法はownCloudのインストレーションガイドでも紹介されています。

CentOS 7 Upgrade to PHP 5.5
https://doc.owncloud.org/server/9.0/admin_manual/installation/php_55_installation.html#centos-7-upgrade-to-php-5-5

バックエンドDB

デフォルトではSQLiteを使用していますが、MySQLを導入します。

HTTPS接続

クライアントサーバー間の接続をセキュアにするために、HTTPS接続を設定することが推奨されます。ownCloudが使用するApache WebサーバーにHTTPSで接続できれば良いので、ownCloud特有の設定は必要ありません。
今回は動作テスト用に、無償でSSL/TLS通信用(正確にはTLSのみ)のサーバー証明書の発行が行える「Let’s Encrypt」を使ってHTTPS接続を可能にします。

Let’s Encryptについて

Let’s Encryptは、非営利団体のISRG(Internet Security Research Group)が運営している、サーバー証明書の発行サービスです。スクリプトを使って簡単にサーバー証明書を発行できます。

ただし、証明書の有効期間は3ヶ月なので定期的に更新を行わなければいけない、ドメインの存在を確認するだけの「ドメイン認証(DV:Domain Validation)証明書」であることなどの制約があります。

ビジネス用途で信頼性の高いサーバー証明書が必要な場合には、有償のサーバー証明書発行サービスを利用して、「企業認証(OV:Organization Validation)証明書」や「EV(Extended Validation)証明書」などの発行を受けるようにしてください。

ownCloudをインストール

ownCloudをyumコマンドでインストールします。

ownCloudリポジトリを登録

ownCloudのYumリポジトリを登録します。

sudo rpm --import https://download.owncloud.org/download/repositories/stable/CentOS_7/repodata/repomd.xml.key
sudo wget http://download.owncloud.org/download/repositories/stable/CentOS_7/ce:stable.repo -O /etc/yum.repos.d/ce:stable.repo

owncloudパッケージをインストール

yumコマンドでowncloudパッケージをインストールします。
パッケージはowncloudパッケージとowncloud-filesパッケージに分かれています。owncloudパッケージは依存関係を解消するために使用されているパッケージ、owncloud-filesパッケージがownCloud本体となります。

sudo yum install owncloud -y

MySQLをインストール

バックエンドDBとしてMySQLをインストールします。手順の詳細はZabbixをインストールする手順を解説したブログ記事を参照してください。

Zabbixでニフティクラウドを監視する(導入編)
http://blog.cloud.nifty.com/to_monitor_the_niftycloud_in_zabbix#title3

MySQLリポジトリを登録

MySQLのコミュニティ版のYumリポジトリを登録します。

sudo rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

MySQLをインストール

yumコマンドでMySQLをインストールします。

sudo yum install mysql-server -y

MySQLの起動

systemctlコマンドを使って、mysqldサービスを起動します。システム起動時に自動起動するように有効にしておきます。

sudo systemctl start mysqld
sudo systemctl enable mysqld

MySQLの初期rootパスワードの確認

MySQLは、初期起動時にスーパーユーザー(root)のパスワードをランダム設定しますので、確認しておきます。

sudo grep password /var/log/mysqld.log

MySQLのセキュリティ設定

必要に応じて、MySQLの初期状態をよりセキュアにするためのmysql_secure_installationスクリプトを実行します。具体的な実行例はZabbixインストール記事を参照してください。

sudo mysql_secure_installation

rootのパスワードが変更されますので、MySQLのrootパスワードが初期パスワードから以下のパスワードに変更されていると想定して解説を進めます。

パスワード種別
元パスワード /var/log/mysqld.logに記録されたもの
新パスワード NicoPri120%

ownCloud用データベースの作成

MySQLにownCloud用のデータベースユーザーとデータベースを作成しておきます。

mysql -uroot -p

MySQLのrootパスワードを入力してMySQLに接続したら、以下のSQLを実行します。

CREATE DATABASE owncloud;
CREATE USER owncloud IDENTIFIED BY 'NicoPri120%';
GRANT ALL ON owncloud.* TO 'owncloud'@'localhost' IDENTIFIED BY 'NicoPri120%';
FLUSH PRIVILEGES;

サーバー証明書のインストールと設定

Let’s Encryptを使用してサーバー証明書を発行し、Apache WebサーバーでHTTPS接続が可能なように設定します。

gitコマンドのインストール

gitコマンドをインストールします。

sudo yum install git -y

Let’s Encryptクライアントのインストール

Let’s Encryptのサーバー証明書を発行するためのクライアントをインストールします。

cd
sudo git clone https://github.com/certbot/certbot
sudo cd ./certbot
sudo ./certbot-auto --help

certbot-autoスクリプトのヘルプが表示されれば、インストールは成功です。

Apache Webサーバーの起動

Let’s Encryptはドメインの存在確認のためにWebサーバーにアクセスします。あらかじめ、Apache Webサーバーを起動しておきます。

sudo systemctl start httpd
sudo systemctl enable httpd

サーバー証明書の発行

certbot-autoスクリプトを実行して、サーバー証明書の発行を行います。

sudo ./certbot-auto certonly -w /var/www/html \
-d www.example.com \
-m admin@example.com \
--agree-tos

初回実行時にはyumコマンドで必要なパッケージがインストールされます。インストールの可否を確認されるので、yと入力してください。

サーバー証明書の発行が完了すると、以下のメッセージが表示されます。

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/www.example.com/fullchain.pem. Your cert will
   expire on 2016-08-15. To obtain a new version of the certificate in
   the future, simply run Certbot again.

/etc/letsencrypt/live/ドメイン名/ディレクトリに、各種証明書ファイルが保存されます。

HTTPSの設定

Apache Webサーバーの設定を変更して、HTTPS接続を有効にします。

発行されたサーバー証明書、秘密鍵、中間CA証明書の3つを読み込むように設定します。

sudo vi /etc/httpd/conf.d/ssl.conf

以下の点を変更します。

SSLProtocol all -SSLv2 -SSLv3 ←SSLv3も無効化

#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/letsencrypt/live/www.example.com/cert.pem ←サーバー証明書の指定

#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem ←秘密鍵の指定

#SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt
SSLCertificateChainFile /etc/letsencrypt/live/www.example.com/chain.pem ←中間CA証明書の指定

Apache Webサーバーの再起動

HTTPS接続の設定を有効にするためにApache Webサーバーを再起動します。

systemctl restart httpd

Webブラウザで以下のアドレスにアクセスして、HTTPS接続が可能になったことを確認します。

https://www.example.com/

ownCloudの初期化

Webブラウザからインストールウイザードにアクセスして、ownCloudの初期設定を行います。

https://www.example.com/owncloud/

設定画面の各項目は、以下の通りに指定します。

install

管理者アカウントの指定

設定項目 設定値
ユーザー名 admin
パスワード 適当な強度を持ったパスワード

バックエンドDBをMySQLに変更するために、「ストレージとデータベース」をクリックします。

データフォルダーは、ユーザーが保存したファイルが格納されるディレクトリを指定します。十分な容量を割り当てたディレクトリを指定してください。

設定項目 設定値
データフォルダー /var/www/html/owncloud/data

「データベースを設定してください」で「MySQL/MariaDB」を選択し、あらかじめ作成したデータベースの情報を設定します。

設定項目 設定値
データベースのユーザー名 owncloud
データベースのパスワード NicoPri120%
データベース名 owncloud
データベースのホスト名 localhost

入力が完了したら、「セットアップを完了します」をクリックします。

セットアップが完了すると、作成した管理者アカウントでログインした状態になります。

これでownCloudが使用可能になりました。

次回はユーザー作成および各種クライアントからの接続について解説します。
ownCloudを使ったクラウドストレージ構築(活用編)

ニフティクラウド 導入相談窓口
ニフティクラウド 無料セミナー

閉じる

閉じる

クラウドブログ編集部

クラウドブログ編集部

ニフティクラウド ユーザーブログ編集部のアカウントです。 編集部からのお知らせや、レギュラーライター以外のゲストによる寄稿記事を掲載していきます。

浜中 慶

浜中 慶

1980年、神奈川県生まれ。2003年ニフティ入社。 ポータルサイト開発を中心に、音楽配信サービス、CGMサービスなど様々なプロジェクトに企画/デザイン/システム担当として参加。現在は@niftyのポータルサービス向けコンテンツ管理システムの企画/開発/運用を担当。

吉田 雄哉

吉田 雄哉

株式会社co-meetingの創業メンバー。「取締役&External- facing Technologist」と名乗り新しいIT技術を広く伝える活動とWebアプリケーション開発を行う毎日。パッケージベンダーでのSaaS立上げ・製造業の情報システム部門で企画やPM・受託開発と従事してきたため、ベンダーサイドとユーザサイド の両方の視点を持ち合わせる。

石田 健亮

石田 健亮

株式会社ドリーム・アーツで小売事業者向けSaaS「Shopらん」を企画、開発。メインの仕事はプログラマーだがサーバー管理や営業もこなすユーティリティプレイヤー。最近好きな事はパフォーマンスチューニング。特に並列化プログラミングがマイブーム。キライなことはデータセンターでの作業。騒音と乾燥が弱点。ニフティクラウドでデータセンターに行く必要が無くなったことが本当の利点だ と思っている。

五月女 雄一

五月女 雄一

ニフティでは「インフラを守る簡単な様で奥が深いお仕事」をしています。 夢はインフラの気持ちが読めるエンジニアになること。

わたなべ かずひろ

わたなべ かずひろ

専門学校卒業後、ソフトウェア開発会社で電力系統制御システムの開発に従事。その後、CD-ROM等マルチメディア系PCソフトの開発を経て、1998年フリーランスに。 2000年8月に株式会社イーツーの設立に参画。携帯を含む様々なWeb系のシステム開発に携わる。現在はiPhone/Androidアプリなどの開発も手がけている。

市角

市角

ニフティクラウドのコントロールパネル設計・開発をメインに、たまにインフラの運用やお手伝いもやっていたりします。コントロールパネルや新機能の活用方法、アイデアなどを中心に書いていく予定です。

仲山 昌宏

仲山 昌宏

歌って踊れるインフラエンジニア兼、PHPもRubyもJavaも書くPerl使い。 物理サーバの運用に飽きて、フルラックに格安サーバ詰めて自宅プライベートクラウドを構築中。 今年は個人的には分散処理を攻めていきます。

猪飼 賢広

猪飼 賢広

1984年、愛知県名古屋市生まれ。大学は福島県にある某大学。2008年ニフティに入社。 開発系部署に配属後、主に各種テーマサイト開発のシステム面調整、開発進行管理役などとして参加。 現在もPC・ガラケーサイトの開発まわりを担当。インフラまわりを触る案件にも携わっており、日々修行中。 好きな芸人はなかやまきんに君とレイザーラモンRG。

久江 裕之

久江 裕之

ニフティクラウドのインフラ運用、OS提供の仕事をしています。 新しいOSやイメージが出る時にこのブログでご紹介いたします。入社5年目。一流のインフラエンジニアを目指して日々勉強中。

竹内 豪

竹内 豪

ニフティクラウド エンジニア

山口

山口

ニフティクラウドの基盤設計、新サービス/アライアンス/インフラ企画、その他雑用全般を担当しています。 クラウドに欲しい機能や、こんなふうに使ってほしいという想いが共有できれば良いですね。

芳中 隆幸

芳中 隆幸

ニフティクラウドの開発、運用を担当しています。

酒井 浩平

酒井 浩平

ニフティクラウドの中にいます。 ネットワークまわりの運用・開発や自動化などに取り組んでいます。 すべてのエンジニアを幸せにすることを目指しています。

higebu

higebu

ニフティクラウド IaaSのエンジニアです。 ネットワーク、DRサービス with VMware vCloud® Air™ Technology辺りの担当をしています。

武田

武田

ニフティクラウドの開発・運用を担当しています。 各種機能の内容についてなどで執筆させていただく予定です。

福澤真

福澤真

ニフティクラウドのコンパネ開発、運用をしています。

森藤 大地

森藤 大地

データに関する仕事が好きです。

宮原徹

宮原徹

日本仮想化技術株式会社 代表取締役社長兼CEO。仮想化技術に関するコンサルタントとして長年活動しており、特にベンチマークテストによる性能評価を得意としている。

荒谷翔

荒谷翔

株式会社はてなでMackerelのセールスデベロッパーとして勤務しています

東條 望

東條 望

2014年にニフティへ中途入社。 入社後から現在まで、ニフティクラウドのサービス企画・開発を担当しています。 各サービスの紹介を執筆させていただく予定です。

世良迪夫

世良迪夫

ニフティクラウドのRDBなどを担当しています