seafile安装踩坑之——访问页面报500 Internal Error

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

安装

  1. 因为是测试环境,就先使用 SQLite部署服务器看看。
  2. 添加名为it的用户,这个命令会使用交互式模式,帮我们把家目录,用户账号密码,都设置好,很方便。
    adduser it 
    
  3. 切换至it账号的家目录
    su - it 
    
  4. 在家目录下建立目录,存放项目路径,比如叫haiwen。而installed目录是用来存放安装包的
    mkdir -pv /home/it/haiwen/installed/
    
  5. 解压安装包,移动安装包
    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/
    
  6. 按照官网所述安装依赖环境
    apt-get update
    apt-get install python2.7 libpython2.7 python-setuptools python-imaging python-ldap python-urllib3 sqlite3
    
  7. 执行安装脚本,启动
    cd /home/it/haiwen/seafile-server-7.1.4/
    ./setup-seafile.sh  #运行安装脚本并回答预设问题
    
    ./seafile.sh start # 启动 Seafile 服务
    ./seahub.sh start # 启动 Seahub 网站 (默认运行在8000端口上)
    
  8. 访问 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了,具体大家可以去查一下,我这里就直接说怎么使用。

  1. 安装git
     apt-get install -y git
    
  2. 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
    
  3. clone项目到~/.pyenv目录底下
    git clone https://github.com/yyuu/pyenv.git ~/.pyenv
    
  4. 编辑 ~/.bashrc
    export PYENV_ROOT="$HOME/.pyenv"
    export PATH="$PATH:$PYENV_ROOT/bin"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
    
  5. 查看当前pyenv支持哪些环境
    pyenv versions
    
  6. 查看当前pyenv支持的安装版本
    pyenv install --list
    
  7. 安装python 3.6.7
    pyenv install 3.6.7
    
    注意:由于国外源很慢,我们可以事先下载好Python-3.6.7.tar.xz,放到/home/it/.pyenv/cache底下
  8. pyenv 建立虚拟环境,名字命名为it367
    pyenv virtualenv 3.6.7 it367
    
  9. pyenv切换当前目录的虚拟环境为之前设置的虚拟机环境
    cd /home/it/haiwen/
    pyenv local it367
    
  10. 安装项目依赖包
    cd /home/it/haiwen/seafile-server-7.1.4/seahub
    pip3.6 install -r requirements.txt
    

10.重新按照官网要求安装,启动项目,效果如下:
在这里插入图片描述

总结

seafile是用python的django框架写的项目,熟悉python就能搞定一切。

欢迎在评论区留言,一起讨论。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值