# 数科0716旧版本预览、转换、签章服务安装维护手册

适用Linux和信创系统

2024年9月

# 修订记录

修订内容 修订时间
增加必备配置“sysctl开启内核ipv4转发等配置” 2024-9-20
增加常见问题“部分电脑预览转圈” 2024-9-20
修改访问web-reader/lic的端口,由8080改为81 2024-9-29
增加预装tar等常用命令的提醒 2024-10-18

# 部署要求

本手册适用于部署《数科电子签章+预览+转换》组合时使用,如果只部署数科预览+转换,请参考:《数科_预览+转换服务部署手册》。

特别注意:不含数科签章与包含数科签章的安装文件、部署方式、部署目录、授权注册、开放端口都有很大差异,请严格按照对应手册操作。

# 适用版本

数科在线预览和签章服务集成适用于致远协同办公管理软件(A6+、A8+、A8-N、G6、G6-N)9.0SP1版本。

# 环境要求

特别注意:

数科服务不支持Windows环境部署(需要一台Linux系统的服务器)!

服务器最低配置要求:CPU>=16核 内存>=24G 目录空间>=500G

详细支持情况如下:

不同用户数对数科服务器配置要求不同,建设初期请按照OA同时在线人数申请与之匹配的服务器资源,后续再根据运行情况做灵活调配。

更详细的系统环境兼容、阶梯资源要求参考在线文档:https://docs.qq.com/sheet/DRmlOWkRoTFNLQnJi?tab=000001 (opens new window)

# 网络互通要求

使用数科功能,需要实现如下网络要求:

1、数科服务要与协同OA 服务网络互通

2、客户终端(使用数科在线预览和签章的电脑)需要能同时访问协同OA服务地址和数科服务地址。

3、如果客户端连接协同OA的协议是http,则连接数科的通协议也必须是http;同理,连接协同OA协议是https,则数科协议也必须是https。

4、如启用Https,证书需要客户采购,且证书不能绑定到任何IP上,证书需要绑定给指定域名。

如下是服务对外用到的默认端口:

包含数科签章场景 默认端口 操作
协同OA服务 80 互通
数科签章、预览 81 互通
数科转换 8090 互通
数科转换(arm) 8091 互通
客户端 All 互通

由于不同客户的网络环境不同(有的只用PC内网;有的PC和移动都放外网;有的M3和微协同都分开网络管理),不同场景的网络配置会有不同,产品提供了不同客户网络环境下的解决方案,请务必参考在线文档做网络配置:

https://docs.qq.com/doc/DYUF2d2FuV214Y3Rl (opens new window)

如部署完成后,出现网络不通的问题,可通过如下方法进行网络连通测试:

首先,画出客户端、协同OA服务器、数科服务的网络关系,以及访问域名(或IP端口)。

然后,通过telnet命令检查IP端口连通性,示例"telnet 192.168.10.20 80"。

端口不通示例:

Linux:

[root@lbq data]# telnet 192.168.10.20 80
Trying 192.168.10.20...
telnet: connect to address 192.168.10.20: Operation timed out
telnet: Unable to connect to remote host

Windows:

Microsoft Windows [版本 10.0.22631.4037]
(c) Microsoft Corporation。保留所有权利。
C:\Windows\System32>telnet 192.168.10.50 80
正在连接192.168.10.50...无法打开到主机的连接。 在端口 80: 连接失败

端口正常连通示例:

Linux:

[root@lbq data]# telnet 192..168.10.20 80
Trying 192..168.10.20...
Connected to 192..168.10.20.
Escape character is '^]'.

Windows:

Microsoft Windows [版本 10.0.22631.4037]
(c) Microsoft Corporation。保留所有权利。
C:\Windows\System32>telnet 192.168.80.25 80

正常则跳转到黑色窗口光标有规律闪烁。

# 安装包获取

链接:https://pan.baidu.com/s/1tGwOsWuW3Ra9IVls_KI2oA (opens new window)

提取码: kusm

网盘具体路径:

Linux X86环境:第三方应用>数科预览转换+签章>数科(签章+预览+转换产品)X86环境

信创arm环境:第三方应用>数科预览转换+签章>数科(签章+预览+转换产品)arm64环境

注:数科不支持Windows系统部署,没有Windows安装包!

# 软件要求

数科服务依赖Docker容器,所有相关服务均安装在Docker下:

• docker

• docker-compose

安装包自带docker和docker-compose,安装过程中识别已安装docker组件会自动跳过,如不存在会自动安装。

已有的docker环境的建议要大于等于如下版本;

• Docker version 20.10.9, build c2ea9bc

• Docker Compose version v2.14.2

# 服务部署

安装数科服务,建议以root身份执行部署,以普通用户执行时需要在命令前增加sudo以获取权限!

安装部署前,先确保当前系统已经安装了最基础的命令,可执行如下语句做预装:

# 使用yum命令安装,如当前系统提示yum不可用,则使用apt
yum install tar curl telnet vim -y

# 基于Debian的系统(如Ubuntu)使用apt预装组件
sudo apt update
sudo apt install tar curl telnet vim -y

# 检查服务器资源(必做)

安装前务必做好服务器资源检查:根目录空间>=100GB,数据目录空间>=400GB。空间过小,会造成空间不足导致安装失败!

推荐模式 Size Mounted on 备注
第一种模式根目录 >=100G / 根目录需要预留空间
第一种模式数据目录 >=400G /data 数科主要放在/data下的子目录
第二种模式 >=500G / -

# 部署前关闭相关服务(必做)

关闭防火墙:

#停止防火墙
systemctl stop firewalld
#开机不自启
systemctl disable firewalld

关闭 selinux:

1、临时关闭 :输入命令 setenforce 0,重启系统后还会开启 。建议永久关闭。
2、永久关闭 :输入命令 vim /etc/selinux/config,将SELINUX=enforcing 改为SELINUX=disabled, 然后保存退出。

1730958893164.png

设置完成后,请重启一次服务器操作系统!

# sysctl开启内核ipv4转发等配置(必做)

以下操作必须,请按命令示例执行:

复制/etc/sysctl.conf一份命名为/etc/sysctl.conf.1,方便出问题恢复。

使用vi或vim命令编辑/etc/sysctl.conf文件,修改或添加如下配置:

cp -r /etc/sysctl.conf /etc/sysctl.conf.1
vim /etc/sysctl.conf

将以下配置信息放入sysctl.conf配置中(如果已有相同配置,则忽略)

net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-arptables = 1
vm.swappiness = 0
fs.inotify.max_user_watches = 1048576
# vi或vim模式增加配置后Esc再录入:wq保存(如不会使用vim请自行网上搜索)
# 保存后,再执行 sysctl -p 使修改生效(有的系统需要执行 service network restart)
sysctl -p
# 如果已经部署了服务,还需要重启docker引擎:
systemctl daemon-reload
systemctl restart docker

1726804202513.png

1726804341274.png

如果出现sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: No such file or directory错误,则表示"net.bridge.bridge-nf-call-iptables = 1"参数未生效

可以执行命令手动加载模块到内核:

# 先加载模块到内核
modprobe br_netfilter

# 再执行sysctl -p使修改生效
sysctl -p

# 上传安装包(必做)

首先将安装包上传到服务器/data/suwell路径下:

# 没有/data/suwell路径就新建对应路径:
mkdir -p /data/suwell
# 通过各种方式将安装包传到/data/suwell目录下,以下是从/tmp目录传过来:
mv /tmp/dzqz-weboffice-seeyon-0716.tar.gz /data/suwell

特别注意:dzqz-开头的安装包才是带签章的,适合本部署文档;如果您下载的是suwell-开头的安装包则表示下错了(这个不含签章服务),这种情况不要用本手册部署,会有很多意料外的问题!

# 核对安装包完整性(可选)

建议核对安装包完整性,值不一致需要重新下载安装包。如不会本步操作,可以忽略至下一步:

# X86安装包完整性检查方法:
cd /data/suwell
md5sum dzqz-weboffice-seeyon-0716.tar.gz

输出结果与"一体包.txt"文件里对应的值核对,对应不上需要重新获取安装包。

# arm安装包完整性检查方法:
cd /data/suwell
md5sum dzqz-weboffice-seeyon-arm64-0716.tar.gz

输出结果与"一体包.txt"文件里对应的值核对,对应不上需要重新获取安装包。

# 解压安装包(必做)

以上步骤完成后,在/data/suwell目录下解压安装包:

特别注意:带签章的数科安装包是dzqz-开头,如果您下载的是不带签章的安装包,请用不带签章的数科部署手册。

cd /data/suwell
# X86环境解压如下压缩包:
tar -zxvf dzqz-weboffice-seeyon-0716.tar.gz
# arm环境解压如下压缩包:
tar -zxvf dzqz-weboffice-seeyon-arm64-0716.tar.gz

解压后的目录名为dzqz-weboffice(如果发现解压后的目录名不对,请检查是否下了错安装包):

# 修改service.yml配置(必做)

下一步进入/data/suwell/dzqz-weboffice/dzqz目录,修改service.yml中的配置:

cd /data/suwell/dzqz-weboffice/dzqz/
vim service.yml

进入dzqz目录后,通过vi或vim修改service.yml,找到resource模块:

provider: com.suwell.reader.resource.SimpleOFDResource前面增加一个#号;

#provider: com.suwell.reader.resource.HttpInfoResource 前面的#号删除掉;

通俗点说就是注释SimpleOFDResource,启用HttpInfoResource。

以上操作修改后,按键盘Esc键,输入:wq保存退出即可。

修改service.yml之后,在当前dzqz目录下依次执行如下命令:

cd /data/suwell/dzqz-weboffice/dzqz/
# 先执行如下命令:
source env_all
# 再执行如下命令:
source  ../suwell-viewer-weboffice/etcd_env

# 执行部署脚本(必做)

以上完成后,开始执行安装命令,在dzqz目录下执行一键安装脚本:

cd /data/suwell/dzqz-weboffice/dzqz/
# 以root身份执行部署脚本:
./install_start.sh

整个安装过程不用人为介入,如果当前系统已经安装docker,程序会自动跳过进行镜像导入:

没有docker和docker-compose环境时会自动安装组件:

随后,什么都不用做,等待安装完成即可:

如遇到上图中的warn警告信息可以忽略,不影响功能。

如遇到"xxx Error"的错误提示,则表示自动安装失败,这种情况建议先检查目录空间,如果磁盘空间不足会造成部署失败。遇到安装失败,只能先定位并解决问题,然后卸载服务,重新部署。

查看过程信息:no space left on device,典型的空间不足,数科服务对根目录和数据目录都有磁盘空间要求:

这个空间太小了:

# 服务状态查看(必做)

通过docker ps -a命令查看数科服务状态,如果容器下所有服务状态是up表示正常:

# 查看数科服务运行状态:
docker ps -a

如果状态不是up,可以使用docker logs 查看日志信息联系数科支持人员排查。

# 通过docker log查看日志:
docker logs -n 500 对应docker ps -a的第一列容器id
# 示例如下:
docker logs -n 1000 ced6a915c0c0

以上完成后,就算部署完成,剩下就是获取机器码和放置授权。

# 授权申请和注册服务(必做)

# 授权申请步骤(必做)

数科服务部署完成后,才能进行授权文件申请。申请和注册授权总计需要进行两步:

第一步:部署人员按手册访问reader和api5(可选)获取机器码,将机器码交给客户经理,客户经理申请到.lic授权文件后,部署人员将其放到reader和api5(可选)目录并重启数科服务。

第二步:部署人员继续通过浏览器访问web-reader/lic获取第二次机器码,将第二次机器码交给客户经理,客户经理申请到.lic授权文件后,部署人员通过浏览器访问web-reader/lic注册第二次的.lic文件。

以上完成后,才能正常使用数科服务。

协同OA加密狗授权:使用数科预览转换和电子签章,客户经理需要申请V5加密狗中增加插件:"在线预览集成插件"和"电子签章集成插件",否则V5后台系统管理员进行流版签设置看不到对应菜单。

数科授权:正式授权文件需发起销售订单获取,试用授权文件需发起《客户产品申请单》获取,在表单中插件信息部分选择或填写"数科文档在线预览"/"数科电子签章"。

1726304118880.png

# 申请注册目录授权(必做)

# 获取数科预览的授权文件:到license下reader目录,生成机器码
cd /data/suwell/dzqz-weboffice/dzqz/license/
cd reader/
./createcode -c
# 如果上一步执行报错提示-1,则执行下面操作获取机器码:
chattr -R -i .FORBIDDEN/
rm -rf .FORBIDDEN/
./createcode -c

# (可选)获取数科签章的授权文件:到license下api5目录,生成机器码
cd /data/suwell/dzqz-weboffice/dzqz/license/
cd api5/
./createcode -c
# 如果上一步执行报错提示-1,则执行下面操作获取机器码:
chattr -R -i .FORBIDDEN/
rm -rf .FORBIDDEN/
./createcode -c

将获取的机器码分好目录类别发送给客户经理,由客户经理去申请授权文件。

# 目录注册授权

客户经理申请到授权后,将相对应的api5授权和reader授权手动再放到api5和reader的路径下,授权文件名字不是".lic"的话,必须修改为".lic"文件名。比如数科给的是名为"lic40"的文件,您需要将其改为名为".lic"的文件(不是lic40.lic)。使用ls -al可以查看到授权文件。

# 目录注册后重启服务(必做)

放置好授权.lic文件后,重启数科服务:

# 访问到部署目录
cd /data/suwell/dzqz-weboffice/dzqz/
# 先执行停止服务
docker-compose -f docker-compose.yml stop
# 再启动容器服务
docker-compose -f docker-compose.yml start

停止服务:

启动应用服务还是在当前路径下,全部显示Started后表示启动完毕等待10秒后访问:

1718787596436

# 浏览器注册预览服务(必做)

当前面reader和api5目录的授权已经放入并重启服务。接来下就是进行第二次授权注册:访问数科服务地址 http://IP:81/web-reader/lic 密码是suwell@123

正常情况下机器码是生成的,将机器码交给客户经理,联系获取数科的第二次授权文件(特别提醒,第二次授权文件与api5、reader无关,故不要拿api5、reader下的文件去乱注册)。

拿到第二次授权文件后,按下图所示注册授权,直至显示"注册成功"为止:

到此服务部署启动完成,剩余的参考功能初始化手册进行签章初始化,初始化后才能正常对接OA。

浏览器访问获取注册码时,可能会遇到机器码全部0000000的情况,这种情况需要做下判断:

1、如果您没注册过reader、api5目录,则需要先按手册要求注册授权后再获取机器码。

2、如果您已经确认放置过reader、api5目录授权,并且重启过,则直接联系数科技术告知情况,获得支持。

如遇到重启后无法访问web-reader/lic的问题,可以稍等一会儿重试。如果还是不行,则尝试再次重启数科服务。

# 签章服务初始化(可选)

# 三员添加对接系统

打开三员登录页面 http://IP:81/managementCenter/login

登录系统管理员 账号:xtadmin 密码:123456

# 添加对接系统(签章)

  1. 点击系统管理

  2. 点击添加对接系统按钮

  3. 弹框内,签章系统地址如下图所示:

业务系统IP:/sealWeb/Transferstation

系统统菜单地址: http://IP:81/elseal/em/sysApi/sysInteractionBus

不能填127.0.0.1

添加成功后,点击编辑,会显示APP key,密钥信息,请记录这两项信息,便于后续初始化使用

# 添加对接系统(制章)

1、点击系统管理

2、点击添加对接系统按钮

3、弹框内,签章系统地址如下图所示:

制章系统地址如下图所示:

业务系统IP:/sealMakerWeb/login

系统菜单地址: http://服务器的IP:81/sealmaker/sysApi/sysInteractionBus

不能填127.0.0.1

添加成功后,点击编辑,会显示APP key,密钥信息,请记录这两项信息,便于后续初始化使用

# 业务系统初始化配置

三员、签章、制章系统部署完成后在三员中添加签章、制章的对接系统,并记录相应的appKey和appSecret,开始对签章、制章进行系统初始化配置。

# 制章初始化配置

制章系统初始化地址: http://服务器的IP:81/sealMakerWeb/initconfig

登录初始化管理员:账号:init 密码:SuWell@123.com!

制章系统初始化配置页面如下:

  1. 依照部署环境,选择部署网络环境是否互通,签章、制章系统是否互通

  2. 设置ukey制章是否需要开启

  3. 填入2.1.2三员系统对接制章系统时下发的APP key,密钥信息

  4. 系统初始化时间:选择部署时间即可

  5. 上传系统所需要的制章工具和ukey小助手

按需配置后点击提交

# 创建用户

打开三员登录页面 http://服务器的IP:81/managementCenter/login

登录系统管理员 账号:xtadmin密码:123456

  1. 选择"用户管理-内部用户管理"菜单

  2. 选择对应机构(无机构请在"组织机构管理"菜单下创建),点击"添加用户"按钮,填写信息,添加用户。

# 创建角色

打开三员登录页面 http://服务器的IP:81/managementCenter/login

登录系统管理员 账号:aqadmin密码:123456

选择"角色管理"目录,添加角色,选择制章系统环境,选择菜单权限,创建角色

# 角色分配用户

角色创建成功后,点击列表的"分配用户",添加2.2.1.1创建的用户

# 制章添加对接系统

1、打开制章登录页面 http://服务器的IP:81/managementCenter/portal

2、登录三员创建的账号(已分配制章角色)

3、点击系统配置

4、点击添加对接系统

业务系统IP地址: http://服务器的IP:81/elseal/em

添加成功后,点击编辑,会显示APP key,密钥信息,请记录这两项信息,便于后续初始化使用

# 签章初始化配置

签章系统初始化地址: http://服务器的IP:81/sealWeb/initconfig

登录初始化管理员:账号:init 密码:SuWell@123.com!

签章初始化页面如下图所示:

  1. 签章认证url:http://服务器的IP:81/publicLoginPage/login

  2. 依照部署环境,选择部署网络环境是否互通,签章、制章系统是否互通

  3. 依照部署环境,选择签章、制章是否使用同一个minio

  4. 三员系统下发appKey、appSecret,填入2.1.1三员系统对接签章系统时下发的APP key,密钥信息

  5. 制章系统下发appKey、appSecret,填入2.2.1.4制章系统对接签章系统时下发的APP key,密钥信息

  6. 系统初始化时间:选择部署时间即可

  7. 上传系统所需要的制章工具和ukey小助手

  8. 按需配置后点击提交

注:

  1. 签章系统设置在线/离线,互通/不互通后需要在三员登录系统管理员中更新签章系统菜单。

  1. 更新后需要登录安全管理员对签章的菜单权限进行勾选。

# 导入系统证书

  1. 打开三员登录页面 http://服务器的IP:81/managementCenter/login

  2. 登录安全管理员 账号:aqadmin密码:123456

  3. 点击系统证书管理,选择对应系统,点击导出P10,填写对应信息,下载P10文件,类型一般是pem,提供给商务生成证书

  4. 点击导入证书导入商务提供的证书文件

# 协同OA侧配置数科在线预览(必做)

# 前提要求

进行本章节操作前提:

  1. 已经完成数科服务部署、授权注册,已确认数科服务处于启动状态

  2. 已经在致远侧更新了数科集成依赖的加密狗授权

# 配置说明

登录协同OA系统管理员-系统设置-流版签系统设置。通过在线预览-选择数科预在线预览,来配置预览相关信息:

1729581720854.png

IP地址不能配置127.0.0.1

在线预览文件大小限制:超出限制就无法预览,默认5120KB/1024=5M文件,如果要调整为最大预览50M文件则配置为:51200

数科在线预览服务器地址:对应数科默认端口是81,并且一定要在端口后追加/web-reader

注:以上端口适合含签章服务场景,如果未部署签章服务所使用端口不一样,需要看另一份手册。

数科在线预览转换服务器地址:对应数科默认端口是8090(ARM芯片默认端口不一样,ARM的端口信息见“网络互通要求”中的端口列表),端口后面不带任何内容

数科在线预览回调地址:对应协同OA的地址,端口后追加/seeyon,不要以/结尾

通过在电子签章-数科在线签章,来配置签章相关信息:

1729582025430.png

IP地址不能配置127.0.0.1。

由于不同客户的网络环境不同,产品提供了不同客户网络环境下的解决方案,请务必参考在线文档做网络配置: https://docs.qq.com/doc/DYUF2d2FuV214Y3Rl (opens new window)

# 功能验证

以上完成后,进行功能验证,可以以普通用户的身份登录协同系统,上传附件,再尝试通过在线预览访问附件,判断预览有效性。

# 数科问题固定排查方法(必读)

如遇数科服务不可用,按如下固定方式做排查:

第一步:检查数科服务是否正常,通过docker ps -a命令查看数科服务是否全部启动

# 查看数科服务运行状态:
docker ps -a

找NAMES中包含suwell关键字的所有信息,检查STAUTS状态:

如果全是Up则正常,上报问题时,提供状态截图证明;

如果STAUTS存在不是Up的镜像,则参考"重启数科服务"章节,将数科服务重启再试;

如果重启后依然存在STAUTS不是Up的选项,则截图上报问题

第二步:检查授权是否正常

参考授权章节,直接访问数科授权页面 http://IP:81/web-reader/lic 密码是suwell@123 查看页面是否正常。

注:以上端口适合含签章服务场景,如果未部署签章服务所使用端口不一样,需要看另一份手册。

如果显示"注册成功"则授权正常,上报问题时,提供注册成功截图证明;

如果没有显示"注册成功",请按照授权章节做完整的授权申请再检查;

如果确认已经完整授权申请,依然不生效,请提供reader、api5目录机器码截图、.lic授权文件和浏览器授权文件,上报问题

第三步:检查service.yml配置是否正常

参考修改service.yml章节,检查service.yml中的resource模块

cd /data/suwell/dzqz-weboffice/dzqz/
cat service.yml

如上图所示,如果HttpInfoResource最前面没有#号,而SimpleOFDResource最前面有#号则正常。上报问题时,提供配置截图证明。

反之则不正常,参考修改service.yml章节,调整配置,随后参考"卸载操作"+"手动部署"操作发布数科服务。

第四步:检查协同OA侧配置

参考协同OA侧配置章节,检查在线预览的配置是否正确。

数科在线预览服务器地址:对应数科默认端口是81,并且一定要在端口后追加/web-reader

注:以上端口适合含签章服务场景,如果未部署签章服务所使用端口不一样,需要看另一份手册。

数科在线预览转换服务器地址:对应数科默认端口是8090,端口后面不带任何内容

数科在线预览回调地址:对应协同OA的地址,端口后追加/seeyon,不要以/结尾

不同客户的网络环境不一样,务必根据客户场景选择在线文档中合适的网络关系做配置 https://docs.qq.com/doc/DYUF2d2FuV214Y3Rl (opens new window)

如果项目上未查出问题,请提供配置截图及客户的网络场景,上报问题。

# 日常运维(可选)

# 重启数科服务

本步介绍日常运维过程中,数科服务重启的操作步骤,如项目上需要进行服务重启,参照如下方案执行即可:

# 访问到部署目录dzqz
cd /data/suwell/dzqz-weboffice/dzqz/
# 先执行停止服务
docker-compose -f docker-compose.yml stop
# 再启动容器服务
docker-compose -f docker-compose.yml start

# 访问到部署目录suwell-viewer-weboffice
cd /data/suwell/dzqz-weboffice/suwell-viewer-weboffice
# 先执行停止服务
docker-compose -f docker-compose.yml stop
# 再启动容器服务
docker-compose -f docker-compose.yml start

停止服务:

启动应用服务还是在当前路径下,全部显示Started后表示启动完毕等待10秒后访问:

1718787596436

通过docker ps -a命令查看数科服务状态,如果容器下所有服务状态是up表示正常:

# 查看数科服务运行状态:
docker ps -a

# 卸载操作

本步不是初始安装必须的操作,只有遇到安装失败等问题,需要重新部署时,才涉及卸载操作。

卸载服务的顺序不能错,都是先应用后基础:

1、卸载服务dzqz
# 切换路径到数科的dzqz目录
cd /data/suwell/dzqz-weboffice/dzqz
# 卸载应用服务
docker-compose -f docker-compose.yml down
# 卸载基础服务
docker-compose -f docker-compose-base.yml down

2、卸载服务suwell-viewer-weboffice
# 切换路径到数科的suwell-viewer-weboffice目录
cd /data/suwell/dzqz-weboffice/suwell-viewer-weboffice
# 卸载应用服务
docker-compose -f docker-compose.yml down
# 卸载基础服务
docker-compose -f docker-compose-tools.yml down

# 重装操作

本步不是初始安装必须的操作,只有遇到需要重装时才参考执行,如无重装需求,可以跳过本章。

要重装数科服务,必须先确保原本已安装的数科服务已经卸载,请参考"卸载操作"章节完成所有数科服务的卸载!

卸载完成之后,如果数科给了您最新的安装包,则需要先将上次安装解压出来的/data/suwell/dzqz-weboffice目录给删除,然后取最新的数科安装包解压。以上完成后,就按照"服务部署"章节重新做一次部署即可。

# 切换路径到数科的suwell目录
cd /data/suwell/
# 删除suwell下的dzqz-weboffice目录
rm -rf ./dzqz-weboffice

如果删除出现"FORBIDDEN/01 : Operation not permitted"这类提示,表示文件权限不足,还要进一步删除一下:

# 赋予文件权限
chattr -R -i /data/suwell/dzqz-weboffice/dzqz/license/api5/.FORBIDDEN/

chattr -R -i /data/suwell/dzqz-weboffice/dzqz/license/reader/.FORBIDDEN/
# 再做一次删除
rm -rf /data/suwell/dzqz-weboffice

以上完成后,建议重启一次操作系统。

随后,就参考本手册“服务部署”章节,“拷贝部署包到/data/suwell - 解压部署包 - 配置service.yml - 执行install_start”依次操作重新部署数科服务。

# 手动部署

正常情况下,可以跳过此章节。如某些特殊原因,将数科服务进行了卸载(docker x down),(又不希望全部删除重装)需要重新装载服务启动,则手工部署适合此问题处理。

执行手工部署需要满足以下两个条件:

1、您已经在当前系统中安装了数科所需的Docker和Docker Compose组件。

2、您已经按照"服务部署"章节,完成了"执行部署脚本"的所有操作,此前数科服务已经导入到Docker镜像中,您按照"卸载操作"章节将数科服务进行了卸载,此时需要手工部署将数科服务重新拉起

首先,执行一次环境变量的加载(执行一次即可)

cd /data/suwell/dzqz-weboffice/dzqz/
# 先执行如下命令:
source env_all
# 再执行如下命令:
source  ../suwell-viewer-weboffice/etcd_env

随后执行启动服务,必须先行启动基础服务,再启动应用服务。

导入镜像(重新发布时可以跳过此步骤)由于是多个镜像文件,使用循环加载,直接复制以下命令粘贴到终端执行即可。

cd /data/suwell/dzqz-weboffice/dzqz
# 复制以下三行完整命令到终端执行:
for file in images/*.tar.gz; do
    docker load -i "$file"
done

# 注意复制粘贴后,光标会停在那不动,不是没反应,需要耐心等待镜像装载完成

需要切换路径去执行启动基础服务和启动应用服务,这里有两个路径

/data/suwell/dzqz-weboffice/dzqz

/data/suwell/dzqz-weboffice/suwell-viewer-weboffice

# 发布并启动dzqz基础服务
cd /data/suwell/dzqz-weboffice/dzqz
docker-compose -f docker-compose-base.yml up -d
# 发布并启动dzqz应用服务
cd /data/suwell/dzqz-weboffice/dzqz
docker-compose -f docker-compose.yml up -d
# 发布并启动suwell-viewer-weboffice基础服务
cd /data/suwell/dzqz-weboffice/suwell-viewer-weboffice
docker-compose -f docker-compose-tools.yml up -d
# 发布并启动suwell-viewer-weboffice应用服务
cd /data/suwell/dzqz-weboffice/suwell-viewer-weboffice
docker-compose -f docker-compose.yml up -d
# 服务启动完成后,查看服务启动状态
docker-compose  ps

# 更新安装数科系统

本章节介绍更新升级数科程序方案,不同于直接卸载再安装,本章节会介绍如何保留已产生的数据,以防止出现升级后数据丢失的问题。

# 备份数据:到数科服务目录下
cd /data/suwell/dzqz-weboffice/dzqz/
# 备份mysql-data, 这里面存储的是签章服务的数据
cp -r mysql-data /data/backup_suwell/mysql-data

备份之后,就是卸载数科服务:

# 卸载服务dzqz
# 切换路径到数科的dzqz目录
cd /data/suwell/dzqz-weboffice/dzqz
# 卸载应用服务
docker-compose -f docker-compose.yml down
# 卸载基础服务
docker-compose -f docker-compose-base.yml down

# 卸载服务suwell-viewer-weboffice
# 切换路径到数科的suwell-viewer-weboffice目录
cd /data/suwell/dzqz-weboffice/suwell-viewer-weboffice
# 卸载应用服务
docker-compose -f docker-compose.yml down
# 卸载基础服务
docker-compose -f docker-compose-tools.yml down

卸载数科服务后,考虑将数科整个安装包删除,随后再解压安装数科最新安装包:

# 切换路径到数科的suwell目录
cd /data/suwell/
# 删除suwell下的dzqz-weboffice目录
rm -rf ./dzqz-weboffice

如果删除出现"FORBIDDEN/01: Operation not permitted"这类提示,表示文件权限不足,还要进一步删除一下:

# 赋予文件权限
chattr -R -i /data/suwell/dzqz-weboffice/dzqz/license/api5/.FORBIDDEN/

chattr -R -i /data/suwell/dzqz-weboffice/dzqz/license/reader/.FORBIDDEN/
# 再做一次删除
rm -rf /data/suwell/dzqz-weboffice

以上完成后,建议重启一次操作系统。

随后,就参考本手册“服务部署”章节,“拷贝部署包到/data/suwell - 解压部署包 - 配置service.yml - 执行install_start”依次操作重新部署数科服务。

# 恢复数据:到数科备份目录下
cd /data/backup_suwell
# 还原数据mysql-data, 这里面存储的是签章服务的数据:
cp -r mysql-data /data/suwell/dzqz-weboffice/dzqz/mysql-data

# 安装字体

注:字体涉及商业版权,需要客户自行准备所需字体。

1.准备字体包(extfonts.zip),将字体包解压

unzip extfonts.zip

2.将字体包cp到suwell-viewer-weboffice-web-office-driver-1容器

# 查看容器
docker ps
# 拷贝字体文件
docker cp extfonts suwell-viewer-weboffice-web-office-driver-1:/usr/share/fonts/

  1. 加载字体

进入suwell-viewer-weboffice-web-office-driver-1容器

# 进入容器
docker exec -it suwell-viewer-weboffice-web-office-driver-1 bash
# 切换路径
cd /usr/share/fonts/

刷新系统字体

# 刷新系统字体
fc-cache -f -v

重启容器

# 重启容器
docker restart suwell-viewer-weboffice-web-office-driver-1

# 修改端口

电子签章和预览的对外端口,改ports 下冒号前面的,冒号后面的不动。

cd /data/suwell/dzqz-weboffice/dzqz
vim docker-compose.yml

转换对外端口

修改端口后卸载重新部署数科服务:

第一步,参考"卸载操作"章节,卸载现有数科服务(注意仅卸载,别执行重装操作,别把数科数据文件给删掉了!)

第二步,参考"手动部署"章节,重新部署启动数科服务

# docker网段冲突修改

修改docker默认网段

修改docker默认网段 1、停止docker

systemctl stop docker

2、删除原有docker0网桥

ip link del docker0 down

3、vim /etc/docker/daemon.json,添加形如下内容

"bip":"192.161.20.1/24"

如果没有daemon.json文件,则新建文件内容形如下

{
"bip":"192.161.20.1/24"
}

4、重启docker服务

systemctl restart docker
  1. 通过ifconfig 查看docker网段是否已经变更

a7ff7ca4ac3d803d8d128b141b4eb98

# 配置SSL(可选)

# 服务自带(可选)

数科一体包服务配置https+域名方案 (nginx证书)

  1. 进入一体包部署的目录比如:
cd /data/suwell/dzqz-weboffice/dzqz
  1. 首先需要放开域名解析配置,如图:

执行命令:vim env_all 增加一行域名解析环境变量

export HOST_YUM="dieppv.imp.pub.caep:$(hostname -I|awk '{print $1}')"

IMG_256

IMG_257

修改当前路径下 docker-compose.yml 和docker-compose-base.yml 以及/data/suwell/dzqz-weboffice/suwell-viewer-weboffice 路径下的docker-compose.yml 和docker-compose-tools.yml

这四个配置文件里增加上域名解析配置,如图1:

注:图1是标注的对应需要修改的文件

IMG_258

图2是表示需要增加的域名解析配置,这四个docker-compose的配置文件里每个服务模块都需要增加以下配置

extra_hosts:
      - "${HOST_YUM}"

IMG_259

1.1 执行ls命令,如图:

1.2 再执行mkdir ssl将https证书放到此目录下

mkdir ssl

IMG_260

1.3 vim docker-compose.yml 编辑这个配置文件,如图:

找到关于nginx服务模块需要将ports: 指定将容器内部端口映射到宿主机上的端口再加两个个https使用的端口 4431对应的是预览、8099对应的是转换

IMG_261

1.4 vim nginx.conf 增加https方式代理配置

vim nginx.conf

IMG_262

转换https代理配置:将以下配置复制到nginx.conf 文件里,修改对应域名+https证书

server {
        #转换服务https访问
        #侦听80端口,如果强制所有的访问都必须是HTTPs的,这行需要注销掉
        listen 8099 ssl;
        server_name xietong.tfmct.com;
        ssl_certificate /etc/nginx/ssl/tfmct.com.pem;
        ssl_certificate_key /etc/nginx/ssl/tfmct.com.key;
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
 
        error_log  logs/error.log;
        access_log logs/access.log;
 
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS,PUT,DELETE';
        add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
        location / {
                proxy_pass http://10.0.25.208:8090;
        }
 }

预览服务https代理配置:再预览server里加上这些配置

listen       80;
        listen  4431 ssl;
        server_name xietong.tfmct.com;
        ssl_certificate /etc/nginx/ssl/tfmct.com.pem;
        ssl_certificate_key /etc/nginx/ssl/tfmct.com.key;
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;

1.5 编辑当前路径下 vim docker-compose.yml

sw_wr_office_domain 模块改成https这里的ip需要根据现场用户要求进行更改

默认无要求就是本机真实ip

如果是内外网的要求:ip改成外网ip

如果要求域名要求:改成域名如示例:https://xietong.tfmct.com:8080/ (opens new window)

IMG_263

  1. 进入一体包webofficef服务的目录下

/data/suwell/dzqz-weboffice/suwell-viewer-weboffice

首先 vim编辑 etcd_env 完成 按 esc键 :wq保存退出

2.1 export ETCD_HOST=$(hostname -I|awk '{print $1}')  这个如果客户没要求不用动
2.2 export ETCD_HOST=192.168.12.13 如果客户要求内外网,需要这里改成外网ip
2.3 export ETCD_HOST=dieppv.imp.pub.caep 如果要求域名访问,则改成域名

IMG_264

  1. vim weboffice.conf 增加几行行配置如下

IMG_265

listen   8080 ssl;
        listen 443 ssl;
        server_name xietong.tfmct.com;
        ssl_certificate /etc/nginx/ssl/tfmct.com.pem;
        ssl_certificate_key /etc/nginx/ssl/tfmct.com.key;
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
    client_max_body_size 50m;
  1. 编辑 当前目录下 etcd.sh脚本 Endpoint 这里改成https

这里的 ${ETCD_HOST} 是读取的环境变量 就是刚才第2条 etcde_env设置的内容

IMG_266{width="4.25in" height="3.6770833333333335in"}

即可 配置完成后需要卸载重新发布服务,请参考部署手册卸载重新发布

# 网络配置(可选)

网关设备或者代理设备配置ssl后转发到数科服务的http端口也行。

# 常见问题

# 参考手册部署了,预览不可用怎么办?

上报问题,不要一句话"部署不通",务必拿出分析过程截图供支持团队快速分析!

参考问题固定排查章节,逐个排查问题,并且截图证明配置正确,如果排查无果,将分析过程截图打包,上报问题由致远与数科支持团队分析。

# word预览正常,excel预览不正常

excel预览和word预览的实现方式有差异,采用了内外网配置方案,除了OA系统管理员账号流版签分别配置内外网地址外,还需要修改数科预览服务配置,具体操作参考如下步骤:

1、进入预览转换服务部署目录比如:(按实际路径修改)

cd /data/suwell/suwell-viewer-weboffice

如果包含电子签章+预览转换服务,路径一般为:(根据实际路径修改)

/data/suwell/dzqz-weboffice/suwell-viewer-weboffice

2、vim编辑etcd_env文件

export ETCD_HOST=192.168.12.13  这里需要这里改成外网ip(或者外网域名)
  • 此处仅输入ip或者域名,不填写端口、http://或者https://

编辑完成后按 esc键,输入 :wq保存退出

  1. 执行命令:source etcd_env
source etcd_env

4、编辑当前路径下docker-compose.yml

sw_wr_office_domain 模块改成:http://外网ip或者外网域名:8080

此处需要完整输入外网ip或者外网域名,需要写上http://或者https://及端口号 ,默认端口8080, 如果修改过对外服务端口按实际端口填写。

5、修改完成后参考本手册重新发布章节重新发布

# 预览空白,重启提示:IPv4 forwarding is disabled

1726806281434.png

解决方案:见“sysctl开启内核ipv4转发”章节,在sysctl.conf中配置相关参数,随后重启数科服务。

# 部分电脑预览转圈,F12控制台显示Failed to read the 'localstorage' property from 'Window'

1726832901747.jpg

1726832888798.png

不是全部电脑有问题,个别电脑通过数科预览会一直转圈。

问题原因:这个是当前浏览器开启“无痕模式”或“隐私模式”导致,在浏览器隐私模式或无痕浏览模式下限制对localStorage的访问。

解决方案:就正常模式打开浏览器访问即可。不要用无痕模式。

# 数科预览excel文件中的图片加载失败

1729651768169.png

  1. 进入部署目录:/data/suwell/dzqz-weboffice/suwell-viewer-weboffice 执行此命令:source etcd_env

  2. 确认环境变量是否设置成功,执行:env

1729651936904.png

  1. 卸载重新发布即可
docker-compose -f docker-compose.yml down
docker-compose -f docker-compose-tools.yml down
docker-compose -f docker-compose.yml up -d
docker-compose -f docker-compose-tools.yml up -d
编撰人:het

快速跳转