Total Pageviews

Sunday, 8 February 2015

在 nginx webserver下部署owncloud


一,下载owncloud

可在官网获得最新版本内容(vps linux debian)
http://owncloud.org/install/
这里直接给出下载地址
http://download.owncloud.org/community/owncloud-7.0.3.tar.bz2
为了方便,可以在vps里面相关目录下直接
wget https://download.owncloud.org/community/owncloud-7.0.3.tar.bz2
然后解压
tar -jxf owncloud-7.0.3.tar.bz2
解压后会出现owncloud文件夹,里面是owncloud主体。
cd进入owncloud,建立data目录,给予data读写权限。

二,设置nginx
贴出自己的nginx设置(https),需要自己获得ssl证书。

server {
        listen 80;
        server_name dl.urdomain.com;  #域名
        return 301 https://$server_name$request_uri;  # 强制跳转到https
}
server {
        listen 443 ssl;
        server_name dl.urdomain.com;
<pre><code>    ssl_certificate /etc/nginx/dl.urdomain.com.crt;     #这里写出证书放置的绝对路径
    ssl_certificate_key /etc/nginx/dl.urdomain.com.key;

    # 下面设置网站的根目录,访问二级域名直接可达owncloud
    root /var/www/dl/owncloud;

    client_max_body_size 512m; # 设定最大上传限制
    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;

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
            deny all;
    }

    location / {
            # 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_param SCRIPT_FILENAME $document_root$1;
            fastcgi_param PATH_INFO $2;
            fastcgi_param HTTPS on;
            fastcgi_pass 127.0.0.1:9000;
            # Or use unix-socket with 'fastcgi_pass unix:/var/run/php5-fpm.sock;'
    }

    # 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;
    }
</code></pre>
<p>}</p>

三,创建部署

直接访问二级域名,这里是http://dl.urdomain.com。正常情况下会自动跳转到https://dl.urdomain.com
第一次进入要求创建管理员帐号,并填入自己数据库信息即可创建完成。

四,错误解决

出现的奇葩问题,一一备忘。
1,出现 locales 错误
安装locales包
apt-get install locales

安装完成locales包后,系统会自动进行locale配置,你只要选择所需的locale,可以多选。最后指定一个系统默认的locale。这样系统就会帮你自动生成相应的locale和配置好系统的locale。(增加新的locale也很简单,用dpkp-reconfigure locales重新配置locale即可。)

如果还是出现locales错误,查看全部安装
locale -a
查看是否有提示的zh_CN.UTF-8等等
如果没有则需要手动增加,只增加两个即可:
localedef -i zh_CN -f UTF-8 zh_CN.UTF-8 #增加中文
localedef -i en_US -f UTF-8 en_US.UTF-8 #增加英文

2,其他用户访问,出现 0770 错误
不能简单把data目录权限修改为770,需要进行如下操作
sudo -i #进入root权限
cd /var/www/owncloud #进入owncloud所在文件夹
chown -R www-data.www-data data #改变拥有者
-------------------

ownCloud 是来自 KDE 社区的一款 WEB 私有云服务工具,它是一个基于 PHP 的网盘,支持 SQLite、MySQL、Oracle以及 PostgreSQL 等数据库。使用 ownCloud ,你可以完全掌控你的数据,能在纯局域网内使用,非常适合对数据存放在公有云中不放心的用户。支持图片、PDF 文件预览,版本控制,分组共享、链接分享,后台自动更新、备份,应用在线安装管理,LDAP 、HTTPS 等,还可以加载第三方储存、API 支持等等。提供桌面同步客户端、Android 、 iOS和 Black Berry 客户端全平台支持。ownCloud 采用 HTML5 和 Jquery 等技术,网页在手机端也有比较理想的显示效果。

安装

ownCloud 是一款基于 LAMP 的软件,安装也很简单,网上有很多,这里就不再赘述。值得注意的是:

ownCloud 默认安装是使用 SQLite 数据库,如果你要多用户同步,首次安装登录界面上要选择其它数据库类型。
ownCloud 8.1 起不支持 Windows 系统上安装,所以 windows上就别测试了。官方建议在 Linux 下使用。
可以使用 BitNami 等一键安装运行环境进行测试.