若你使用的是比較新的 Seafile 版本, 請閱讀此篇提示 :《新版本下的 Seafile》

Seafile 企业版的安装会比社区版要麻烦, 所以这里给大家社区版的安装教程先, 不过社区版是可以迁移到企业版的

本文是建立在已经安装好 MySQL 的情况下进行安装 Seafile, 并且本文图片都为 Seafile 企业版的安装图片, 社区版和企业版安装相差不大(MySQL 的安装详情请见 -> 点击进入)

首先大家要去 Seafile 英文官网寻找下载地址

https://www.seafile.com/en/download/

看到 Linux 这边有 32 位和 64 位的下载地址

因为 CentOS 7 基本都是 64 位, 所以截止发稿时间, 最新的下载地址是

https://download.seadrive.org/seafile-server_6.1.1_x86-64.tar.gz

首先我们登录我们的 VPS

我们定位到我们要下载的目录, 因为 Seafile 安装后主目录下会多出额外的目录和文件, 所以这边不建议直接建在 ~ 目录

这边我们建立一个 cloud 目录, 建在 /www 目录下

mkdir -p /www/cloud

然后我们进入这个目录

cd /www/cloud

进入这个目录之后, 就可以下载了

wget https://download.seadrive.org/seafile-server_6.1.1_x86-64.tar.gz

下载完之后需要解压

tar zxvf seafile-server_6.1.1_x86-64.tar.gz

解压完之后, 就需要安装基本的依赖软件

yum install -y python-setuptools python-imaging python-ldap MySQL-python python-memcached python-urllib3

安装完成之后就可以正式安装 Seafile 了

首先, 进入 Seafile 的目录

cd seafile-server-6.1.1

开始安装

./setup-seafile-mysql.sh

首先会对环境进行检查, 如果有哪个依赖软件没有安装的, 安装就不能继续进行

如果依赖安装没有问题的, 就会显示如下界面

可以直接按 Enter 键进入安装

在 CentOS 7 下安装 Seafile 社区版-Jonny'Blog
seafile server name//这个可以随意填写, 因为这个配置已经不再使用了

seafile server ip or domain//填写服务器的 IP 或者 Seafile 绑定的域名

seafile data dir//Seafile 存放的目录, 请保证有足够的空间

seafile fileserver port//Seafile 文件同步的端口, 默认8082, 不建议更改

其他的直接按 Enter 键默认配置即可

在 CentOS 7 下安装 Seafile 社区版-Jonny'Blog

之后是数据库的问题

如果你之前有为 Seafile 创建过的选择 2, 否则请选择 1

这里我们选择 1

如果按照本站的 MySQL 安装方式, 前面直接默认并且输入数据库 root 用户密码即可

在 CentOS 7 下安装 Seafile 社区版-Jonny'Blog

这里会让你为 seafile 这个数据库用户创建一个独立的密码, 建议和 root 用户不同

在 CentOS 7 下安装 Seafile 社区版-Jonny'Blog

之后直接全部默认即可

完成设置之后, 下面会有一个设置总览

在 CentOS 7 下安装 Seafile 社区版-Jonny'Blog

确定没有问题之后按 Enter 键继续安装

安装成功就会提示如下图片中的内容

在 CentOS 7 下安装 Seafile 社区版-Jonny'Blog

我们的目的是在 Nginx 下配置 Seafile, 所以接下来我们为 Seafile 创建 Nginx 的 conf 配置文件

下面是一份没有开启 HTTPS 的示例

server {

    listen 80;

    server_name www.myseafile.com;

    proxy_set_header X-Forwarded-For $remote_addr;

    location / {

        fastcgi_pass 127.0.0.1:8000;

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

        fastcgi_param PATH_INFO $fastcgi_script_name;

        fastcgi_param SERVER_PROTOCOL $server_protocol;

        fastcgi_param QUERY_STRING $query_string;

        fastcgi_param REQUEST_METHOD $request_method;

        fastcgi_param CONTENT_TYPE $content_type;

        fastcgi_param CONTENT_LENGTH $content_length;

        fastcgi_param SERVER_ADDR $server_addr;

        fastcgi_param SERVER_PORT $server_port;

        fastcgi_param SERVER_NAME $server_name;

        fastcgi_param REMOTE_ADDR $remote_addr;

        access_log /var/log/nginx/seahub.access.log;

        error_log /var/log/nginx/seahub.error.log;

    }

    location /seafhttp {

        rewrite ^/seafhttp(.*)$ $1 break;

        proxy_pass http://127.0.0.1:8082;

        client_max_body_size 0;

        proxy_connect_timeout 36000s;

        proxy_read_timeout 36000s;

        proxy_request_buffering off;#关闭之后可以上传 4G 以上的大文件

    }

    location /media {

        root /www/cloud/seafile-server-latest/seahub;#这里替换成你 Seahub 的目录

    }

}

下面是一份开启了 HTTPS 的示例配置

server {

    listen 80;

    server_name cloud.jonny.vip;

    rewrite ^ https://$http_host$request_uri? permanent;

}

server {

    listen 443;

    server_name cloud.jonny.vip;

    ssl on;

    ssl_certificate /home/Jonny/SSL/Nginx/1_www.jonny.vip_bundle.crt;#这里替换成证书 .crt 文件的地址

    ssl_certificate_key /home/Jonny/SSL/Nginx/2_www.jonny.vip.key;#这里替换成证书 .key 文件的地址

    proxy_set_header X-Forwarded-For $remote_addr;

    location / {

        fastcgi_pass    127.0.0.1:8000;

        fastcgi_param   SCRIPT_FILENAME     $document_root$fastcgi_script_name;

        fastcgi_param   PATH_INFO           $fastcgi_script_name;

        fastcgi_param   SERVER_PROTOCOL    $server_protocol;

        fastcgi_param   QUERY_STRING        $query_string;

        fastcgi_param   REQUEST_METHOD      $request_method;

        fastcgi_param   CONTENT_TYPE        $content_type;

        fastcgi_param   CONTENT_LENGTH      $content_length;

        fastcgi_param   SERVER_ADDR         $server_addr;

        fastcgi_param   SERVER_PORT         $server_port;

        fastcgi_param   SERVER_NAME         $server_name;

        fastcgi_param   REMOTE_ADDR         $remote_addr;

        fastcgi_param   HTTPS               on;

        fastcgi_param   HTTP_SCHEME         https;

        access_log /var/log/nginx/seahub.access.log;

        error_log /var/log/nginx/seahub.error.log;

    }

    location /seafhttp {

        rewrite ^/seafhttp(.*)$ $1 break;

        proxy_pass http://127.0.0.1:8082;

        client_max_body_size 0;

        proxy_connect_timeout 36000s;

        proxy_read_timeout 36000s;

        proxy_request_buffering off;#关闭之后可以上传 4G 以上的大文件

    }

    location /media {

        root /www/cloud/seafile-server-latest/seahub;#这里替换成你 Seahub 的目录

    }

}

配置好 Nginx 之后, 因为是在 Nginx 下运行 Seafile, 所以还要对 Seafile 的一些配置文件进行修改

首先进入 Seafile 的配置目录

cd /www/cloud/conf

找到 ccnet.conf 文件, 并且编辑修改

vim ccnet.conf

找到 SERVICE_URL, 并且修改为

SERVICE_URL = https://cloud.jonny.vip

如果你没有开启 HTTPS, 就修改为

SERVICE_URL = http://cloud.jonny.vip

后面不需要加端口了

保存退出之后, 找到 seahub_settings.py, 编辑修改

vim seahub_settings.py

在最后加上

FILE_SERVER_ROOT = 'https://cloud.jonny.vip/seafhttp'

如果你没有开启 HTTPS, 就修改为

FILE_SERVER_ROOT = 'http://cloud.jonny.vip/seafhttp'

注意单引号

然后启动 Seafile, 首先进入 Seafile 主目录

cd ../seafile-server-6.1.1

上面的 .. 是返回上一层的意思

./seafile.sh start
./seahub.sh start-fastcgi

首次运行的时候, 会提示让你创建管理员账号, 按照提示创建即可

然后输入域名, 就可以访问了

在 CentOS 7 下安装 Seafile 社区版-Jonny'Blog
在 CentOS 7 下安装 Seafile 社区版-Jonny'Blog