热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:安装SeafileServer7.1.3不完全避坑指南

篇首语:本文由编程笔记#小编为大家整理,主要介绍了安装SeafileServer7.1.3不完全避坑指南相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了安装Seafile Server 7.1.3 不完全避坑指南相关的知识,希望对你有一定的参考价值。



容易踩的坑

解决依赖关系是安装seafile server的第一个坑。 官方提供的安装包,大部分依赖都已经打包在包里了, 只有seahub依赖的部分Python包,因为使用了C语言,编译安装时必须和Python的版本对应(这也是之前Windows版本必须安装指定版本python的原因),由于无法预知客户端的Python版本,所以无法包含在安装包中。

MySQL/Mariadb数据库配置是第二个坑。 有些系统安装的mysql/Mariadb数据库,默认配置是不允许root用户通过网络连接服务器的,而安装脚本配置数据库一项有两个选项,分别是自动创建和使用已有的数据库,其中自动创建数据库需要使用root连接数据库。

开机自动启动时第三个坑。 由于每个人的安装路径和用户配置不同,Seafile安装包中无法附带现成的systemd服务脚本文件,致使部分新手无法配置开机自启动服务。


避坑之一:安装依赖


1. Seafile依赖说明

系统软件包:



  • [x] python3 *

  • [ ] sqlite3 / sqlite *

  • [ ] mysql-server

pythonr软件包:



  • [x] Pillow

  • [x] django-simple-captcha

  • [x] captcha

  • [ ] pylibmc *

  • [ ] python-ldap *

  • [ ] jinja2

  • [ ] sqlalchemy *

  • [ ] psd-tools

解决依赖的工具:



  • [x] 软件包管理系统 (yum / apt / pacman / portage 等) *

  • [x] pip *

  • [x] wheel

以上依赖,打勾的为必装,加粗加粗打星号表示推荐使用系统提供的软件包安装,下面理一理这些依赖软件(注:有些python包之所以推荐使用系统提供的包管理器安装,是因为他们基本都需要编译,并且有的软件包还依赖其他第三方的软件,若使用pip安装,需要安装其他依赖):



































































依赖(加粗为必装)说明
软件包管理系统这个一般系统装好都已经安装好了,这里之举例 aptyum ,其他发行版大同小异,关键是弄清楚软件包名,不同的发行版会有所区别
pipPython 的包管理器,推荐使用系统软件包安装,包名为 python3-pip
wheelPython 包的最新二进制格式支持,部分 Python 包安装时会先打包成 .whl 格式,需要这个包的功能
python3使用系统软件包安装,包名为 python3
sqlite3使用sqlite数据库时需要安装,apt中包名为 sqlite3,yum中包名为 sqlite
mysql-server使用mysql数据库时要安装,若有其他可用的mysql服务,可以不装。这里推荐 mariadb-server,因为各发行版都会提供
python-ldap需要使用ldap存储用户信息(通常在企业中使用)时要安装,推荐使用系统软件包
jinja2这是 Python Web 开发的一套模板系统,功能、性能、安全性都比较强,不安装这个包并没发现什么影响,可能专业版需要 *
sqlalchemyPython 的一套功能强大的 ORM 系统,不安装没发现受到影响,可能专业版会用到。
pylibmcPython 的 memcached 绑定,可以理解为 python 语言使用 memcached 服务的客户端,不使用 memcache加速的可以不用安装 *
django-simple-captchaDjango的插件,生成表单验证码使用,虽然没看到哪个表单有验证码,但是这个插件必须安装,否则 seahub 会发生 500 内部服务器错误。
captchadjango-simple-captcha 的依赖,必须安装
Pillowcaptcha 的依赖,必须安装
psd-tools用来支持 psd 文件(Photoshop 图片源文件), 相关依赖非常大(几百M) ^2 *

* 从这次多出来的依赖来看,可能seafile团队打算使用flask今后将Seahub重写(胡乱猜测 -_-||)
* memcached是需要额外配置的服务,通过将数据缓存在内存达到加速的目的,使用时需注意内存是否足够
* psd-tools 我没有测试,可能只是用来在线预览,也可能支持在线简单编辑,有人测试了希望能给我反馈


2. 安装依赖

使用的 pip 为系统级 Python 环境, 如果使用 root 用户运行会造成升级系统的部分软件包,有可能会导致其他的系统软件依赖关系冲突,所以我们运行 pip 命令安装软件包的时候需要添加 --user 选项,把需要的包安装在用户家目录。

此外,使用 pip 安装 python 包的时候,会自行解决依赖关系,但是 在这里,由于 seafile-server 安装包自带的一部分依赖不宜被覆盖或升级,因此我们在安装依赖前应该把 seafile-server 自带的 Python 包让 pip 能识别,其方法是到处环境变量 PYTHONPATH,使其执行自带的 python 包目录。


2.1 安装系统软件包


2.1.1准备工作

(color{red}{注意:}) 此处假设起始路径为 /opt,当前用户为 seafuser,下载的安装包在用户家目录。

$ sudo mkdir seafile
$ sudo chown seafuser.seafuser seafile
$ cd seafile
$ tar xzf ~/seafile-server-7.1.3.tar.gz
$ export PYTHOnPATH=/opt/seafile/seafile-server-7.1.3/seahub/thirdpart

2.1.2 安装必装软件

由于 Pillow 和 captcha 都处在 django-simple-captcha 的依赖链中,所以使用 pip 只要安装最后一个就行了。

使用 pip install --user 安装的 Python 包,会保存在家目录下的 .local/lib/python3.X/site-packages 其中 python3.X 以实际版本号代替。

-> Deb 系:

$ sudo apt update
$ sudo apt install -y python3 python3-pip python3-wheel
$ pip3 install --user django-simple-captcha

-> Rpm 系:

$ sudo yum install -y python3 python3-pip python3-wheel
$ pip3 install --user django-simple-captcha

2.1.3 根据需要安装其他软件包

-> Deb 系:

$ sudo apt install -y sqlite3
$ sudo apt install -y mariadb-server
$ sudo apt install -y pylibmc
$ sudo apt install -y sqlalchemy
$ sudo apt install -y python3-ldap
$ pip3 install --user jinja2
$ pip3 install --user psd-tools

-> Rpm 系:

$ sudo yum install -y sqlite3
$ sudo yum install -y mariadb-server
$ sudo yum install -y pylibmc
$ sudo yum install -y sqlalchemy
$ sudo yum install -y python3-ldap
$ pip3 install --user jinja2
$ pip3 install --user psd-tools

2.1.4 转移安装的 Python包

安装完成之后,需要把安装的软件包移到 seafile 文件夹中适当的位置,避免之后启动 seahub 出现依赖问题。

mv -f ~/.local/lib/python3.X/site-packages/* $PYTHONHOME

至此,依赖安装完毕,可以进行下一步了:

$ cd seafile-server-7.1.3
$ ./setup-seafile.sh # or ./setup-seafile-mysql.sh

避坑之二:配置 MySQL 数据库


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • 0x00端口渗透端口扫描端口的指纹信息(版本信息)端口所对应运行的服务常见的默认端口号.尝试弱口令端口爆破hydra端口弱口令NTScanHs ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 一,织梦后台后台设置进入系统后台,在[系统基本参数]下面的性能选项卡当中,关于memcache进行如下配置:cfg_memcache_enable:是否启用memcache缓存,如果为否(N) ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 都说Python处理速度慢,为何月活7亿的 Instagram依然在使用Python?
    点击“Python编程与实战”,选择“置顶公众号”第一时间获取Python技术干货!来自|简书作者|我爱学python链接|https:www.jian ... [详细]
author-avatar
润滑油一_576
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有