• 使用 Oracle 数据库部署 Seafile 专业版服务器
    • 安装依赖库" level="2">安装依赖库
      • 安装 Oracle 客户端库
    • Oracle数据库配置" level="2">Oracle数据库配置
    • 下载与安装 Seafile 专业版服务器" level="2">下载与安装 Seafile 专业版服务器
      • 获得许可证书
      • 下载与解压 Seafile 专业版服务器" level="3">下载与解压 Seafile 专业版服务器
      • 安装
      • 配置 Seafile 使用 Oracle 数据库
      • 在 Oracle 数据库中创建 Seafile 所需表格
    • 启动 Seafile 服务器" level="2">启动 Seafile 服务器
      • 启动 Seafile 前,需要先删除一些 Seafile 自带的文件
      • 启动 Seafile 服务器和 Seahub 网站
        • 在另一端口上运行 Seahub
    • 关闭/重启 Seafile 和 Seahub
      • 关闭
      • 重启
      • 如果停止/重启的脚本运行失败
  • 一键安装脚本下额外配置
    • Ubuntu 16.04 root 用户下
    • Centos 7 root 用户下
  • OK!

    使用 Oracle 数据库部署 Seafile 专业版服务器

    • 安装依赖库
    • 数据库配置
    • 下载与安装
    • 启动 Seafile 服务器

    安装依赖库" class="reference-link">安装依赖库

    Ubuntu 14.04,可用以下命令安装全部依赖。

    1. sudo apt-get install openjdk-7-jre poppler-utils libpython2.7 python-pip \
    2. mysql-server python-setuptools python-imaging python-memcache python-dev \
    3. python-ldap python-urllib3
    4. sudo pip install boto

    CentOS 7 下:

    1. wget https://bootstrap.pypa.io/get-pip.py
    2. sudo python get-pip.py
    3. sudo yum install java-1.7.0-openjdk poppler-utils python-setuptools \
    4. python-imaging python-memcached python-ldap \
    5. python-urllib3 python-devel gcc
    6. sudo pip install boto

    补充说明: 关于 Java

    注意:Seafile 专业版需要 java 1.7 以上版本, 请用 java -version 命令查看您系统中的默认 java 版本. 如果不是 java 7, 那么, 请 更新默认 java 版本.

    安装 Oracle 客户端库

    从 Oracle 官网 下载 basic, sqlplus, devel 三个 rpm 包。

    在 CentOS/RedHat 下,

    1. sudo rpm -ivh oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
    2. sudo rpm -ivh oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
    3. sudo rpm -ivh oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm

    在 Ubuntu 下,使用 alien 程序来安装 rpm 包。

    1. sudo apt-get install alien
    2. sudo alien -i oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
    3. sudo alien -i oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
    4. sudo alien -i oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm

    安装之后,相应的文件所在路径:

    • 库:/usr/lib/oracle/12.1/client64/lib
    • 客户端程序:/usr/lib/oracle/12.1/client64/bin

    另外,在 /usr/bin 下面还有一个 sqlplus64 的符号链接指向 /usr/lib/oracle/12.1/client64/bin/sqlplus。

    把 Oracle 库的路径加入 LD_LIBRARY_PATH:

    1. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/12.1/client64/lib

    设置 ORACLE_HOME 环境变量:

    1. export ORACLE_HOME=/usr/lib/oracle/12.1/client64

    把上面两个配置加入到 ~/.bashrc 里面,以便重新登录之后仍然生效。

    测试 sqlplus 客户端是否能工作:

    1. sqlplus64 seafile/seafile@192.168.1.178/XE

    上述命令通过 seafile 用户和密码访问 Oracle 数据库。命令的格式为 sqlplus64 {user}/{password}@{server_address}/{service_name}service_name 是 Oracle 数据库在安装的时候设置的,可以咨询 DBA。

    最后安装 Oracle python 客户端库 cx_Oracle

    1. sudo pip install cx_Oracle

    Oracle数据库配置" class="reference-link">Oracle数据库配置

    推荐为 Seafile 服务器专门创建一个 Oracle 数据库用户和相应的 Tablespace,以便于管理。以下命令均在 SQLPlus 命令行里面执行。

    创建给用户使用的 tablespace。该 tablespace 从20M开始,自动按需扩大。DBA 可以根据自己的需求和经验调整命令的参数。

    1. create tablespace seafile_ts datafile 'seafile_ts.dat' size 20M autoextend on;

    创建用户(用户名 seafile,示例密码也是 seafile)并给予相应的权限,并关联 tablespace,限定最多使用 5GB 空间。Seafile 中有的表格会随着使用时间的增长而增长,比如用户的 session 表等,为了减少 tablespace 达到空间上限导致服务中断的可能性,我们建议给 tablespace 分配重组的空间。这些较大的表格可以定期清理,以减少空间使用。

    1. create user seafile identified by seafile default tablespace seafile_ts quota 5000M on seafile_ts;

    赋予新用户权限。Seafile 服务器需要使用创建 Sequence 对象的权限。

    1. grant connect, create table, create sequence, create trigger to seafile;

    下载与安装 Seafile 专业版服务器" class="reference-link">下载与安装 Seafile 专业版服务器

    获得许可证书

    将您得到的许可证书放在顶层目录下。比如,在这篇文档页面里,我们把 /data/haiwen/ 作为顶层目录。

    下载与解压 Seafile 专业版服务器" class="reference-link">下载与解压 Seafile 专业版服务器

    1. tar xf seafile-pro-server_2.1.5_x86-64.tar.gz

    现在您的目录结构应该像如下这样:

    1. haiwen
    2. ├── seafile-license.txt
    3. └── seafile-pro-server-2.1.5/

    安装

    我们先按照使用 SQLite 数据库的方式来完成安装,然后再手工配置使用 Oracle 数据库。

    1. cd seafile-server-*
    2. ./setup-seafile.sh #运行安装脚本并回答预设问题

    如果你的系统中没有安装上面的某个软件,那么 Seafile 初始化脚本会提醒你安装相应的软件包。 该脚本会依次询问你一些问题,从而一步步引导你配置 Seafile 的各项参数。































    参数作用说明

    seafile server name

    seafile 服务器的名字,目前该配置已经不再使用

    3 ~ 15 个字符,可以用英文字母,数字,下划线

    seafile server ip or domain

    seafile 服务器的 IP 地址或者域名

    客户端将通过这个 IP 或者地址来访问你的 Seafile 服务

    seafile data dir

    seafile 数据存放的目录,用上面的例子,默认将是 /data/haiwen/seafile-data

    seafile 数据将随着使用而逐渐增加,请把它放在一个有足够大空闲空间的分区上

    seafile fileserver port

    seafile fileserver 使用的 TCP 端口

    一般使用默认的 8082 端口,如果已经被占用,可以设置为其他的端口

    如果安装正确完成,会打印成功消息

    现在你的目录结构将会是如下:

    1. #tree haiwen -L 2
    2. haiwen
    3. ├── conf # configuration files
    4. ├── ccnet.conf
    5. └── seafile.conf
    6. └── seahub_settings.py
    7. └── seafdav.conf
    8. ├── ccnet
    9. ├── mykey.peer
    10. ├── PeerMgr
    11. └── seafile.ini
    12. ├── installed
    13. └── seafile-server_1.4.0_x86-64.tar.gz
    14. ├── seafile-data
    15. ├── seafile-server-1.4.0 # active version
    16. ├── reset-admin.sh
    17. ├── runtime
    18. ├── seafile
    19. ├── seafile.sh
    20. ├── seahub
    21. ├── seahub.sh
    22. ├── setup-seafile.sh
    23. └── upgrade
    24. ├── seafile-server-latest # symbolic link to seafile-server-1.4.0
    25. ├── seahub-data
    26. └── avatars
    27. ├── seahub.db

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

    配置 Seafile 使用 Oracle 数据库

    修改 haiwen/conf/ccnet.conf,加入以下选项:

    1. [Database]
    2. ENGINE = oracle
    3. HOST = 192.168.1.178
    4. USER = seafile
    5. PASSWD = seafile
    6. SERVICE_NAME = XE

    HOST, USER, PASSWD 替换成你的环境中具体的值,SERVICE_NAME 是 Oracle 数据库实例的 service name,具体请咨询 DBA 并替换成你们的实际名称。

    修改 haiwen/conf/seafile.conf,加入以下选项:

    1. [database]
    2. type = oracle
    3. host = 192.168.1.178
    4. user = seafile
    5. password = seafile
    6. service_name = XE

    修改 haiwen/conf/seahub_settings.py,加入以下选项:

    1. DATABASES = {
    2. 'default': {
    3. 'ENGINE': 'django.db.backends.oracle',
    4. 'NAME': 'xe',
    5. 'USER': 'seafile',
    6. 'PASSWORD': 'seafile',
    7. 'HOST': '192.168.1.178',
    8. 'PORT': '1521',
    9. },
    10. 'OPTIONS': {
    11. 'threaded': True,
    12. },
    13. }

    修改 haiwen/conf/seafevents.conf,加入以下选项:

    1. [DATABASE]
    2. type = oracle
    3. host = 192.168.1.178
    4. username = seafile
    5. password = seafile
    6. service_name = XE

    在 Oracle 数据库中创建 Seafile 所需表格

    在启动 seafile/ccnet 之前,需要先手工创建表格。创建表格的 SQL 语句在 seafile-server-latest/create-db/oracle 目录下面的 ccnet_db.sql, seafile_db.sql, seahub_db.sql 脚本里面。

    你可以在 SQLPlus 命令行里面通过如下命令创建表格:

    1. SQL> @seafile_db.sql
    2. SQL> @ccnet_db.sql
    3. SQL> @seahub_db.sql

    启动 Seafile 服务器" class="reference-link">启动 Seafile 服务器

    启动 Seafile 前,需要先删除一些 Seafile 自带的文件

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

    1. rm seafile/lib/libclntsh*

    启动 Seafile 服务器和 Seahub 网站

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

    • 启动 Seafile:
    1. ./seafile.sh start # 启动 Seafile 服务
    • 启动 Seahub
    1. ./seahub.sh start <port> # 启动 Seahub 网站 (默认运行在8000端口上)

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

    服务启动后, 打开浏览器并输入以下地址

    1. http://192.168.1.111:8000/

    你会被重定向到登陆页面. 输入管理员用户名和密码即可。

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

    在另一端口上运行 Seahub

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

    • 关闭 Seafile 服务器
    1. ./seahub.sh stop # 停止 Seafile 进程
    2. ./seafile.sh stop # 停止 Seahub
    • 更改haiwen/conf/ccnet.conf文件中SERVICE_URL 的值(假设你的 ip 或者域名是192.168.1.100), 如下 (从 5.0 版本开始,可以直接在管理员界面中设置。注意,如果同时在 Web 界面和配置文件中设置了这个值,以 Web 界面的配置为准。):
    1. SERVICE_URL = http://192.168.1.100:8001
    • 重启 Seafile 服务器
    1. ./seafile.sh start # 启动 Seafile 服务
    2. ./seahub.sh start 8001 # 启动 Seahub 网站 (运行在8001端口上)

    关闭/重启 Seafile 和 Seahub

    关闭

    1. ./seahub.sh stop # 停止 Seahub
    2. ./seafile.sh stop # 停止 Seafile 进程

    重启

    1. ./seafile.sh restart # 停止当前的 Seafile 进程,然后重启 Seafile
    2. ./seahub.sh restart # 停止当前的 Seahub 进程,并在 8000 端口重新启动 Seahub

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

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

    • 使用pgrep命令检查 seafile/seahub 进程是否还在运行中
    1. pgrep -f seafile-controller # 查看 Seafile 进程
    2. pgrep -f "seahub" # 查看 Seahub 进程
    • 使用pkill命令杀掉相关进程
    1. pkill -f seafile-controller # 结束 Seafile 进程
    2. pkill -f "seahub" # 结束 Seafile 进程

    一键安装脚本下额外配置

    如果你使用 一键安装脚本 部署的 Seafile,在完成上述配置之后,还需:

    Ubuntu 16.04 root 用户下

    /etc/init.d/seafile-server 文件中,在 fastcgi_port=8000case "$1" in 之间加入

    1. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/12.1/client64/lib
    2. export ORACLE_HOME=/usr/lib/oracle/12.1/client64

    Centos 7 root 用户下

    1. /etc/systemd/system/seafile.service[Service] 配置中加入

      1. Environment="LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/12.1/client64/lib"
      2. Environment="ORACLE_HOME=/usr/lib/oracle/12.1/client64"
    2. /etc/systemd/system/seahub.service[Service] 配置中加入

      1. Environment="LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/12.1/client64/lib"
      2. Environment="ORACLE_HOME=/usr/lib/oracle/12.1/client64"
    3. 运行

      1. systemctl enable seafile

    OK!

    查看seafile更多信息请访问:

    • Nginx 下配置 Seahub / Apache 下配置 Seahub
    • Nginx 下启用 Https / Apache 下启用 Https
    • Seafile LDAP配置
    • 管理员手册