前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[seafile]seafile迁移和onlyoffice整合

[seafile]seafile迁移和onlyoffice整合

作者头像
用户9314062
发布于 2022-05-20 06:19:30
发布于 2022-05-20 06:19:30
1.4K00
代码可运行
举报
文章被收录于专栏:LINUX开源玩家LINUX开源玩家
运行总次数:0
代码可运行

迁移seafile社区版7.1.5,并整合onlyoffice

要点是数据库同步,我使用mysql,所以先导入mysql数据库再执行seafile安装脚本即可。基本步骤分三部:

导入mysql数据库

执行安装脚本

同步数据文件

seafile迁移完成后再集成onlyoffice。

1. mysql数据库导出和导入

1.1 导出

因为使用中迁移,需要多次同步测试,写个脚本 seaMysqlEx.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash

DIR="/root/seafileDump"
read -s PASSWORD
echo $PASSWORD
DATE=$(date +%Y-%m-%d-%H-%M-%S)

mysqldump  -uroot -p$PASSWORD seahub-db > $DIR/seahub.sql.$DATE
mysqldump  -uroot -p$PASSWORD seafile-db > $DIR/seafile.sql.$DATE
mysqldump  -uroot -p$PASSWORD ccnet-db > $DIR/ccnet-db.sql.$DATE

执行 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bash seaMysqlEx.sh

输入mysql的root密码,数据库保存在/root/seafileDump

1.2导入

在新主机安装mysql,按对应关系创建三个数据库并赋权,不必与以前同名,比如我这次没用默认的’-db'

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create database `ccnet`;
create database `seafile`;
create database `seahub`;
create USER ‘seafile’@’%IDENTIFIED BY ‘seapassword’;

赋权的时候debian10和centos7的语句有一点不同,同为mysql5,充分体现了linux阵营的分裂:

debian

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GRANT ALL ON `ccnet.*` TO ‘seafile’@’%;
GRANT ALL ON `seafile.*` TO ‘seafile’@’%;
GRANT ALL ON `seahub.*` TO ‘seafile’@’%;

centos

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GRANT ALL ON `ccnet`.* TO ‘seafile’@’%;
GRANT ALL ON `seafile`.* TO ‘seafile’@’%;
GRANT ALL ON `seahub`.* TO ‘seafile’@’%;

mysql执行导入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql -u seafile -p ccnet < /tmp/seafileDump/ccnet-db.sql.2021-02-02-15-33-42 
mysql -u seafile -p seafile < /tmp/seafileDump/seafile.sql.2021-02-02-15-33-42 
mysql -u seafile -p seahub < /tmp/seafileDump/seahub.sql.2021-02-02-15-33-42

2. 执行安装脚本

mysql导入后就可以执行,注意选择2,使用已有的mysql数据库,最后有报错表已经存在,没关系。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# ./setup-seafile-mysql.sh 
......
-------------------------------------------------------
[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases


[ 1 or 2 ] 2
......
......

Error: Failed to init seahub database: Table 'abuse_reports_abusereport' already exists

3. 同步数据文件

这几个目录同步到新主机

conf/

ccnet/

seahub-data/custom/

seafile-server-latest/seahub/media/

seafile-server-latest/seahub/media/custom/

seafile-data/

其中最后一个seafile-data/是最大的,因为在使用中迁移,使用rsync避免重复耗时,也可以整合到上面的脚本里面去。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nohup rsync -avz /seafile/seafile-data/* seafile@$IPdest:/seafile/seafile-data/ &

4. 修改参数

修改conf/ccnet.conf的IP地址

创建链接启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ln -s seafile-server-7.1.5 seafile-server-latest
cd seafile-server-latest
./seafile.sh start && ./seahub.sh start

用管理员登录网页修改SERVICE_URL和FILE_SERVER_ROOT的地址,否则数据库里面的改不了。

如果头像有问题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ln -s seahub-data/avatars/ seafile-server-latest/seahub/media/
ln -s seahub-data/custom/ seafile-server-latest/seahub/media/     

5. 集成onlyoffice

为了省事使用docker,参考

https://helpcenter.onlyoffice.com/installation/docs-community-install-docker.aspx

这里说明下,为了对付安全检查,现在所有流量都要求加密,只能使用https而不能使用http,参考上面生成自签名证书,然后启动docker,避开443端口(已经给seafile了)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -i -t -d -p 9443:443 -v /seafile/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice

这里注意,自签名证书默认不能通过认证需要进入docker修改:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/etc/onlyoffice/documentserver/default.json
"rejectUnauthorized": true改为false

重启下onlyoffice

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
supervisorctl restart all

另外docker会被防火墙拦截,所以要给权限让onlyoffice可以下载office文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="172.17.0.0/24" port protocol="tcp" port="443" accept
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 LINUX开源玩家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档