起業を機に、Google Appsを導入し、Dropboxの代わりととして期待していたGoogle Driveがどうにも使いづらい。
具体的には、
- 同期のタイミングがよくわからない
- 同期中であるかどうかがわかりにくい
- ディレクトリ(フォルダ)構造を変更すると同期に失敗する
Dropboxに慣れた身にはとても不便。そこでバージョン5になって評判の良いowncloudを導入してみたメモ。
構成
- owncloud-5.0.5
- nginx-devel-1.3.16 # 別件で事情があって、devel版。
- php5-5.4.14 (fpm-fcgi)
nginxでオレオレ証明書(自己証明書)の作成
$ cd /usr/local/etc/nginx/
$ mkdir certs
$ openssl genrsa -out server.key -aes128 1024 # 秘密鍵の作成
$ openssl rsa -in server.key -out server.key
$ openssl req -new -key server.key -out server.csr # CSRの作成
$ openssl rsa -in server.key -out server.key # パスワード無し秘密鍵に変換
$ openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt # 有効期限1年の自己証明書の作成
ownCloudインストール
$ portinstall /usr/port/www/owncloud
で、/usr/local/www/owncloud に展開される。
DB
$ mysql -u root -p
> create database owncloud;
> grant all privileges on owncloud.* to 'owncloud'@'localhost' identified by ‘*password*’;
nginx.conf
$ vi /usr/local/etc/nginx/sites/owncloud
ownCloud Administrators Manual: Nginx Configuration を参考にしつつ、このままじゃ 上手くいかないところもありつつも何とか設定完了。
server {
listen 80;
server_name owncloud.example.com;
# return 301 https://$server_name$request_uri;
return https://$server_name$request_uri; # enforce https
}
server {
listen 443 ssl;
ssl_certificate /usr/local/etc/nginx/certs/server.crt;
ssl_certificate_key /usr/local/etc/nginx/certs/server.key;
server_name owncloud.example.com;
root /usr/local/www/owncloud;
client_max_body_size 4G; # set maximum upload size
fastcgi_buffers 64 4K;
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
index index.php;
error_page 403 = /core/templates/403.php;
error_page 404 = /core/templates/404.php;
# default
location / {
# try_files $uri $uri/ @webdav;
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_index index.php; # 追加
fastcgi_param PATH_INFO $2;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 追加
fastcgi_param HTTPS on;
fastcgi_pass unix:/var/run/php-fpm.sock; #UNIXドメインソケットに変更
}
# Optional: set long EXPIRES header on static assets
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don't log access to assets
access_log off;
}
# deny direct access
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
}
ownCloud設定
雛形をコピーして、config/config.phpを調整して完了!
使用して1ヶ月が経ちました。
Dropboxには及びませんが、限りなくDropboxに近づけているような努力が垣間見え、容量の心配も当面なくなたので、今のところ快適です。 冒頭に上げた不満もクリアしています。 ただ、複数ユーザ間の共有の仕方がいまいちスマートでなく、他にやり方があるのかわかりまんせが、引き続き模索していきます。