CentOS6+ownCloud+Nginx+spawn-fcgiでプライベートDropboxを構築 #owncloud #dropbox

ownCloudはDropboxのクローンです。Dropboxと同様にWindows,Mac,LinuxiPhone,Android用のクライアントもあり、非常に便利です。

今回はCentOS6にownCloudを構築する方法をご紹介します。

ownCloud.org | Your Cloud, Your Data, Your Way!

インストール

php

CentOS6にインストールされているphp5.3にはnullバイト攻撃の脆弱性が残っているようで、そのままownCloudをインストールするとログイン画面で以下のように警告メッセージが表示されます。

Your PHP version is vulnerable to the NULL Byte attack (CVE-2006-7243)
Please update your PHP installation to use ownCloud securely.

対策としてphp5.4に入れ替えます。

php関連を全てアンインストール
$ yum remove php*

必要なライブラリをremiからインストール
$ yum install --enablerepo=remi php-cli php-common php-gd php-mbstring php-mysql php-pdo php-pear php-pear-MDB2 php-pear-MDB2-Driver-mysqli php-pear-Net-Curl php-process php-xml

ownCloud

公式を参考にインストールします。

Install ownCloud on CentOS 6 | DynoBin

yumリポジトリを追加
$ cd /etc/yum.repos.d/
$ curl -LO  http://download.opensuse.org/repositories/isv:ownCloud:community/CentOS_CentOS-6/isv:ownCloud:community.repo

enabledを0に設定
$ vi /etc/yum.repos.d/isv\:ownCloud\:community.repo
~
enabled=0
~

インストール
$ yum -y install --enablerepo=isv_ownCloud_community,remi owncloud

ownCloudディレクトリをnginxのパーミッションに変更
$ chown nginx. -R /var/www/html/owncloud

参考までに、phpのライブラリが足りないと以下の様なエラーが発生します。

Error: Package: owncloud-5.0.13-21.1.noarch (isv_ownCloud_community)
           Requires: php-pear-Net-Curl
Error: Package: owncloud-5.0.13-21.1.noarch (isv_ownCloud_community)
           Requires: php-pear-MDB2-Driver-mysqli
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

spawn-fcgi

epelからインストール
$ yum install --enablerepo=epel spawn-fcgi

設定ファイルを編集
$ vi /etc/sysconfig/spawn-fcgi
~
# unixソケットを使う
SOCKET=/var/run/php-fcgi.sock
OPTIONS="-u nginx -g nginx -s $SOCKET -S -M 0600 -C 32 -F 1 -P /var/run/spawn-fcgi.pid -- /usr/bin/php-cgi"

自動起動on
$ chkconfig spawn-fcgi on

起動
$ /etc/init.d/spawn-fcgi start

nginx

リポジトリにnginxを追加
$ cat << EOF > /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=0
EOF

インストール
$ yum -y install --enablerepo=nginx nginx

公式を参考に設定ファイルを編集
http://doc.owncloud.org/server/5.0/admin_manual/installation/installation_others.html#nginx-configuration


自動起動on
$ chkconfig nginx on

起動
$ /etc/init.d/nginx start

起動確認

https://{domain}/

その他

自己署名証明書

自己署名証明書を使う場合、ownCloudのドメインと証明書のCommonNameが違うとクライアントアプリと同期出来ませんでした。