生活, 其他记录

在服务器中安装Seafile文件服务

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文件服务,不愿折腾的可以忽略以下内容。

官方文档为:https://cloud.seafile.com/published/seafile-manual-cn/deploy_pro/download_and_setup_seafile_professional_server.md

首先安装最新版的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
503 次浏览

【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code