1.简介
Seafile 是一款开源的云盘系统,支持 Windows, Mac, Linux, iOS, Android 平台。支持文件同步或者直接挂载到本地访问。具体的情况可以参考官网描述 https://www.seafile.com/home/
和其它几款开源的云盘相比,例如 NextCloud、OwnCloud、Cloudreve相比,Seafile 最方便的是它的文件上传的性能(基本可以达到全网速,其它几个版本无法实现全网速上传或下载)、全平台的客户端支持和简易的安装配置操作。
缺点主要是文件上传后自动拆分为小文件的方式保存,另外管理端如需高级功能(例如组织架构管理、用户空间分配管理等)需要收费的企业版本。
Seafile 8.04的版本说明不支持 CentOS7,实际测试是没有问题的。以下的环境基于CentOS 7 的操作系统配置。有关 CentOS7 的配置可以参考 Linux 系统生产环境配置指南
2.下载安装包
下载对应版本(MySQL)的安装包并解压到需要安装的文件夹。

3.安装 MySQL 8
3.1.切换清华国内源
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql80-community-el7/mysql80-community-release-el7-3.noarch.rpm rpm -qa |grep mariadb yum install mysql-server systemctl enable mysqld |
3.2.配置 数据库文件 my.cnf
需要注意配置文件中的 “default_authentication_plugin=mysql_native_password” 项目,如果没有该项目,数据库启动后连接时会提示密码错误。
[client] port = 3306 socket = /data/mysql/mysql.sock
[mysql] prompt = "\u@mysqldb \R:\m:\s [\d]> "
[mysqld] datadir = /data/mysql socket = /data/mysql/mysql.sock character_set_server = UTF8MB4 default_time_zone = "+8:00" plugin_dir = /usr/lib64/mysql/plugin default_authentication_plugin=mysql_native_password
##performance setttings lock_wait_timeout = 3600 open_files_limit = 65535 max_connections = 512 table_open_cache = 1024 table_definition_cache = 1024 thread_cache_size = 768 interactive_timeout = 600 log_timestamps = SYSTEM log_error = /data/mysql/error.log slow_query_log = 1 slow_query_log_file = /data/mysql/slow.log ##innodb settings innodb_buffer_pool_size = 45875M innodb_data_file_path = ibdata1:12M:autoextend ## 根据您的服务器IOPS能力适当调整 ## 一般配普通SSD盘的话,可以调整到 10000 - 20000 ## 配置高端PCIe SSD卡的话,则可以调整的更高,比如 50000 - 80000 innodb_io_capacity = 4000 innodb_io_capacity_max = 8000 innodb_open_files = 65535 |
3.3.初始化密码
MySQL 8.0 初始化会自动生成 root 密码,保存在数据库的日志文件中
grep "temporary password" /var/log/mysqld.log |

3.4.修改密码安全等级
set global validate_password.policy=0; |
3.5.重置 root 密码
mysqld --user=mysql --console --skip-grant-tables set global validate_password.policy=0; alter user 'root'@'localhost' identified by 'www.password'; |
3.6.添加用户
create user 'confluence'@'localhost' identified with mysql_native_password by 'www.myj123.com'; grant all privileges on confluence.* to 'confluence'@'localhost'; set global validate_password.policy=0; |
4.安装 Java 环境
配置 JDK 1.8 环境
tar zxvf jdk-8u192-linux-x64_\(1\).tar.gz mv jdk1.8.0_192/ /usr/local/jdk vim /etc/profile export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL export JAVA_HOME=/usr/local/jdk export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib source /etc/profile |
5.配置 python pip 组件
yum install python3 python3-setuptools python3-pip python3-ldap python3-devel mysql-devel gcc gcc-c++ -y mkdir -p ~/.pip cat > ~/.pip/pip.conf <<EOF [global] index-url = https://opentuna.cn/pypi/web/simple trusted-host = opentuna.cn timeout = 120 [install] trusted-host = opentuna.cn EOF pip3 install --user --timeout=3600 django==2.2.* future mysqlclient pymysql Pillow pylibmc pip3 install --user --timeout=3600 captcha jinja2 sqlalchemy==1.4.3 psd-tools django-pylibmc django-simple-captcha yum install libreoffice libreoffice-headless libreoffice-pyuno pip3 install --user --upgrade pip pip3 install --user cryptography |
6.seafile 安装
按提示完成 seafile 安装。如果在安装过程中出现数据库无法创建或验证不成功的情况,可以参照重置密码的方式重新设定对应数据库的用户密码
7.配置防火墙
firewall-cmd --zone=public --add-port=80/tcp --permanent |
8.配置代理服务器
yum install nginx vim /etc/nginx/conf.d/seafile.conf |
server {
listen 80; server_name seafile.test.lan; root html; index index.html index.htm;
location / { root html; index index.html index.htm; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8000;
proxy_set_header X-Forwarded-Host $server_name; proxy_read_timeout 300s; proxy_send_timeout 300s; send_timeout 300s; client_max_body_size 0; }
location /seafhttp { rewrite ^/seafhttp(.*)$ $1 break; proxy_pass http://127.0.0.1:8082; client_max_body_size 0; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 36000s; proxy_read_timeout 36000s; proxy_send_timeout 36000s; send_timeout 36000s; }
error_page 404 /50x.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } |
9.配置 seafile
vim ./seahub/seahub/utils/licenseparse.py |

