迁移seafile社区版7.1.5,并整合onlyoffice
要点是数据库同步,我使用mysql,所以先导入mysql数据库再执行seafile安装脚本即可。基本步骤分三部:
导入mysql数据库
执行安装脚本
同步数据文件
seafile迁移完成后再集成onlyoffice。
1. mysql数据库导出和导入
1.1 导出
因为使用中迁移,需要多次同步测试,写个脚本 seaMysqlEx.sh
#!/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
执行
bash seaMysqlEx.sh
输入mysql的root密码,数据库保存在/root/seafileDump
1.2导入
在新主机安装mysql,按对应关系创建三个数据库并赋权,不必与以前同名,比如我这次没用默认的’-db'
create database `ccnet`;
create database `seafile`;
create database `seahub`;
create USER ‘seafile’@’%’ IDENTIFIED BY ‘seapassword’;
赋权的时候debian10和centos7的语句有一点不同,同为mysql5,充分体现了linux阵营的分裂:
debian
GRANT ALL ON `ccnet.*` TO ‘seafile’@’%’;
GRANT ALL ON `seafile.*` TO ‘seafile’@’%’;
GRANT ALL ON `seahub.*` TO ‘seafile’@’%’;
centos
GRANT ALL ON `ccnet`.* TO ‘seafile’@’%’;
GRANT ALL ON `seafile`.* TO ‘seafile’@’%’;
GRANT ALL ON `seahub`.* TO ‘seafile’@’%’;
mysql执行导入
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数据库,最后有报错表已经存在,没关系。
# ./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避免重复耗时,也可以整合到上面的脚本里面去。
nohup rsync -avz /seafile/seafile-data/* seafile@$IPdest:/seafile/seafile-data/ &
4. 修改参数
修改conf/ccnet.conf的IP地址
创建链接启动
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的地址,否则数据库里面的改不了。
如果头像有问题
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了)
docker run -i -t -d -p 9443:443 -v /seafile/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice
这里注意,自签名证书默认不能通过认证需要进入docker修改:
/etc/onlyoffice/documentserver/default.json
"rejectUnauthorized": true改为false
重启下onlyoffice
supervisorctl restart all
另外docker会被防火墙拦截,所以要给权限让onlyoffice可以下载office文件
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="172.17.0.0/24" port protocol="tcp" port="443" accept
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有