1Gbpsの高速なネットワークをゆったり利用できるNTTPCコミュニケーションズのVPSサービスを試す 4ページ

オンラインストレージソフトウェア「ownCloud」を利用する

 WebARENAのVPSではユーザーにroot権限が渡され、任意にソフトウェアをインストールできる。そのためさまざまな活用方法が考えられるが、ここではその1つとして、「ownCloud」というソフトウェアを用い、リモートからアクセスできるファイルサーバー/オンラインストレージとして利用する例を紹介しよう。

 ownCloudはデスクトップ環境KDEの開発者らが開発/リリースしている、オンラインストレージ/ファイルサーバーソフトウェアだ(図17)。「AppleのiCloudやDropboxといったクラウド型オンラインストレージサービスをユーザーが管理しているサーバーで提供する」というコンセプトで開発されており、Webブラウザからアクセスしてファイルをアップロード/ダウンロードしたり、アップロードされたドキュメントをWebブラウザ上で閲覧する、といった機能を備えている。

図17 ownCloudのファイル一覧画面
図17 ownCloudのファイル一覧画面

 また、WebブラウザだけでなくWebDAV対応ファイルマネージャからのアクセスにも対応しており、iPhoneやAndroidといったスマートフォンからのアクセスも可能だ(図18)。カレンダーや連絡先、ブックマークの共有といった機能も備えている。

図18 iPhoneからWebDAVクライアントを利用してownCloudにアクセスすることもできる
図18 iPhoneからWebDAVクライアントを利用してownCloudにアクセスすることもできる

 以下では、ownCloudのインストールや設定だけでなく、必要となるPHP 5.3系のインストールやSSLを利用するための設定についても解説していく。これらはownCloudだけでなくほかのWebアプリケーションなどを利用する際にも参考になるはずだ。

ownCloudのインストールに必要な作業

 今回利用するownCloudのバージョンは、2011年1月27日にリリースされたownCloud 3だ。また、OSはCentOS 5を選択している。CentOSではyumコマンド、もしくはRPMパッケージを利用してソフトウェアをインストールするのが一般的だが、ownCloudはまだCentOSの公式パッケージとしては提供されていないため、配布されているソースコードを手動でインストールする形となる。

 なお、ownCloudの利用にはPHP 5.3以上および関連パッケージと、データベースとしてMySQLもしくはPostgreSQLが必要となる。WebARENAのVPSでCentOS 5を選択した場合、デフォルトでPHPおよびMySQL、PostgreSQLがインストールされているが、PHPのバージョンが5.1系と低いため、PHP関連パッケージをPHP 5.3系のものに置き換える必要がある。また、データベースの準備やSSLの設定なども必要だ。

PHP 5.3系のインストール

 CentOS 5系の標準PHPパッケージはPHP 5.1系となっている。しかし、PHP 5.1系の開発はすでに終了しており、2006年8月にリリースされた5.1.6以降はアップデートが行われていない。PHPの現在の安定版は5.3系で、現在では5.3系でしか動かないPHPアプリケーションも少なくない。幸いCentOS 5では「php53」という名称でPHP 5.3系が提供されているため、これをインストールするだけで容易にPHP 5.3系環境を構築できる。ただしphp53パッケージは標準の「php」パッケージと同時にはインストールできないため、まず標準でインストールされているphpパッケージを削除し、新たにphp53パッケージのインストールを行う形となる。

 phpパッケージを削除するには、次のように「yum erase」コマンドを利用する。

# yum erase php php-*

 このとき、削除されるパッケージ一覧が表示されるので確認しておこう。削除が完了したら、続けて「yum install」コマンドでphp53パッケージをインストールする。

# yum install php53

 また、関連パッケージもインストールしておこう。PHP 5.3向けの関連パッケージは「php53-<モジュール名>」という名称となる。たとえばGDの場合、PHP 5.1系のパッケージ名は「php-gd」となり、PHP 5.3系のパッケージ名は「php53-gd」となる。WebARENAのVPSハイスペック(SuitePRO V3)でCentOS 5を選択した場合、「php-gd」や「php-mbstring」、「php-mysql」など7モジュールがインストールされていた。そのため、次のようにこれらのPHP 5.3版をインストールしておく。なお、「php-pear」についてはPHPのバージョン番号に依存しないモジュールとなっており、PHP 5.3でも同じパッケージのものが利用できる。

#  yum install php53-devel php53-gd php53-mbstring php53-mysql php53-pdo php-pear php53-pgsql

 ownCloudでは上記のパッケージに加えて「php53-xml」モジュールも必要となるので、こちらもインストールしておく。

# yum install php53-xml

SSLの設定

 ownCloudではインターネット経由でファイルのアップロード/ダウンロードなどを行うため、通信経路をSSLによって暗号化することが好ましい。SSLを利用するには、あらかじめサーバー側で暗号鍵やサーバー証明書を作成しておく必要がある。暗号鍵やサーバー証明の作成についてはいくつか方法があるが、ここではウィザード形式で設定を行える「crypt-utils」を利用する方法を紹介する。

まず、「yum install」コマンドでcrypt-utilsパッケージをインストールする。
# yum install crypto-utils

 次に、「/etc/pki/tls/」ディレクトリ内で「genkey」コマンドを実行する。genkeyの引数には使用するサーバーのドメイン名(完全修飾ドメイン名、FQDN)を指定する。たとえば「example.com」というサーバーの場合、「genkey example.com」とすれば良い。

# cd /etc/pki/tls/
# genkey <ドメイン名>

 genkeyコマンドを実行すると、暗号鍵やサーバー証明書の作成を行うウィザードが表示される(図19)。サーバー名、暗号鍵および証明書の保存先が表示されるので、確認して「Next」を選択する。

図19 genkeyコマンドではウィザード形式で暗号鍵やサーバー証明書を作成できる
図19 genkeyコマンドではウィザード形式で暗号鍵やサーバー証明書を作成できる

 鍵のサイズは特に必要がない限りはデフォルトの「1024」のままで問題ないだろう(図20)。

図20 鍵のサイズを指定して「Next」を選択する
図20 鍵のサイズを指定して「Next」を選択する

 次に、Certificate Request(CSR)を生成するかどうかの選択画面が表示される(図21)。通常はここで生成したCSRを証明機関に送付して証明書を作成してもらうが、サーバーを個人用として利用する場合など正規の証明書を使用しない場合はCSRは不要なので、その場合は「No」を選択する。

図21 Certificate Request(CSR)が不要な場合は「No」を選択する
図21 Certificate Request(CSR)が不要な場合は「No」を選択する

 なお、ここで「Yes」を選択してCSRを生成する場合、CSRを送付するCA(認証局)を選択する画面が表示されるので、適切なものを選択する。

 続けて、サーバー証明書に記載する組織名などの情報を入力する画面となる。ここでは表13の情報を英語で入力する(図22)。

図22 サーバー証明書に記載する組織情報を入力する
図22 サーバー証明書に記載する組織情報を入力する
表13 入力する組織情報
項目名 入力する情報
Country Name 国名を2文字のISOコードで入力する。日本なら「JP」
State or Province Name 都道府県名
Locality Name 市町村名
Organization Name 組織名(法人名)
Organization Unit Name 部署名
Common Name 証明書を使用するドメイン名

 また、暗号鍵ファイル自体を暗号化する場合、次の「Protecting your private key」画面で「Encrypt the private key」にチェックを入れ、次の画面でパスフレーズを指定する(図23、24)。

図23 秘密鍵を暗号化する場合、「Encrypt the private key」にチェックを入れる
図23 秘密鍵を暗号化する場合、「Encrypt the private key」にチェックを入れる
図24 秘密鍵の暗号化に使用するパスフレーズを入力する
図24 秘密鍵の暗号化に使用するパスフレーズを入力する

 以上でサーバー証明書の作成は完了だ。作成された証明書および暗号鍵は、「/etc/pki/tls/certs/<ホスト名>.cert」および「/etc/pki/tls/private/<ホスト名>.key」というファイルに保存される。

 最後に、Apache httpdの設定ファイルを編集して作成した証明書および暗号鍵を利用するよう設定する。CentOS 5のApache httpdにおいて、SSL関連の設定ファイルは「/etc/httpd/conf.d/ssl.conf」となる。変更すべき個所は「SSLCertificateFile」と「SSLCertificateKeyFile」の2点だ。まず「SSLCertificateFile」では、サーバー証明書のパス名を指定する。

#   Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate.  If
# the certificate is encrypted, then you will be prompted for a
# pass phrase.  Note that a kill -HUP will prompt again.  A new
# certificate can be generated using the genkey(1) command.
#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/pki/tls/certs/<ドメイン名>.cert

 「SSLCertificateKeyFile」では、暗号鍵のパス名を指定する。

#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/pki/tls/private/<ドメイン名>.key

 設定ファイルの変更後、Apache httpdを再起動すると設定が反映される。このとき、暗号鍵を暗号化している場合は作成時に指定したパスフレーズの入力が求められる。

# /sbin/service httpd start
httpd を起動中: Apache/2.2.3 mod_ssl/2.2.3 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server localhost.localdomain:443 (RSA)
Enter pass phrase:  ←パスフレーズを入力する

OK: Pass Phrase Dialog successful.
                                                           [  OK  ]

MySQLの設定

 ownCloudは各種情報の保存先としてデータベースを利用するため、あらかじめデータベース側にownCloudが利用するユーザーおよびデータベースを用意しておく必要がある。使用するデータベースとしては複数がサポートされているが、ここではMySQLを利用する場合について説明しておこう。

 まず、MySQLが起動していなければ先に起動させておく。

# /etc/init.d/mysqld start

 次にmysqlコマンドを起動し、次のようにしてユーザーおよびデータベースを作成する。ここではownCloudが利用するデータベースとして「owncloud」と、アクセス用のユーザー「owncloud」を作成している。

# mysql
 :
 :
mysql> create database owncloud;
 :
 :
mysql> GRANT ALL PRIVILEGES ON owncloud.* TO owncloud@localhost IDENTIFIED BY '<パスワード>';
 :
 :
mysql> exit
Bye

ownCloudのインストール

 最後にownCloud本体のインストール作業を行っていく。ownCloud本体はownCloudのWebサイトから入手できる。WebブラウザでダウンロードしたものをVPSにコピーしても良いが、ダウンロードツールを使ってVPS側で直接ダウンロードするのが手軽だ。たとえば「wget」を使ってダウンロードする場合、次のようにする。

$ wget http://owncloud.org/go/owncloud-download

 これにより、カレントディレクトリに「owncloud-3.0.0.tar.bz2」というファイルがダウンロードされる。こちらを適当なディレクトリに展開し、Apache httpdでそのディレクトリを公開できるよう設定すれば良い。今回は「/var/owncloud/」ディレクトリ以下にファイルを展開し、これを「https://<ドメイン名>/owncloud/」というURLでアクセスできるように設定する。

 まず、ダウンロードしたファイルを/var/ディレクトリ以下に展開する。

# cd /var
# tar xvjf ‾/owncloud-3.0.0.tar.bz2

 これで、/var/ownclooudというディレクトリが作成され、そこにファイルが展開される。次に、/var/owncloudディレクトリ以下のファイルの所有者およびグループをApache httpdが使用する「apache」に変更しておく。

# chown -R apache:apache owncloud

 続いて、「/var/owncloud/」以下に「https://<ドメイン名>/owncloud/」でアクセスできるように設定ファイル「/etc/httpd/conf.d/owncloud.conf」を作成する。設定に必要な最低限の項目を次のリスト2で示すが、必要に応じてアクセス設定やログの分離などを行うと良いだろう。

リスト2 最低限の「owncloud.conf」

#
# owncloud.conf
#

Alias /owncloud /var/owncloud

<Location /owncloud>
    Order allow,deny
    Allow from all
</Location>

 最後に、Apache httpdを再起動すればownCloudにアクセスできるようになるはずだ。

# /sbin/service httpd restart

ownCloudの設定

 ownCloudの設定はWebブラウザ上で行える。「https://<ドメイン名>/owncloud/」にWebブラウザでアクセスすると、次のような初期設定画面が表示されるはずだ(図25)。

図25 「https://<ドメイン名>/owncloud/」にアクセスすると初期設定画面が表示される
図25 「https://<ドメイン名>/owncloud/」にアクセスすると初期設定画面が表示される

 ここで「Advanced」をクリックするとデータベース関連の設定を入力する項目が表示されるので、管理用のアカウント名とパスワード、データ保存用ディレクトリ、データベースアクセスに使用するユーザー名とパスワード、データベース名、データベースのホスト名を指定する(図26)。必要な事項の入力後「Finish setup」をクリックするとユーザーの作成と設定が完了する。

図26 管理者アカウントやアクセスに使用するデータベースのユーザー名などを入力する
図26 管理者アカウントやアクセスに使用するデータベースのユーザー名などを入力する

 設定が完了すると、次のようなownCloudのファイルマネージャ画面が表示されるはずだ(図27)。

図27 ownCloudのファイルマネージャ画面
図27 ownCloudのファイルマネージャ画面

 なお、モジュールの不足などによって正常にownCloudが実行できない場合、問題点とともにエラー画面が表示される。たとえば必要なモジュールが不足している場合、その旨が表示される(図28)。

図28 ownCloudが正しく実行できない場合、エラー画面が表示される
図28 ownCloudが正しく実行できない場合、エラー画面が表示される

ownCloudにWebDAVで接続する

 ownCloudはWebDAV経由でのアクセスにも対応している。特に追加の設定などは不要で、WebDAVクライアントから「https://<ドメイン名>/owncloud/files/webdav.php」というURLで接続すれば良い(図29)。

図29 Windows向けのWebDAVクライアント「CarotDAV」でownCloudに接続した例
図29 Windows向けのWebDAVクライアント「CarotDAV」でownCloudに接続した例

アップロードサイズを変更する

 ownCloudはPHPで実装されているため、アップロードできる最大ファイルサイズはPHPの設定に依存する。デフォルトでは2MBと小さいので、大きいファイルをやりとりしたい場合は設定を変更しておこう。設定の変更は、「/etc/php.ini」ファイルをテキストエディタなどで編集することで行う。変更すべき個所は「post_max_size」および「upload_max_filesize」、「memory_limit」だ。

 post_max_sizeおよびupload_max_filesizeの小さい方がアップロードできる最大のファイルサイズとなる。また、memory_limitはPHPが使用する最大メモリサイズを指定するもので、こちらはpost_max_sizeおよびupload_max_filesizeよりも大きい値に設定しておく必要がある。たとえば次の例は、post_max_sizeを120MBに、upload_max_filesizeを100MB、memory_limitを128MBに設定した例だ。この場合、最大100MBまでのファイルをアップロードできる。

; Maximum size of POST data that PHP will accept.
; http://www.php.net/manual/en/ini.core.php#ini.post-max-size
post_max_size = 120M
; Maximum allowed size for uploaded files.
; http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize
upload_max_filesize = 100M
; Maximum amount of memory a script may consume (128MB)
; http://www.php.net/manual/en/ini.core.php#ini.memory-limit
memory_limit = 128M

 さて、実際にWebARENAのVPSにownCloudをインストールして利用してみたが、やはり高速なネットワークに接続されているからか、ファイルのアップロード/ダウンロードが早いという印象だ。ネットワークは複数のユーザーで共有しているため時間帯や環境にも左右されるとは思われるが、比較的大きいサイズのドキュメントや写真といったデータもスムーズにやりとりできた。このようなファイルサーバーが必要な場合、WebARENAのVPSは有力な選択肢の1つといえるだろう。

特にネットワーク性能の高さが特徴、頻繁に大容量ファイルをやりとりするような用途に有用

 現在、多くの企業がVPSサービスを提供しているが、そのなかでもWebARENAのVPSはネットワーク回線が高速であり、また制限も少なく、またリソースの増強がオンラインで即座に行えるというメリットがある。今日ではさまざまなVPSサービスが各社から提供されており、より安価なVPSサービスもあるものの、スペックで見ると同価格帯の他サービス以上のものを提供している。特に1Gbps共有のネットワークがゆったり利用できるというのは、他社のVPSサービスにはないメリットである。

 NTTPCコミュニケーションズは企業向けのホスティングサービスにおいて実績も高く、サポート品質も高い。個人もしくは特定ユーザー向けのサービスだけでなく、Webサービスやソーシャルサービスでの利用といった用途においても、十分検討に値するだろう。まずは10日間の無料お試しサービスでその品質を試してほしい。新サービスのVPSエントリーについても、本サービスが開始され次第レビューを行い、SourceForge.JP Magazine上にて掲載する予定だ。

NTTPCコミュニケーションズ WebARENAのVPS
http://web.arena.ne.jp/suitepro/