Seafile官网:https://www.seafile.com。
一、使用Docker安装
个人强烈推荐使用Docker进行安装,这样不会因为需要安装各种依赖从而破坏Python环境和系统环境。官方的说明链接为:https://cloud.seafile.com/published/seafile-manual-cn/docker/%E7%94%A8Docker%E9%83%A8%E7%BD%B2Seafile.md。
运行 docker-compose.yml 文件的命令为:
docker compose up -d
Docker命令参考这篇:开源的应用容器引擎Docker。
Docker安装后如果登录时出现错误:Forbidden (403) CSRF verification failed。这时候需要进入Docker内部,修改/conf/seahub_settings.py文件,在最后一行添加以下内容(如果最终链接使用了https,这里链接也要是https):
CSRF_TRUSTED_ORIGINS = ["https://cloud.example.com"]
修改完后,容器可能需要重启一下。
如果上传文件出现网络错误,需要把设置中的URL链接都从http改成https。
二、在Docker中清理更多的Seafile空间
如果服务器空间已经满了,可以考虑按以下步骤进行操作,临时腾出一些空间,但不能长期解决储存空间的问题。
查看容器:
docker ps -a
进入容器:
docker exec -it 容器ID /bin/bash
进入seafile-server-xxx文件夹,停止 seafile.sh:
./seafile.sh stop
运行 seaf-gc.sh,完成清理:
./seaf-gc.sh
启动 seafile.sh:
./seafile.sh start
三、在系统中安装(目前不推荐)
说明:如果是非Docker安装,即使完全按官方的文档或者本篇步骤进行操作,也是可能会出现错误,且不同版本软件包在不同环境下出现的错误可能会不一样。本篇仅仅作为一个记录,是基于CentOS系统以及宝塔面板下安装Seafile文件服务,不愿折腾的可以忽略以下内容。
首先安装最新版的Python(Anaconda),防止一些报错,安装方法参考:安装Python环境。
在官网中下载Seafile服务器端安装包:https://www.seafile.com/download/。官方说明:“seafile 9.0.x 版本不支持在 Centos 系统 tar 包部署,支持 Docker 方式部署”。如果不想要通过Docker部署,那么可在网上寻找Seafile 8.0.x的安装包。本篇安装的是:seafile-server_8.0.5_x86-64.tar.gz。
在./opt文件夹中新建文件夹seafile,将安装包放进去,解压。
这里可以考虑先安装这些包,防止后面出现一些错误:
yum install python3 python3-setuptools python3-pip -y
yum -y install sqlite
yum install python3-devel mysql-devel gcc gcc-c++ -y
pip3 install captcha
pip3 install --timeout=3600 Pillow pylibmc captcha jinja2 sqlalchemy psd-tools django-pylibmc django-simple-captcha python3-ldap
pip3 install future mysqlclient sqlalchemy==1.4.3
根据官网说明(https://cloud.seafile.com/published/seafile-manual-cn/deploy/using_mysql.md)安装初始环境。由于自己的服务器环境是CentOS 7,同时是Seafile 8.0.x 版本,所以这里把两个初始环境都安装(可能同样报错,但可以不用管):
# on CentOS 7
yum install python python-setuptools MySQL-python python-urllib3 python-ldap -y
# on CentOS 8
yum install python3 python3-setuptools python3-pip python3-ldap python3-devel mysql-devel gcc gcc-c++ -y
pip3 install --timeout=3600 django==2.2.* future mysqlclient pymysql Pillow pylibmc captcha jinja2 sqlalchemy==1.4.3 psd-tools django-pylibmc django-simple-captcha
进入安装包文件夹,进行安装:
cd seafile-server-8.0.5
./setup-seafile-mysql.sh #运行安装脚本并回答预设问题
需要在服务器中提前开放三个默认端口:8082、3306、8000。
在安装过程中需要数据库的root密码,在宝塔面板中的界面获取。
如果在重装时,数据库seafile用户的密码忘了,不懂如何操作可以考虑重新安装数据库后重试。
安装结束后使用以下命令启动:
./seafile.sh restart # 停止当前的 Seafile 进程,然后重启 Seafile
./seahub.sh restart # 停止当前的 Seahub 进程,并在 8000 端口重新启动 Seahub
首次运行时需要填写邮箱和密码。
如果前面安装时填写的是域名,而不是IP地址,那么需要在宝塔面板中新建静态站点,域名为个人域名,和前面一致,同时需要做好域名解析。
在站点中设置反向代理,目标URL为:http://127.0.0.1:8000。
访问域名登录,如果上传和下载文件出现问题,需要检查设置中SERVICE_URL和SERVICE_URL中是http或者https,这和是否申请SSL有关。另外,还需要在宝塔面板的站点中设置配置文件,补充以下内容,否则无法正常上传或者下载(https://cloud.seafile.com/published/seafile-manual-cn/deploy/https_with_nginx.md):
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;
}
location /media {
root /opt/seafile/seafile-server-8.0.5/seahub;
}
以下设置开机自启动(参考:Linux的常用命令):
将以下seafile.sh文件放置到/etc/init.d中:
#!/bin/bash
#chkconfig: 2345 80 99
#description:auto_run
export PATH="/opt/anaconda3/bin:$PATH"
/opt/seafile/seafile-server-8.0.5/seafile.sh restart
/opt/seafile/seafile-server-8.0.5/seahub.sh restart
分别输入:
- chkconfig --add seafile.sh
- chkconfig --list
- chkconfig seafile.sh on
- service seafile.sh start
如果遇到头像显示不完整,可以考虑删除以下缓存:
rm -rf /tmp/seahub_cache/*
附1:清空垃圾的脚本 clean_seafile.sh(需要调整路径):
export PATH="/opt/anaconda3/bin:$PATH"
/opt/seafile/seafile-server-8.0.5/seafile.sh stop
/opt/seafile/seafile-server-8.0.5/seahub.sh stop
sh /opt/seafile/seafile-server-8.0.5/seaf-gc.sh
export PATH="/opt/anaconda3/bin:$PATH"
/opt/seafile/seafile-server-8.0.5/seafile.sh restart
/opt/seafile/seafile-server-8.0.5/seahub.sh restart
附2:重启的脚本 restart_seafile.sh(需要调整路径):
export PATH="/opt/anaconda3/bin:$PATH"
/opt/seafile/seafile-server-8.0.5/seafile.sh restart
/opt/seafile/seafile-server-8.0.5/seahub.sh restart
【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com】