Seafile是一个开源、专业、可靠的云存储平台;解决文件集中存储、共享和跨平台访问等问题,由北京海文互知网络有限公司开发,发布于2012年10月;除了一般网盘所提供的云存储以及共享功能外,Seafile还提供消息通信、群组讨论等辅助功能,帮助更好的围绕文件展开协同工作。---来源百度百科
网上有相关详细教程,链接如下:
- 官网:详情
- 部署 Seafile 服务器(使用 MySQL):https://ewgo.net/2016/05/21/371
- 官方文档:部署 Seafile 服务器(使用 MySQL/MariaDB)
以下文章来源于:https://ewgo.net/2016/05/21/371
下载
到下载页面下载最新的服务器安装包.
部署和目录设计
假设你公司的名称为 haiwen,你也已经下载 seafile-server_1.4.0_* 到你的 home 目录下。 我们建议这样的目录结构:
- mkdir haiwen
- mv seafile-server_* haiwen
- cd haiwen
- #将 seafile-server_* 移动到 haiwen 目录下后
- tar -xzf seafile-server_*
- mkdir installed
- mv seafile-server_* installed
复制代码
现在,你的目录看起来应该像这样:
- #tree haiwen -L 2
- haiwen
- ├── installed
- │ └── seafile-server_1.8.2_x86-64.tar.gz
- └── seafile-server-1.8.2
- ├── reset-admin.sh
- ├── runtime
- ├── seafile
- ├── seafile.sh
- ├── seahub
- ├── seahub.sh
- ├── setup-seafile.sh
- └── upgrade
复制代码
这样设计目录的好处在于
- 和 seafile 相关的配置文件都可以放在 haiwen 目录下,便于集中管理.
- 后续升级时,你只需要解压最新的安装包到 haiwen 目录下.
这样你可以重用 haiwen 目录下已经存在的配置文件,而不用重新配置.
准备 MySQL 数据库
Seafile 服务器有三个组件需要拥有自己的数据库:
- ccnet server
- seafile server
- seahub
Seafile 服务器组件更多信息请看[[Seafile服务器组件概览]].
有两种方法可以初始化数据库:
- 通过setup-seafile-mysql.sh脚本创建数据库.
- 自己或其他人(比如数据库管理员)创建
我们建议采用第一种方法. 脚本会要求你提供 MySQL 数据库的的根密码,之后创建:
- ccnet/seafile/seahub 数据库
- 一个可以连接到这些数据库的用户
然而,有时你不得不使用第二种方法. 如果你没有根密码,你需要通过拥有这种权限的人(比如数据库管理员)来帮助你创建三个数据库,和一个能连接这三个数据库的用户. 例如,为 ccnet/seafile/seahub 分别创建如下三个数据库: ccnet-db / seafile-db / seahub-db, 和一个可以连接这三个数据库的 MySQL 用户seafile:
- create database `ccnet-db` character set = ‘utf8’;
- create database `seafile-db` character set = ‘utf8’;
- create database `seahub-db` character set = ‘utf8’;
- create user ‘seafile’@’localhost’ identified by ‘seafile’;
- GRANT ALL PRIVILEGES ON `ccnet-db`.* to `seafile`;
- GRANT ALL PRIVILEGES ON `seafile-db`.* to `seafile`;
- GRANT ALL PRIVILEGES ON `seahub-db`.* to `seafile`;
复制代码
安装 Seafile 服务器
安装前的准备工作
安装 Seafile 服务器之前,请确认已安装以下软件
- python 2.7
- python-setuptools
- python-imaging
- python-mysqldb
- #在Debian/Ubuntu系统下
- apt-get update
- apt-get install python2.7 python-setuptools python-imaging python-mysqldb
复制代码
安装
- cd seafile-server-*
- ./setup-seafile-mysql.sh #运行安装脚本并回答预设问题
复制代码
如果你的系统中没有安装上面的某个软件,那么 Seafile初始化脚本会提醒你安装相应的软件包.
该脚本会依次询问你一些问题,从而一步步引导你配置 Seafile 的各项参数
参数作用说明seafile server name
seafile 服务器的名字,将来在客户端会显示为这个名字
3 ~ 15 个字符,可以用英文字母,数字,下划线
seafile server ip or domain
seafile 服务器的 IP 地址或者域名
客户端将通过这个 IP 或者地址来访问你的 Seafile 服务
ccnet server port
ccnet 使用的 TCP 端口
一般使用默认的10001 端口,如果已经被占用,可以设置为其他的端口
seafile data dir
seafile 数据存放的目录,用上面的例子,默认将是 /data/haiwen/seafile-data
seafile 数据将随着使用而逐渐增加,请把它放在一个有足够大空闲空间的分区上
seafile server port
seafile 服务器 使用的 TCP 端口
一般使用默认的 12001 端口,如果已经被占用,可以设置为其他的端口
seafile fileserver port
seafile fileserver 使用的 TCP 端口
一般使用默认的 8082 端口,如果已经被占用,可以设置为其他的端口
seahub admin email
sehaub管理员的登录帐户名
使用一个 email 地址
seahub admin password
seahub 管理员的密码
在这里, 你会被要求选择一种创建 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 数据库应该已经被你(或者其他人)提前创建。
如果选择 [1] Create new ccnet/seafile/seahub databases,你会被问三个问题:
QuestionDescriptionNotemysql server host
the host address of the mysql server
the default is localhost
mysql server port
the port of the mysql server
the default is 3306. Almost every mysql server uses this port.
root password
the password of mysql root account
the root password is required to create new databases and a new user
mysql user for seafile
the username for seafile programs to use to access MySQL server
if the user does not exist, it would be created
password for seafile mysql user
the password for the user above
ccnet dabase name
the name of the database used by ccnet, default is “ccnet-db”
the database would be created if not existing
seafile dabase name
the name of the database used by seafile, default is “seafile-db”
the database would be created if not existing
seahub dabase name
the name of the database used by seahub, default is “seahub-db”
the database would be created if not existing
如果你选择[2] Use existing ccnet/seafile/seahub databases, 你会被问到如下三个问题:
QuestionDescriptionNotemysql server host
the host address of the mysql server
the default is localhost
mysql server port
the port of the mysql server
the default is 3306. Almost every mysql server uses this port
mysql user for seafile
the user for seafile programs to use to access MySQL server
the user must already exists
password for seafile mysql user
the password for the user above
ccnet dabase name
the name of the database used by ccnet
this database must already exist
seafile dabase name
the name of the database used by seafile, default is “seafile-db”
this database must already exist
seahub dabase name
the name of the database used by seahub, default is “seahub-db”
this database must already exist
如果安装正确完成,你会看到下面这样的输出
现在你的目录结构看起来应该是这样:
- #tree haiwen -L 2
- haiwen
- ├── ccnet # configuration files
- │ ├── ccnet.conf
- │ ├── mykey.peer
- │ ├── PeerMgr
- │ └── seafile.ini
- ├── installed
- │ └── seafile-server_1.8.2_x86-64.tar.gz
- ├── seafile-data
- │ └── seafile.conf
- ├── seafile-server-1.8.2 # active version
- │ ├── reset-admin.sh
- │ ├── runtime
- │ ├── seafile
- │ ├── seafile.sh
- │ ├── seahub
- │ ├── seahub.sh
- │ ├── setup-seafile.sh
- │ └── upgrade
- ├── seafile-server-latest # symbolic link to seafile-server-1.8.2
- ├── seahub-data
- │ └── avatars
- ├── seahub_settings.py # optional config file
- └── seahub_settings.pyc
复制代码
seafile-server-latest文件夹为指向当前 Seafile 服务器文件夹的符号链接. 将来你升级到新版本后, 升级脚本会自动更新使其始终指向最新的 Seafile 服务器文件夹..
启动 Seafile 服务器
启动之前
因为 Seafile 在客户端和服务器之间使用持续连接,如果你的客户端数量巨大, 你应该在启动 Seafile 之前修改你的 Linux 文件最大打开数,如下:
ulimit -n 30000
启动 Seafile 服务器和 Seahub 网站
在 seafile-server-1.8.2 目录下,运行如下命令
- 启动 Seafile:
./seafile.sh start # 启动 Seafile 服务
复制代码
- 启动 Seahub
./seahub.sh start <port> # 启动 Seahub 网站 (默认运行在8000端口上)
复制代码
小贴士: 你第一次启动 seahub 时,seahub.sh 脚本会提示你创建一个 seafile 管理员帐号。
服务启动后, 打开浏览器并输入以下地址
http://192.168.1.111:8000/
你会被重定向到登陆页面. 输入你在安装 Seafile 时提供的用户名和密码后,你会进入 Myhome 页面,新建资料库.
恭喜! 现在你已经成功的安装了 Seafile 服务器.
在另一端口上运行 Seahub
如果你不想在默认的 8000 端口上运行 Seahub, 而是想自定义端口(比如8001)中运行,请按以下步骤操作:
- 关闭 Seafile 服务器
./seahub.sh stop # 停止 Seafile 进程
./seafile.sh stop # 停止 Seahub
复制代码
- 更改haiwen/ccnet/ccnet.conf文件中SERVICE_URL 的值(假设你的 ip 或者域名时192.168.1.100), 如下:
- SERVICE_URL = http://192.168.1.100:8001
复制代码
- 重启 Seafile 服务器
./seafile.sh start # 启动 Seafile 服务
./seahub.sh start 8001 # 启动 Seahub 网站 (运行在8001端口上)
复制代码
ccnet.conf更多细节请看(server_configuration.md) .
关闭/重启 Seafile 和 Seahub
关闭
./seahub.sh stop # 停止 Seahub
./seafile.sh stop # 停止 Seafile 进程
复制代码
重启
./seafile.sh restart # 停止当前的 Seafile 进程,然后重启 Seafile
./seahub.sh restart # 停止当前的 Seahub 进程,并在 8000 端口重新启动 Seahub
复制代码
如果停止/重启的脚本运行失败
大多数情况下 seafile.sh seahub.sh 脚本可以正常工作。如果遇到问题:
- 使用pgrep命令检查 seafile/seahub 进程是否还在运行中
pgrep -f seafile-controller # 查看 Seafile 进程
pgrep -f “manage.py run_gunicorn” # 查看 Seahub 进程
复制代码
- 使用pkill命令杀掉相关进程
pkill -f seafile-controller # 结束 Seafile 进程
pkill -f “manage.py run_gunicorn” # 结束 Seafile 进程
复制代码
OK!