摘要訊息 : 在 CentOS 7 下安裝 Seafile 社區版教學.
0. 前言
本文是建立在你已经安装好 Nginx 和 MySQL 的情况下安装 Seafile, 本文的配图都为 Seafile 企业版的安装图片, 社区版和企业版在安装时候的配图相差不大.
建议大家采用最新的文章进行安装, 如果大家执意要在本文的教学下进行安装, 如果出现本文没有提及的问题, 可以参考 《新版本下的 Seafile》.
本文在 2022 年 3 月 16 日进行一次更新和修正. 修正之后本文已经归档, 不再享受更新.
1. 下载
首先大家要去 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.
我们建立一个 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
.
2. 安装
我们需要安装基本的依赖软件 : yum install -y python-setuptools python-imaging python-ldap MySQL-python python-memcached python-urllib3
.
接下来进入 Seafile 的目录 cd seafile-server-*
并且开始安装 : ./setup-seafile-mysql.sh
.
Seafile 会对环境进行检查, 如果有哪个依赖软件没有安装的, 安装就不能继续进行. 如果依赖安装没有问题的, 就会显示如下界面, 可以直接按 Enter 键进入安装 :

接下来有几个需要大家手动填写的选项 :
- server name : 这个可以随意填写, 因为这个配置已经不再使用了;
- server ip or domain : 填写服务器的 IP 或者 Seafile 绑定的域名;
- data dir : Seafile 上载的档案存放的目录, 请保证有足够的空间;
- seafile fileserver port : Seafile 文件同步的端口, 默认8082, 不建议更改.
之后是数据库的问题, 如果你之前有为 Seafile 创建过资料库就选择 Use existing ccnet/seafile/seahub databases, 否则就选择第一个建立新的资料库. 在这里会让你为 seafile
这个数据库用户创建一个独立的密码, 建议和 root
用户不同. 其他的直接按 Enter 键默认配置即可, 完成设置之后, 下面会有一个设置总览 :

确定没有问题之后按 Enter 键继续安装, 安装成功就会提示如下图片中的内容 :

现在已经可以通过启动 seafile.sh
和 seahub.sh
指令集. 但是我们的目的是在 Nginx 下配置 Seafile, 所以接下来我们为 Seafile 创建 Nginx 的配置文件 :
server {
listen 80;
server_name 替换为你的网域名称;
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 的目录
}
}
上面这份配置是不带有 SSL 的, 下面这份是带有 SSL 的 :
server {
listen 80;
server_name 替换为你的网域名称;
rewrite ^ https://$http_host$request_uri? permanent;
}
server {
listen 443;
server_name 替换为你的网域名称;
ssl on;
ssl_certificate 替换; # 这里替换成证书 .crt 文件的地址
ssl_certificate_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 = http(s)://你的网域名称
. 这里需要注意, 如果开启了 SSL 才使用 https, 否则使用 http 即可. 不过, 后面不需要加端口了. 保存退出之后, 找到 seahub_settings.py
, 编辑修改 vim seahub_settings.py
, 在最后加上 FILE_SERVER_ROOT = 'http(s)://你的网域名称/seafhttp'
(注意单引号).
接下来就是启动 Seafile. 首先进入 Seafile 主目录 cd /www/cloud/seafile-server-*
, 执行指令 ./seafile.sh start
和 ./seahub.sh start-fastcgi
. 首次使用指令的时候, 会提示让你创建管理员账号, 按照提示创建即可. 然后输入域名, 就可以访问了 :

自創文章, 原著 : Jonny. 如若閣下需要轉發, 在已經授權的情況下請註明本文出處 :