linux · 2023年12月11日 0

seafile安装部署(ubuntu22)

seafile安装(部署 Seafile 服务器)

参考官网文档:https://cloud.seafile.com/published/seafile-manual-cn/deploy/using_mysql.md

一、下载

下载服务器端安装包

下载地址:https://www.seafile.com/download/

二、部署和目录设计

创建安装目录

[root@ip-172-31-15-109 data]# mkdir /opt/seafile

将下载的安装包移到安装目录:

[root@ip-172-31-15-109 data]# mv seafile-server_* /opt/seafile

[root@ip-172-31-15-109 data]# cd /opt/seafile

#将 seafile-server_* 移动到 seafile 目录下后

[root@ip-172-31-15-109 data]# tar -xzf seafile-server_*

[root@ip-172-31-15-109 data]# mkdir installed

[root@ip-172-31-15-109 data]# mv seafile-server_* installed

现在,你的目录看起来应该像这样:

[root@ip-172-31-15-109 data]# #tree seafile -L 2
haiwen
├── installed
│   └── seafile-server_7.0.0_x86-64.tar.gz
└── seafile-server-7.0.0
    ├── reset-admin.sh
    ├── runtime
    ├── seafile
    ├── seafile.sh
    ├── seahub
    ├── seahub.sh
    ├── setup-seafile-mysql.sh
    └── upgrade

这样设计目录的好处在于

和 seafile 相关的配置文件都可以放在 /opt/seafile/conf 目录下,便于集中管理.

后续升级时,你只需要解压最新的安装包到 /opt/seafile 目录下.

三、安装 Seafile 服务器

1、安装前的准备工作

安装 Seafile 服务器之前,请确认已安装以下软件:

本次安装在ubuntu22上,且采用最新的11beta版

Seafile  11.0.x  版本

# Ubuntu 22.04 (almost the same for Ubuntu 20.04 and Debian 11, Debian 10)

[root@ip-172-31-15-109 data]# sudo apt-get update

[root@ip-172-31-15-109 data]# sudo apt-get install -y python3 python3-setuptools python3-pip libmysqlclient-dev   ldap-utils libldap2-dev

[root@ip-172-31-15-109 data]# sudo apt-get install -y memcached libmemcached-dev

[root@ip-172-31-15-109 data]# sudo pip3 install --timeout=3600 django==3.2.* future==0.18.* mysqlclient==2.1.* pymysql pillow==10.0.* pylibmc captcha==0.4 markupsafe==2.0.1 jinja2 sqlalchemy==2.0.18 psd-tools django-pylibmc django_simple_captcha==0.5.* djangosaml2==1.5.* pysaml2==7.2.* pycryptodome==3.16.* cffi==1.15.1 python-ldap==3.4.3 lxml

2、安装

[root@ip-172-31-15-109 data]# cd seafile-server-*
[root@ip-172-31-15-109 data]# ./setup-seafile-mysql.sh  #运行安装脚本并回答预设问题

如果你的系统中没有安装上面的某个软件,那么 Seafile初始化脚本会提醒你安装相应的软件包.

该脚本会依次询问你一些问题,从而一步步引导你配置 Seafile 的各项参数:

在这里, 你会被要求选择一种创建 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 数据库应该已经被你(或者其他人)提前创建。

如果安装正确完成,你会看到下面这样的输出 (新版本可能会有所不同)

现在你的目录结构看起来应该是这样:

[root@ip-172-31-15-109 data]# #tree seafile -L 2
seafile
├── ccnet               # configuration files
│   ├── mykey.peer
│   ├── PeerMgr
│   └── seafile.ini
├── conf
│   └── ccnet.conf
│   └── seafile.conf
│   └── seahub_settings.py
│   └── gunicorn.conf
├── installed
│   └── seafile-server_7.0.0_x86-64.tar.gz
├── seafile-data
├── seafile-server-7.0.0  # active version
│   ├── reset-admin.sh
│   ├── runtime
│   ├── seafile
│   ├── seafile.sh
│   ├── seahub
│   ├── seahub.sh
│   ├── setup-seafile-mysql.sh
│   └── upgrade
├── seafile-server-latest  # symbolic link to seafile-server-7.0.0
├── seahub-data
│   └── avatars

seafile-server-latest文件夹为指向当前 Seafile 服务器文件夹的符号链接.将来你升级到新版本后, 升级脚本会自动更新使其始终指向最新的 Seafile 服务器文件夹.

四、启动 Seafile 服务器

启动 Seafile 服务器和 Seahub 网站

在 seafile-server-latest 目录下,运行如下命令

  • 启动 Seafile:
[root@ip-172-31-15-109 data]# ./seafile.sh start # 启动 Seafile 服务
  • 启动 Seahub
[root@ip-172-31-15-109 data]# ./seahub.sh start # 启动 Seahub 网站 (默认运行在127.0.0.1:8000端口上)

你第一次启动 seahub 时,seahub.sh 脚本会提示你创建一个 seafile 管理员帐号。

注意:7.0.x 版本之后,8000端口默认监听在127.0.0.1地址上,这意味着您无法直接通过8000端口访问Seafile服务。建议您配置nginx反向代理

恭喜! 现在你已经成功的安装了 Seafile 服务器.

在另一端口上运行 Seahub

如果你不想在默认的 8000 端口上运行 Seahub, 而是想自定义端口(比如8001)中运行,请按以下步骤操作:

6.3.0 及其之后的版本,我们弃用了 ./seahub.sh start 的方式使seahub进程监听在其他端口。但是,您可以通过修改 conf/gunicorn.conf 中的端口设置来指定seahub启动端口。

  • 关闭 Seafile 服务器
[root@ip-172-31-15-109 data]# ./seahub.sh stop # 停止 Seahub 进程 

[root@ip-172-31-15-109 data]# ./seafile.sh stop # 停止 Seafile 进程
  • 修改conf/gunicorn.conf
# default localhost:8000

bind = “0.0.0.0:8001”
  • 重启 Seafile 服务器
[root@ip-172-31-15-109 data]# ./seafile.sh start # 启动 Seafile 服务 

[root@ip-172-31-15-109 data]# ./seahub.sh start # 启动 Seahub 网站

五、关闭/重启 Seafile 和 Seahub

关闭

[root@ip-172-31-15-109 data]# ./seahub.sh stop # 停止 Seahub

[root@ip-172-31-15-109 data]# ./seafile.sh stop # 停止 Seafile 进程

重启

[root@ip-172-31-15-109 data]# ./seafile.sh restart # 停止当前的 Seafile 进程,然后重启 Seafile

[root@ip-172-31-15-109 data]# ./seahub.sh restart # 停止当前的 Seahub 进程,并在 8000 端口重新启动 Seahub

如果停止/重启的脚本运行失败

大多数情况下 seafile.sh seahub.sh 脚本可以正常工作。如果遇到问题:

  • 使用

pgrep命令检查 seafile/seahub 进程是否还在运行中

[root@ip-172-31-15-109 data]# pgrep -f seafile-controller # 查看 Seafile 进程

[root@ip-172-31-15-109 data]# pgrep -f "seahub" # 查看 Seahub 进程
  • 使用

pkill命令杀掉相关进程

[root@ip-172-31-15-109 data]# pkill -f seafile-controller # 结束 Seafile 进程

[root@ip-172-31-15-109 data]# pkill -f "seahub" # 结束 Seafile 进程

OK!


本章结束~ifan