O2OA使用手册
第一章 服务器部署及管理
  • 1.1 平台服务器主机架构配置推荐
  • 1.2 平台服务器版本升级操作说明
  • 1.3 o2server无法正常显示验证码解决办法
  • 1.4 在宝塔面板中安装O2OA(For Linux)
  • 1.5 系统安全-启用HTTPS(腾讯云版)
  • 1.6 系统安全-自签名SSL证书验证HTTPS功能
  • 1.7 系统安全-加密登录-登录密码RSA加密
  • 1.8 功能部署-为平台增加全文检索功能
  • 1.9 平台维护-流转中工作数据的查询、操作和管理
  • 1.10 平台维护-待办待阅数据的查询操作和管理
  • 1.11 平台维护-自动执行平台数据的备份与恢复
  • 1.12 平台维护-备份和恢复平台数据操作
  • 1.13 平台维护-在线部署自定义应用的WAR包和JAR包
  • 1.14 平台服务器下载及安装部署-Windows系统
  • 1.15 开源平台O2OA服务器下载及安装部署(Linux环境)
  • 1.16 华为云服务器部署O2OA-麒麟操作系统
  • 1.17 平台维护-使用Web端运行服务器管理命令
  • 1.18 密码管理-超级管理员密码修改
  • 1.19 密码管理-普通用户初始化密码设置
  • 1.20 密码管理-用户重置密码操作
  • 1.21 系统配置-如何访问和操作内置数据库-H2
  • 1.22 系统配置-第三方数据库配置-MySQL
  • 1.23 日志管理-访问日志相关配置
  • 1.24 日志管理-审计日志相关配置@日志管理
  • 1.25 日志管理-平台日志文件说明
  • 1.26 系统架构-集群部署配置及操作说明
  • 1.27 系统架构-基于nginx快速集群部署-端口分发
  • 1.28 系统配置-主要配置文件说明
  • 1.29 系统配置-配置服务器连接O2云
  • 1.30 系统配置-流程催办提醒配置
  • 1.31 系统配置-自定义消息提醒
  • 1.32 系统配置-消息提醒配置说明
  • 1.33 系统配置-文件存储服务器配置
  • 1.34 系统配置-工作日节假日配置
  • 1.35 系统配置-开机自动启动O2Server
  • 1.36 系统安全-启用HTTPS(百度云版)
  • 1.37 系统架构-基于nginx快速集群部署-上下文分发
  • 第十五章 开发知识及常见问题
  • 15.1 藕粉社区问答系列1
  • 15.2 藕粉社区问答系列2
  • 15.3 藕粉社区问答系列3
  • 15.4 快速入门-平台相关资料汇总
  • 15.5 快速入门-服务器总体介绍汇总
  • 15.6 快速入门-流程表单载入基础数据
  • 15.7 快速入门-常用表单脚本样例汇总
  • 15.8 快速入门-自定义表数据分页样例
  • 15.9 OEM白标-如何修改平台中的Logo图标和文字
  • 15.10 云服务器-阿里云ECS服务器的端口启用
  • 15.11 开发知识-React篇:在O2OA平台框架中使用React
  • 15.12 开发知识-React篇:在O2OA门户页面中使用React
  • 15.13 开发知识-Vue篇:在Vue应用中集成O2OA
  • 15.14 开发知识-Vue篇:使用Vue-CLI开发O2应用
  • 15.15 开发知识-Vue篇:在O2门户页面中使用Vue
  • 15.16 平台中使用Druid数据库连接及监控
  • 15.17 开发知识-在PAAS平台上部署O2OA开发平台
  • 15.18 开发知识-如何使用Tomcat架设webdav服务器
  • 15.19 开发知识-单个端口模式的Nginx和系统配置
  • 15.20 开发知识-Linux非root用户如何使用80端口启动O2OA
  • 15.21 开发知识-O2OA平台启用Eruda进行移动端调试
  • 15.22 开发知识-神通数据库安装
  • 15.23 开发知识-人大金仓数据安装
  • 15.24 开发知识-中标麒麟安装达梦数据库(DM8)
  • 15.25 开发知识-中标麒麟安装人大金仓详细步骤
  • 15.26 开发知识-使用VNC连接中标麒麟V7操作系统
  • 15.27 开发知识-鲲鹏(ARM)麒麟操作系统如何替换yum源?
  • 15.28 开发知识-数据优化知识点
  • 15.29 水印安全-附件水印|加密|文档格式转换图片|PDF
  • 15.30 消息队列-配置activeMQ、kafka消息队列
  • 15.31 常见问题-数据导出或者导入时发生OOM异常
  • 15.32 常见问题-如何让用户在首次登录时,必须对初始密码进行修改
  • 15.33 常见问题-如何在模块部署中控制模块的访问权限
  • 15.34 常见问题-如何在平台中开发Ftp文件上传文件的服务?
  • 15.35 常见问题-如何使用服务管理调用WebService
  • 15.36 常见问题-如何使用脚本调用外部服务
  • 15.37 常见问题-如何使用脚本控制流程自动流转
  • 15.38 常见问题-如何通过脚本调用系统内服务
  • 15.39 常见问题-接口代码疑惑解答汇总
  • 15.40 常见问题:Maven编译o2server错误: Java Heap Space
  • 15.41 常见问题-集群配置后启动报错:NullPointerException
  • 15.42 常见问题-服务器错误:can not decrypt token
  • 15.43 常见问题-IOS移动办公无法收到验证码
  • 15.44 常见问题-服务器和日志时间相差12小时的问题
  • 15.45 常见问题-为什么127.0.0.1可以访问但其他IP无法访问
  • 15.46 藕粉社区问答系列4
  • 15.47 开发知识-React篇:在React应用中集成O2OA

  • 在宝塔面板中安装O2OA(For Linux)

    时间:2022-08-03   

    宝塔面板是一款非常不错的运维管理面板,让系统运维更加方便简单。O2OA的运行和部署本质上不需要依赖面板,但是我们也可以使用面板简化相应的操作。本文主要介绍O2OA在宝塔面板上的部署和启动。

    前提条件:

    1、完成宝塔面板的安装,https://www.bt.cn/bbs/thread-19376-1-1.html

    2、Linux系统需要完成FTP工具pure-ftpd的安装(或者有可能直接连接服务器的SSH或者SFTP工具)


    image - 2022-03-17T140602.738.png


    一、下载O2OA安装包

    (一)手动从官网下载后上传到服务器

    本方法直接手工从官网下载服务器安装包,并且使用FTP工具软件将安装包上传到服务器指定位置后解压缩即可。

    安装步骤:

    1、O2OA安装包下载

    登录http://www.o2oa.net,在平台下载页面(https://www.o2oa.net/download.html)根据自己的服务器类型下载最新的服务器安装包:

    image - 2022-03-17T140655.332.png

    image - 2022-03-17T140655.332.png


    建议直接下载 java11 的版本。

    下载后获得服务器安装压缩包:o2server-6.2.2-linux-x64.zip 或者 o2server-6.2.2-windows-x64.zip

    2、将安装包上传到服务器(Windows操作略)

    前提条件:需要在定塔面板中安装 Pure-ftpd 软件。


    image - 2022-03-17T140759.966.png


    使用自己的FTP工具或者宝塔FTP工具创建文件目录,并且将O2OA安装包o2server-6.2.2-linux-x64.zip 或者 o2server-6.2.2-windows-x64.zip上传到服务器指定位置。

    (1)创建服务器文件存放目录:

    Linux操作系统:创建目录   /data/  

    Windows操作系统:创建目录  D:/data/

    image - 2022-03-17T140835.687.png


    image - 2022-03-17T140904.173.png


    image - 2022-03-17T140921.985.png


    image - 2022-03-17T140944.476.png


    填写好用户名和密码后,点击提交。


    image - 2022-03-17T141014.353.png


    2)将安装包上传至目录/data/  或者 D:/data/

    image - 2022-03-17T141125.267.png


    image - 2022-03-17T141205.956.pngimage - 2022-03-17T141205.956.png

    至此安装包下载和上传操作完成。

    (二)Linux服务器直接使用服务器命令下载

    1、启用终端命令窗口:


    image - 2022-03-17T141302.852.png


    2、创建服务器文件存放目录:

    Linux操作系统:创建目录   /data/ ,执行命令

    mkdir /data


    image - 2022-03-17T141339.764.png


    3、下载服务器安装包

    在/data目录中下载 o2server-6.2.2-linux-x64.zip,下载地址可以在官网的安装包下载时浏览器下载或者迅雷下载的右键复制下载链接得到:


    image - 2022-03-17T141552.038.png


    如:https://download.o2oa.net/download/o2server-6.2.2-linux-x64.zip

    执行命令下载文件:

    cd /data/
    wget https://download.o2oa.net/download/o2server-6.2.2-linux-x64.zip


    image - 2022-03-17T141628.471.png


    直到下载完成。请注意,进行文件解压操作之前,需要修改文件权限为755或者777:

    image - 2022-03-17T141709.238.png


    二、解压并启用O2OA服务器

    (一)安装包解压

    1、windows环境,直接右键解压安装到一个单独的文件夹即可,解压完成后将文件更名为 o2server

    2、linux环境,可以使用宝塔的文件管理来进行文件解压,解压完成后将文件更名为 o2server

    解压之前要检查文件的权限是否正确,请参考上一节的修改文件权限。

    image - 2022-03-17T141748.839.png



    修改解压的路径为/data/o2server

    image - 2022-03-17T141815.545.png


    等待解压完成:

    image - 2022-03-17T141842.504.png


    (二)启用O2OA服务

    1、windows操作系统可以直接双击执行D:/data/o2server/start_windows.bat完成O2OA的启用。

    2、Linux操作系统可以执行命令启动O2OA,步骤如下:

    打开终端,并且执行命令:

    /data/o2server/start_linux.sh

    服务器正在启动中:

    image - 2022-03-17T142017.640.png



    直到终端显示WEB服务启用完成。

    三、服务器端口限制与配置

    1、防火墙放行80、20020、20030端口

    image - 2022-03-17T142111.865.png


    O2OA的启动与正常运行需要服务器向外开发80、20020、20030三个端口。打开安全界面,开放指定的端口访问权限:

    image - 2022-03-17T142200.085.png

    如果用户安装了WEB服务器,如IIS,Apache,Nginx等,80端口会被占用,导致服务器启用失败。此时可以修改服务器的WEB端口为其他端口。

    2、修改服务器端口

    /data/o2server/configSample目录中将文件node_127.0.0.1.json复制到 /data/o2server/config目录中进行配置:


    image - 2022-03-17T142245.125.png


    双击node_127.0.0.1.json编辑文件,在web节点增加端口信息行:

    "port": 8080,     #8080是需要修改的端口号,也需要在防火墙放行


    image - 2022-03-17T142316.705.png



    完整的配置信息如下:

    {
      "enable": true,
      "isPrimaryCenter": true,
      "center": {
        "enable": true,
        "order": 0.0,
        "sslEnable": false,
        "redeploy": true,
        "port": 20030.0,
        "httpProtocol": "",
        "proxyHost": "",
        "proxyPort": 20030.0,
        "scanInterval": 0.0,
        "configApiEnable": true,
        "statEnable": true,
        "statExclusions": "*.js,*.gif,*.jpg,*.png,*.css,*.ico",
        "maxFormContent": 20.0,
        "exposeJest": true,
        "requestLogEnable": false,
        "requestLogFormat": "",
        "requestLogRetainDays": 7.0,
        "persistentConnectionsEnable": true,
        "###enable": "是否启用###",
        "###order": "center节点顺序,顺序排列0,1,2...###",
        "###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
        "###redeploy": "每次启动是否重新部署所有应用.###",
        "###port": "端口,center服务器端口,默认20030###",
        "###httpProtocol": "对外http访问协议,http/https###",
        "###proxyHost": "代理主机,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问地址.###",
        "###proxyPort": "代理端口,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问端口.###",
        "###scanInterval": "重新扫描war包时间间隔(秒)###",
        "###config": "其他参数###",
        "###configApiEnable": "允许通过Api修改config###",
        "###statEnable": "启用统计,默认启用统计.###",
        "###statExclusions": "统计忽略路径,默认忽略*.js,*.gif,*.jpg,*.png,*.css,*.ico###",
        "###maxFormContent": "最大提交数据限制(M),限制有所上传的内容大小,包括附件.###",
        "###exposeJest": "暴露jest接口.###",
        "###requestLogEnable": "启用访问日志功能.###",
        "###requestLogFormat": "访问日志记录格式.###",
        "###requestLogRetainDays": "访问日志记录天数,默认7天.###",
        "###persistentConnectionsEnable": "是否启用长连接,默认false.###"
      },
      "application": {
        "enable": true,
        "port": 20020.0,
        "sslEnable": false,
        "proxyHost": "",
        "proxyPort": 20020.0,
        "redeploy": true,
        "scanInterval": 0.0,
        "includes": [],
        "excludes": [],
        "weights": [],
        "scheduleWeights": [],
        "statEnable": true,
        "statExclusions": "*.js,*.gif,*.jpg,*.png,*.css,*.ico",
        "maxFormContent": 20.0,
        "exposeJest": true,
        "maxThread": 500.0,
        "requestLogEnable": false,
        "requestLogFormat": "",
        "requestLogRetainDays": 7.0,
        "persistentConnectionsEnable": true,
        "###enable": "是否启用###",
        "###port": "http/https端口,负责向前端提供数据访问接口.默认为20020端口.###",
        "###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
        "###proxyHost": "代理主机,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问地址.###",
        "###proxyPort": "代理端口,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问端口.###",
        "###redeploy": "每次启动是否重载全部应用.###",
        "###scanInterval": "应用reload扫描间隔,u003c0 表示不会reload应用,扫描到应用文件发生了变化.###",
        "###includes": "承载的应用,在集群环境下可以选择仅承载部分应用以降低服务器负载,可以使用*作为通配符.###",
        "###excludes": "选择不承载的应用,和includes的值配合使用可以选择或者排除承载的应用,可以使用*作为通配符.###",
        "###weights": "设置应用的Web访问权重,在集群环境中,一个应用可以部署多个实例提供负载均衡.通过合计占比来分配应用占比.###",
        "###scheduleWeights": "设置应用的定时任务权重,在集群环境中,一个应用可以部署多个实例提供负载均衡.通过合计占比来分配应用占比.###",
        "###statEnable": "启用统计,默认启用统计.###",
        "###statExclusions": "统计忽略路径,默认忽略*.js,*.gif,*.jpg,*.png,*.css,*.ico###",
        "###maxFormContent": "最大提交数据限制(M),限制有所上传的内容大小,包括附件.###",
        "###exposeJest": "暴露jest接口.###",
        "###maxThread": "最大http线程数.###",
        "###requestLogEnable": "启用访问日志功能.###",
        "###requestLogFormat": "访问日志记录格式.###",
        "###requestLogRetainDays": "访问日志记录天数,默认7天.###",
        "###persistentConnectionsEnable": "是否启用长连接,默认true.###"
      },
      "web": {
        "enable": true,
        "sslEnable": false,
        "proxyHost": "",
        "port": 8080,
        "weight": 100.0,
        "dirAllowed": false,
        "statEnable": false,
        "statExclusions": "*.gif,*.jpg,*.png,*.ico",
        "cacheControlMaxAge": 0.0,
        "persistentConnectionsEnable": true,
        "requestLogEnable": false,
        "requestLogFormat": "",
        "requestLogRetainDays": 7.0,
        "###enable": "是否启用###",
        "###port": "http/https端口,用户输入网址后实际访问的第一个端口.http协议默认为80端口,https默认为443端口.###",
        "###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
        "###proxyHost": "代理主机,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问地址.###",
        "###proxyPort": "代理端口,当服务器是通过apache/nginx等代理服务器映射到公网或者通过路由器做端口映射,在这样的情况下需要设置此地址以标明公网访问端口.###",
        "###weight": "设置权重.当前没有作用,###",
        "###dirAllowed": "允许浏览目录,###",
        "###statEnable": "启用统计,默认启用统计.###",
        "###statExclusions": "统计忽略路径,默认忽略*.gif,*.jpg,*.png,*.ico###",
        "###cacheControlMaxAge": "服务器max-age缓存时间(秒)###",
        "###proxyCenterEnable": "是否启用center服务器代理.###",
        "###proxyApplicationEnable": "是否启用application服务器代理###",
        "###proxyTimeOut": "代理连接超时时间,默认300(秒)###",
        "###persistentConnectionsEnable": "是否启用长连接,默认true.###",
        "###requestLogEnable": "启用访问日志功能.###",
        "###requestLogFormat": "访问日志记录格式.###",
        "###requestLogRetainDays": "访问日志记录天数,默认7天.###"
      },
      "data": {
        "enable": true,
        "tcpPort": 20050.0,
        "webPort": 20051.0,
        "includes": [],
        "excludes": [],
        "jmxEnable": false,
        "cacheSize": 512.0,
        "logLevel": "WARN",
        "maxTotal": 50.0,
        "maxIdle": 0.0,
        "statEnable": true,
        "statFilter": "mergeStat",
        "slowSqlMillis": 2000.0,
        "lockTimeout": 120000.0,
        "###enable": "是否启用,如果没有可用的externalDataSources.json文件,那么默认会在节点中启用本地的H2数据库作为默认的数据库.###",
        "###tcpPort": "H2数据库jdbc连接端口,登录的用户名:sa,密码为xadmin的密码.数据库创建在/o2server/local/repository/data/X.mv.db,一旦数据库文件被创建,那么该数据库的密码被创建.###",
        "###webPort": "H2数据库web端口,H2提供一个web端的client,此端口为web端client的访问端口.用户名sa,密码为xadmin数据库初始创建的密码.###",
        "###includes": "设置此数据库存储的类,默认情况下存储所有类型,如果需要对每个类进行单独的控制以达到高性能,可以将不同的类存储到不同的节点上提高性能.可以使用通配符*###",
        "###excludes": "在此节点上不存储的类,和includes一起设置实际存储的类,可以使用通配符*###",
        "###jmxEnable": "是否启动jmx,如果启用,可以通过本地的jmx客户端进行访问,不支持远程jmx客户端.###",
        "###cacheSize": "H2数据库缓存大小,设置H2用于作为缓存的内存大小,以M作为单位,这里默认为512M.###",
        "###logLevel": "默认日志级别,FATAL, ERROR, WARN, INFO, TRACE. 完整的配置为DefaultLevelu003dWARN, Toolu003dTRACE, Enhanceu003dTRACE, METADATAu003dTRACE, Runtimeu003dTRACE, Queryu003dTRACE, DataCacheu003dTRACE, JDBCu003dTRACE, SQLu003dTRACE###",
        "###maxTotal": "最大使用连接数###",
        "###maxIdle": "最大空闲连接数###",
        "###statEnable": "启用统计,默认启用###",
        "###statFilter": "统计方式配置,默认mergeStat###",
        "###slowSqlMillis": "执行缓慢sql毫秒数,默认2000毫秒,执行缓慢的sql将被单独记录.###",
        "###lockTimeout": "默认锁超时时间()毫秒).###"
      },
      "storage": {
        "enable": true,
        "port": 20040.0,
        "sslEnable": false,
        "name": "251",
        "accounts": [],
        "prefix": "",
        "deepPath": false,
        "###enable": "是否启用,对于二进制流文件,比如附件,图片等存储在单独的文件服务器中,可以支持多种文件服务器,默认情况下使用ftp服务器作为文件服务器,每个节点可以启动一个文件服务器以提供高性能.###",
        "###port": "ftp服务器端口,此端口可以不对外开放,仅有ApplicationServer进行访问,并不直接对用户提供服务.###",
        "###sslEnable": "是否启用ssl传输加密,如果启用将使用config/keystore文件作为密钥文件.使用config/token.json文件中的sslKeyStorePassword字段为密钥密码,sslKeyManagerPassword为管理密码.###",
        "###name": "名称,多个节点中不能重名,默认为251.###",
        "###accounts": "二进制流文件是分多个账号分段存储的,可以单独设置每个分类的存储配置,一般不需要设置.###",
        "###passivePorts": "ftp传输有主动和被动之分,如果使用了被动传输,设置被动端口范围,默认为29000-30000.###",
        "###prefix": "路径前缀.###",
        "###deepPath": "使用更深的路径###"
      },
      "logLevel": "warn",
      "dumpData": {
        "enable": false,
        "cron": "",
        "size": 7.0,
        "path": "",
        "###enable": "是否启用,默认禁用.###",
        "###cron": "定时任务cron表达式,默认每天凌晨2点进行备份.###",
        "###size": "最大保留份数,超过将自动删除最久的数据.###",
        "###path": "备份路径###"
      },
      "restoreData": {
        "enable": false,
        "cron": "",
        "path": "",
        "###enable": "是否启用.###",
        "###cron": "定时任务cron表达式###",
        "###path": "恢复路径###"
      },
      "nodeAgentEnable": true,
      "nodeAgentPort": 20010.0,
      "nodeAgentEncrypt": true,
      "quickStartWebApp": false,
      "autoStart": true,
      "###enable": "是否启用###",
      "###isPrimaryCenter": "是否是center节点,仅允许存在一个center节点###",
      "###center": "Center服务器配置###",
      "###application": "Application服务器配置###",
      "###web": "Web服务器配置###",
      "###data": "Data服务器配置###",
      "###storage": "Storage服务器配置###",
      "###logLevel": "日志级别,默认当前节点的slf4j日志级别,通过系统变量"org.slf4j.simpleLogger.defaultLogLevel"设置到当前jvm中.###",
      "###dumpData": "定时数据导出配置###",
      "###restoreData": "定时数据导入配置###",
      "###logSize": "日志文件保留天数.###",
      "###auditLogSize": "审计日志文件保留天数.###",
      "###nodeAgentEnable": "是否启用节点代理###",
      "###nodeAgentPort": "是否启用节点端口###",
      "###nodeAgentEncrypt": "是否启用节点代理加密###",
      "###quickStartWebApp": "是否使用快速应用部署###",
      "###banner": "服务器控制台启动标识###",
      "###autoStart": "是否自动启动###",
      "###eraseContentEnable": "是否允许使用擦除数据功能###"
    }


    四、重启O2OA

    (一)停止O2OA

    1、windows操作系统直接关闭命令窗口,O2OA进程即可退出,服务停止。

    2、Linux操作系统则需要在命令行键入stop,或者直接Kill进程来停止操作系统

    查询进程命令:

    ps -ef|grep java


    image - 2022-03-17T142420.290.png


    获得进程号,并且杀死进程:

    JSON复制代码

    1
    
    kill -9 16096

    二)启动O2OA

    1、windows操作系统可以直接执行D:/data/o2server/start_windows.bat完成O2OA的启用。

    2、Linux操作系统可以执行命令启动O2OA:

    打开终端,并且执行命令:

    /data/o2server/start_linux.sh

    截图见第二节启用O2OA服务器

    五、访问与使用O2OA

    使用Web服务器端口访问O2OA, http://172.16.93.8:8080

    image - 2022-03-17T142516.671.png