1.下载安装包
安装mariadb-server
apt install mariadb-server
安全设置
mysql_secure_installation
首先使用一键工具搭建环境
下载seafile
wget http://seafile-downloads.oss-cn-shanghai.aliyuncs.com/seafile-server_7.0.5_x86-64.tar.gz
mkdir /seafile
mv seafile-server_* /seafile
cd /seafile
将 seafile-server_* 移动到 haiwen 目录下后
tar -xzf seafile-server_*
mkdir installed
mv seafile-server_* installed
2.安装前的准备工作
使用mysql的准备工作
on Ubuntu 16.04
apt-get update
apt-get install python2.7 python-setuptools python-mysqldb python-urllib3 python-ldap -y
on CentOS 7
yum install python python-setuptools MySQL-python python-urllib3 python-ldap -y
3.安装
使用mysql的安装
cd seafile-server-*
./setup-seafile-mysql.sh
在这里, 你会被要求选择一种创建 Seafile 数据库的方式:
——————————————————-
Please choose a way to initialize seafile databases:
——————————————————-
[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases
如果选择1, 你需要提供根密码. 脚本程序会创建数据库和用户。
如果选择2, ccnet/seafile/seahub 数据库应该已经被你(或者其他人)提前创建
4.启动seafile
启动 Seafile:
cd ..
cd seafile-server-latest
./seafile.sh start
启动 Seahub
./seahub.sh start
查看进程
pgrep -f seafile-controller # 查看 Seafile 进程
pgrep -f "seahub" # 查看 Seahub 进程
开机启动 Seafile
nano /etc/systemd/system/seafile.service
文件内容如下:
[Unit]
Description=Seafile
After=network.target
[Service]
Type=oneshot
ExecStart=/seafile/seafile-server-latest/seafile.sh start #修改成seafile的安装目录
ExecStop=/seafile/seafile-server-latest/seafile.sh stop #修改成seafile的安装目录
RemainAfterExit=yes
User=root
Group=root
[Install]
WantedBy=multi-user.target
创建 systemd 服务文件 /etc/systemd/system/seahub.service
nano /etc/systemd/system/seahub.service
文件内容如下(如果你想要运行fastcgi模式,请不要忘记修改它。)
[Unit]
Description=Seafile hub
After=network.target seafile.service
[Service]
ExecStart=/seafile/seafile-server-latest/seahub.sh start #修改成seafile的安装目录
ExecStop=/seafile/seafile-server-latest/seahub.sh stop #修改成seafile的安装目录
User=root
Group=root
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
开机启动
systemctl daemon-reload
systemctl enable seafile
systemctl enable seahub
给予文件夹权限
chmod -R 777 /seafile/
Nginx设置
nginx.conf
user root;
worker_processes auto;
#error_log /etc/nginx/error.log warn;
#pid /run/nginx.pid;
events {
use epoll;
worker_connections 1024;
multi_accept on;
}
http {
include /etc/nginx/conf/mime.types; #注意路径
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
server_names_hash_bucket_size 512;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 10G;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 720;
fastcgi_connect_timeout 3600;
fastcgi_send_timeout 3600;
fastcgi_read_timeout 3600;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
server_tokens off;
include /etc/nginx/conf/conf.d/*.conf;
}
d.conf配置
server {
listen 0.0.0.0:443;
server_name 网址.com;
# root /seafile/;#路径,按具体情况修改
ssl on;
ssl_certificate /etc/nginx/ssl/网址.com.crt; #pem文件路径
ssl_certificate_key /etc/nginx/ssl/网址.com.key; #key文件路径
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers off;
proxy_set_header X-Forwarded-For $remote_addr;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
server_tokens off;
# add_header Content-Security-Policy "upgrade-insecure-requests;connect-src *";
location / {
#seahub端口,根据实际情况设置,默认是8000
proxy_pass http://127.0.0.1:8000; #使用https链接此处也不必改成https
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_read_timeout 1200s;
proxy_set_header X-Forwarded-Proto https;
# used for view/edit office file via Office Online Server
client_max_body_size 0;
}
location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
#seafile的端口,根据实际情况设置,默认是8082
proxy_pass http://127.0.0.1:8082; #使用https链接此处也不必改成https
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;
proxy_request_buffering off;
}
location /media {
#静态文件路径,根据实际安装路径找到/seafile-server-latest/seahub的位置
root /seafile/seafile-server-latest/seahub;
}
}
server {
listen 0.0.0.0:80;
server_name 网址.com;
return 301 https://网址.com$request_uri;
}
保存,重启nginx
systemctl restart nginx
之后通过浏览器访问https站点,登陆,点击头像-系统管理-设置,
将SERVICE_URL
改为https://[domain]
,
将FILE_SERVER_ROOT
改为https://[domain]/seafhttp
,
分别点击对号保存,上传应该就正常了。