在 CentOS 上搭建 ownCloud 私人云存储

日期: 06 月 28日, 2014
标签:

之前在 Debian 服务器上搭建了ownCloud,下面在 CentOS 上做一遍,步骤稍有不同。

配置 LNMP

具体步骤见:CentOS 搭建 LNMP 环境

安装依赖的 PHP 模块

sudo yum install php-gd php-mbstring php-pear-MDB2-Driver-mysqli php-pear-Net-Curl php-process php-xml php-zipstream php-intl php-mcrypt php-pecl-imagick

下载并解压 ownCloud

wget https://download.owncloud.org/community/owncloud-6.1.0.tar.bz2
tar -jxf owncloud-6.1.0.tar.bz2
cp -r owncloud/* /path/to/your/webservers/document-root

记得修改文件权限:

cd /path/to/your/webservers/document-root/
mkdir data tmp
sudo chown -R nginx:nginx config data apps tmp

配置 Nginx

按照官方安装文档上的说明编辑 Nginx 的 server 配置块:

server {
    listen 443 ssl;
    server_name cloud.example.com;

    ssl_certificate /etc/ssl/nginx/cloud.example.com.crt;
    ssl_certificate_key /etc/ssl/nginx/cloud.example.com.key;

    root /var/www/;

    client_max_body_size 10G; # set max 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;

    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 unix:/var/run/php-fpm/php-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;
    }
}

然后重启 Nginx:

sudo service nginx restart

配置 MySQL

登陆 MySQL:

mysql -u root -p

创建用户cloud

create user 'cloud'@'localhost' identified by 'password';

创建数据库 cloud,并授权用户 cloud 拥有此数据库的所有权限:

create database cloud;
grant all privileges on cloud.* to 'cloud'@'localhost' identified by 'passwd';
flush privileges;

进入 ownCloud 安装界面

在浏览器中打开 https://yourdomain.com/,即可进入 ownCloud 的安装界面。

首先需要建立一个管理员账号,输入用户名和密码即可。点击高级,可以看到数据库配置选项,选择 MySQL,数据库名填 cloud,用户名填 cloud,密码填刚才设定的密码。最后点 Finish 完成安装过程

修改上传限制

默认上传文件最大为 2M,显然太小了,下面改成 1024M。

编辑 /etc/php5/fpm/php.ini

upload_tmp_dir = /path/to/your/webservers/document-root/tmp
upload_max_filesize = 1024M
post_max_size = 1024M

然后重启 php-fpm

sudo service php-fpm restart

参考资料

  1. ownCloud Administractors Manual: Manual Install