sealfile介绍
Seafile 是一款安全、高性能的开源网盘(云存储)软件。Seafile 提供了主流网盘(云盘)产品所具有的功能,包括文件同步、文件共享等。在此基础上,Seafile 还提供了高级的安全保护功能以及群组协作功能。由于 Seafile 是开源的,你可以把它部署在私有云的环境中,作为私有的企业网盘。Seafile 支持 Mac、Linux、Windows 三个桌面平台,支持 Android 和 iOS 两个移动平台。
Seafile 是由国内团队开发的国际型项目,目前已有50万左右的用户,以欧洲用户为多。自发布以来,Seafile 一直保持开放、国际化、高质量的宗旨,受到国内外大型机构的信赖。目前主要的大型客户包括卡巴斯基、中国平安,以及欧美多家知名大学和科研机构。
为什么需要seafile
公司很多重要的内部资料没地方存放,想在公司内部部署一套私有网盘以满足需求。而很多大公司内部都在使用seafile,于是就准备先搭建一套测试环境评估一下效果。
环境
debian系统
root@10:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 9.8 (stretch)
Release: 9.8
Codename: stretch
root@10:~#
到seafile官网上去下载了安装包。
服务器手册:
https://cloud.seafile.com/published/seafile-manual-cn/home.md
安装包版本:
http://seafile-downloads.oss-cn-shanghai.aliyuncs.com/seafile-server_7.1.4_x86-64.tar.gz
安装
- 因为是测试环境,就先使用 SQLite部署服务器看看。
- 添加名为it的用户,这个命令会使用交互式模式,帮我们把家目录,用户账号密码,都设置好,很方便。
adduser it
- 切换至it账号的家目录
su - it
- 在家目录下建立目录,存放项目路径,比如叫haiwen。而installed目录是用来存放安装包的
mkdir -pv /home/it/haiwen/installed/
- 解压安装包,移动安装包
tar -zxvf seafile-server_7.1.4_x86-64.tar.gz -C /home/it/haiwen/ mv seafile-server_7.1.4_x86-64.tar.gz /home/it/haiwen/installed/
- 按照官网所述安装依赖环境
apt-get update apt-get install python2.7 libpython2.7 python-setuptools python-imaging python-ldap python-urllib3 sqlite3
- 执行安装脚本,启动
cd /home/it/haiwen/seafile-server-7.1.4/ ./setup-seafile.sh #运行安装脚本并回答预设问题
./seafile.sh start # 启动 Seafile 服务 ./seahub.sh start # 启动 Seahub 网站 (默认运行在8000端口上)
- 访问 http://192.168.1.111:8000/
你会发现直接报了个Interal Error 500
原因排查
我们到/home/it/haiwen/logs,查看seahub.log,会发现有报错,如下:
发现在访问页面的时候,python报了个语法错误
熟悉python的小伙伴会马上get到:
这个报错是由于python版本太低不支持语法引起的
形如
name=1
print(f"{name}")的字符串格式化语法要在python 3.6+以后才有。
解决
好了现在问题找到了,怎么解决呢?
当然是用大名鼎鼎的pyenv了,具体大家可以去查一下,我这里就直接说怎么使用。
- 安装git
apt-get install -y git
- debain9 本地编译python需要安装的包
apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev -y
- clone项目到~/.pyenv目录底下
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
- 编辑 ~/.bashrc
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PATH:$PYENV_ROOT/bin" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
- 查看当前pyenv支持哪些环境
pyenv versions
- 查看当前pyenv支持的安装版本
pyenv install --list
- 安装python 3.6.7
注意:由于国外源很慢,我们可以事先下载好Python-3.6.7.tar.xz,放到/home/it/.pyenv/cache底下pyenv install 3.6.7
- pyenv 建立虚拟环境,名字命名为it367
pyenv virtualenv 3.6.7 it367
- pyenv切换当前目录的虚拟环境为之前设置的虚拟机环境
cd /home/it/haiwen/ pyenv local it367
- 安装项目依赖包
cd /home/it/haiwen/seafile-server-7.1.4/seahub pip3.6 install -r requirements.txt
10.重新按照官网要求安装,启动项目,效果如下:
总结
seafile是用python的django框架写的项目,熟悉python就能搞定一切。
欢迎在评论区留言,一起讨论。