Skip to content

安装部署

资源准备

硬件环境

序号服务器需求CPU(核)内存(G)硬盘(G)操作系统备注
1应用服务器832500Linux部署前端/后端项目以及其他服务
2MySQL数据库服务器48500非必需,如不考虑服务之间物理隔离,也可将这些服务部署在应用服务器上
3Elasticsearch全文检索服务器416500
4档友会内容服务器416500Linux
5Nginx代理服务器48100

软件环境

序号产品名称软件名称版本备注
1LinuxUbuntu22
2JavaOpenJDK21
3全文索引服务器Elasticsearch8
4关系型数据库MySQL8
5应用服务器Tomcat10
6NginxNginx1.10+

环境准备

以 Ubuntu 22.04 服务器为例,使用 root 账户登录服务器

禁用 Firewalld

bash
systemctl stop firewalld && systemctl disable firewalld

禁用 SELinux

bash
# 如果系统安装了SELinux,则禁用它
vi /etc/selinux/config
# 设置
SELINUX=disabled

调整 MaxMapCount

bash
# 如需确认 vm.max_map_count 的大小
sysctl vm.max_map_count

# 如果 vm.max_map_count 的值小于 262144,可以进行重置
sysctl -w vm.max_map_count=262144

# 改动会在下次系统重启时被重置。如果希望做永久改动,还需要在 /etc/sysctl.conf 文件里把 vm.max_map_count 的值再相应更新一遍
vm.max_map_count=262144

安装 OpenJDK 21

bash
sudo apt install openjdk-21-jdk

# 验证 OpenJDK 版本
java -version

安装 FFmpeg 6(可选)

bash
# 安装 
sudo add-apt-repository ppa:ubuntuhandbook1/ffmpeg6
sudo apt update
sudo apt install ffmpeg -y

# 检查 FFmpeg 版本
ffmpeg -version

如果采用离线安装,ubuntu 自带的软件包下载地址如下:

http://ports.ubuntu.com/pool/main/

MySQL 安装

在线安装

步骤一:更新软件包列表

在进行任何软件安装之前,请确保系统的软件包列表是最新的。

bash
sudo apt update

步骤2:安装MySQL服务器

bash
# 查看可使用的安装包
sudo apt search mysql-server

# 安装最新版本
sudo apt install -y mysql-server
# 安装指定版本
sudo apt install -y mysql-server-8.0
# 如果不加-y会在安装过程中,系统将提示你设置MySQL的root密码。确保密码足够强,且记住它,因为你将在以后需要用到它。
# 这里选择安装MySQL 8.0

步骤3:启动MySQL服务

bash
# 安装完成后,MySQL服务会自动启动,未启动则使用以下命令启动MySQL服务
sudo systemctl start mysql
# 并将MySQL设置为开机自启动
sudo systemctl enable mysql

# 检查MySQL状态
sudo systemctl status mysql

步骤4:修改密码、权限

默认安装是没有设置密码的,需要我们自己设置密码。

bash
# 登录MySQL,在默认安装时如果没有让我们设置密码,则直接回车就能登录成功。 
mysql -u root -p
# 设置密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
# 刷新缓存
flush privileges;

步骤5:配置外网访问

bash
# MySQL8.0版本把配置文件 my.cnf 拆分成 mysql.cnf 和 mysqld.cnf,修改 mysqld.cnf 文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 修改 bind-address
bind-address = 0.0.0.0
# 重启MySQL重新加载一下配置
sudo systemctl restart mysql

离线安装

如果在没有互联网连接的环境中安装MySQL,可以在另一台联网的计算机上下载MySQL的安装包,然后将其传输到目标机器上进行安装。

步骤1:下载MySQL安装包

在联网的计算机上,访问MySQL官方网站或者MySQL的软件仓库,然后下载MySQL安装包(通常是.deb文件)。将下载的文件保存到一个可移动的存储设备上。

步骤2:传输安装包到目标机器

将下载的MySQL安装包从联网计算机传输到目标Ubuntu机器。可以使用USB驱动器、外部硬盘、网络传输等方法来完成这个步骤。

步骤3:安装MySQL

bash
# 在目标Ubuntu机器上,使用以下命令来安装MySQL
.deb 文件安装方法
sudo dpkg -i mysql-package-name.deb
# 请将 mysql-package-name.deb 替换为你下载的MySQL安装包的文件名。

tar.gz 文件安装方法
# 解压文件
tar -zxvf mysql-package.tar.gz
# 安装
cd /tmp/mysql-package/bin/
./mysql_install_db
# 将 mysql-package.tar.gz 替换为你实际下载的MySQL安装包的文件名。

# 开启数据库访问端口
sudoiptables -IINPUT1 -ptcp --dport 3306-jACCEPT

创建用户、配置数据库

sql
# 创建用户 ecm
CREATE USER 'ecm'@'%' IDENTIFIED WITH mysql_native_password BY '<password>';
# 创建数据库 ecm
CREATE DATABASE ecm CHARACTER SET utf8;
# 赋予权限
GRANT ALL ON ecm.* TO 'ecm'@'%';
# 刷新数据
flush privileges;

# 创建用户 activiti
CREATE USER 'activiti'@'%' IDENTIFIED WITH mysql_native_password BY '<password>';
# 创建数据库 activiti
CREATE DATABASE activiti CHARACTER SET utf8;
# 赋予权限
GRANT ALL ON activiti.* TO 'activiti'@'%';
# 刷新数据
flush privileges;

# 创建用户 docease
CREATE USER 'docease'@'%' IDENTIFIED WITH mysql_native_password BY '<password>';
# 创建数据库 docease
CREATE DATABASE docease CHARACTER SET utf8;
# 赋予权限
GRANT ALL ON docease.* TO 'docease'@'%';
# 刷新数据
flush privileges;

导入数据库表

sql
# 登录MySQL,切换数据库
use docease;
# 导入数据库表
source /tmp/docease.sql
# 切换数据库
use activiti;
# 导入数据库表
source /tmp/process.sql

Elasticsearch 安装

安装

bash
# 在 Elastic 的官网找到指定版本的下载地址,然后使用 wget 下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.12.2-amd64.deb

sudo dpkg -i elasticsearch-8.12.2-amd64.deb

# 设置 elastic 账户密码
./bin/elasticsearch-reset-password -u elastic -i

# 进入 ES 安装目录,安装 IK 分词插件(本体与分次版本需一致)
cd /usr/share/elasticsearch
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.12.2/elasticsearch-analysis-ik-8.12.2.zip

配置

yaml
sudo vi /etc/elasticsearch/elasticsearch.yml

# 修改 network.host
network.host: 0.0.0.0
# 关闭SSL
xpack.security.http.ssl:
  enabled: false
  keystore.path: certs/http.p12

**注意:**ElasticSearch 的配置文件为 YAML 格式,请注意缩进。

启动

bash
sudo systemctl start elasticsearch

# 验证
curl -X GET "localhost:9200"

Tomcat 安装

安装

bash
# 在根目录新建文件夹 as
mkdir /as

cd /as
# 下载Apache Tomcat 10
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.24/bin/apache-tomcat-10.1.24.tar.gz

# 提取安装文件
tar xvf apache-tomcat-10.1.24.tar.gz

# 重命名
mv apache-tomcat-10.1.24 tomcat

配置

xml
<!-- 修改端口号,增加 relaxedPathChars、relaxedQueryChars -->
<Connector port="88" protocol="HTTP/1.1"
  connectionTimeout="20000"
  redirectPort="8443"
  maxParameterCount="1000"
  relaxedPathChars="|{}[]"
  relaxedQueryChars="|{}[]"
  />
shell
#

启动

xml
cd /as/tomcat

# 启动
./bin/startup.sh

# 停止
./shutdown.sh

# 查看日志
tail -f logs/catalina.out

Nginx 安装

安装

bash
# 在线安装
sudo apt install nginx

# 验证 Nginx 安装情况
sudo systemctl status nginx

启动

bash
# 启动
systemctl start nginx

# 停止
systemctl stop nginx

# 重启
systemctl restart nginx

CS 安装

Cloud File 安装

安装

bash
# 上传  cloudfile 文件夹到 cs 目录

# 在 cs 目录里创建一个文件夹 cf_data
mkdir /cs/cf_data

配置

yaml
spring:
  datasource:
    db-type: mysql
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ecm?useUnicode=yes&characterEncoding=UTF-8&useSSL=true&nullCatalogMeansCurrent=true # 数据库相关信息
    username: ecm
    password: <password>
accounts: # 账户配置,可配置多个,每个账户下又可以配置多个bucket,每个账户下的bucket名称不能重复,账户之间的access-id不能重复
  - access-id: LTAIjYbj9x57UGDq
    access-key: OUw3GSF7jAT0diiWeFWqmAEgErDEwe
    buckets:
      - name: acs
        path: /cs/cf_data

启动

bash
chmod +x cf.sh

# 启动
./cf.sh start

# 停止
./cf.sh stop

# 重启
./cf.sh restart

# 查看日志
tail -f logs/server.log

Content Server 安装

安装

bash
# root 账户在根目录新建文件夹 cs
mkdir /cs
# 创建文件存储目录,可以根据项目实际情况配置
mkdir /cs/alf_data

# 上传 content-server 文件夹到 /cs 目录

# 拷贝 content-server/alf_data/keystore 到 /cs/alf_data
cp -a /cs/content-server/alf_data/keystore /cs/alf_data

配置

yaml
cloudfile:
  endpoint: http://localhost:8080
  access-id: LTAIjYbj9x57UGDq
  access-key: OUw3GSF7jAT0diiWeFWqmAEgErDEwe
  bucket-name: acs
  content-boost: true # 如果需要启用内容加速服务(content boost),请确保afc运行端可以访问到endpoint所配置的地址。
spring:
  elasticsearch: # es配置
    index-name: docease # 索引名称,不配默认为alfalfa
    uris:
      - localhost:9200 # 集群地址
    username: elastic
    password: <password>
  # 配置数据库
  datasource:
    db-type: mysql # 数据库类型
    driver-class-name: com.mysql.cj.jdbc.Driver # 驱动
    url: jdbc:mysql://localhost:3306/ecm?useUnicode=yes&characterEncoding=UTF-8&useSSL=true&nullCatalogMeansCurrent=true
    username: ecm # 数据库用户名
    password: <password> # 数据库密码
# --------alfresco-global configs-----------
alfresco:
  dir:
    root: /cs/alf_data # 文件存储路径,如使用oss,则此项不需要配置
    keystore: ${alfresco.dir.root}/keystore # keystore文件夹存放路径
  localTransform:
    core-aio:
      url: http://localhost:8090/ # 内容转换服务地址
alfalfa:
  # 系统默认审计配置
  audit:
    enabled: true # 默认关闭,设置开启
  # 回收站清理配置,默认每日凌晨3点,清理已删除超过14天的文件与文件夹
  trashcan-cleaner:
    cron: 0 0 3 * * ?
    keep-period : P14D
  ticket:
    pool:
      expire-after-seconds:1800 # -1 means never expire

启动

bash
# 启动
./acs.sh start

# 停止
./acs.sh stop

# 重启
./acs.sh restart

# 查看日志
tail -f logs/server.log

Content Parser 安装

安装

bash
# 上传 content-parser 文件夹到 /cs 目录

配置

yaml
alfalfa:
  hosts:
    - localhost
  port: 8765
  ticket: MlWIbRNFGKE0LuEy
spring:
  elasticsearch:
    index-name: docease
    uris:
      - localhost:9200
    username: elastic
    password: <password>
  datasource:
    db-type: mysql
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ecm?useUnicode=yes&characterEncoding=UTF-8&useSSL=true&nullCatalogMeansCurrent=true
    username: ecm
    password: <password>

启动

bash
# 启动
./cp.sh start

# 停止
./cp.sh stop

# 重启
./cp.sh restart

# 查看日志
tail -f logs/cp.log

Repoint 安装(可选)

repoint-ext-[version].jar拷贝到/cs/content-server/extensions文件夹中。

应用部署

内容模型部署

将打包完成的docease-ext-版本号-SNAPSHOT.jar拷贝到/cs/content-server/extensions文件夹中。

Repoint 服务的端口默认为acs服务端口+1(默认是 8766)

DocEase 后端部署

bash
# 上传 docease.sql 文件到 /opt 目录

# 导入数据库
mysql -u root -p

>use docease;
>source /opt/docease.sql;

# 在 Tomcat 10 根目录下创建 webapps-javaee 文件夹
cd /as/tomcat
mkdir webapps-javaee

# 修改 docease-xxx.war 名为 ROOT.war,然后上传到 webapps-javaee 目录

配置

yaml
afc:
  servers:
    - localhost           # 服务器地址,如是集群则配置多个
#  port: 8765                 # 端口,默认不配为8765
#  cluster-strategy: RANDOM   # 集群负载策略,默认RANDOM,可选[RANDOM, ROUND_ROBIN]
#  max-retry-times: 2         # 连接服务器重试次数,默认3次
#  retry-duration-seconds: 3  # 每次重试时间间隔,默认3s
  admin-username: admin
  admin-password: <password> # 密码可根据实际情况调整
wf:
  server: http://localhost:77
logging:
  sysLevel: INFO
jwt:
  header: Authorization # token返回头部
  tokenPrefix: "Bearer " # token前缀
  secret: Nk12V81bnMtrobgN # 密钥
  expireTime: 1440 # token有效时间 (分钟) 建议一小时以上
spring:
  servlet:
    multipart:
      enabled: true
      max-file-size: 1GB
      max-request-size: 128GB
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/docease?useUnicode=yes&characterEncoding=UTF-8&useSSL=true&nullCatalogMeansCurrent=true
    username: docease
    password: <password>

DocEase 工作流服务部署

bash
# 上传 process.sql 文件到 /opt 目录

# 导入数据库
mysql -u root -p

>use activiti;
>source /opt/process.sql;

# 上传 wf 文件夹到 /as 目录

# 添加执行权限
chmod +x wf.sh

# 启动
./wf.sh start

# 停止
./wf.sh stop

# 重启
./wf.sh restart

# 查看日志
tail -f logs/wf.log

配置

yaml
spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher
  jackson:
    default-property-inclusion: NON_NULL
    serialization:
      write-dates-as-timestamps: true
  thymeleaf:
    mode: HTML
    encoding: utf-8
    cache: false
  devtools:
    restart:
      enabled: true
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/activiti?useUnicode=yes&characterEncoding=UTF-8&useSSL=true&nullCatalogMeansCurrent=true
    username: activiti
    password: <password>
# 开发环境配置
server:
  # 服务器的HTTP端口,默认为8080
  port: 77
  compression:
    enabled: true
    mime-types: application/javascript,text/css,application/json,application/xml,text/html,text/xml,text/plain
#mybats配置
mybatis:
    # 搜索指定包别名
    typeAliasesPackage: cn.docease.activiti.bpm.dao
    # 配置mapper的扫描,找到所有的mapper.xml映射文件
    mapperLocations: classpath*:mapper/*.xml
docease:
  server: http://localhost:88 # 通知服务地址,填写 DocEase 服务地址,端口同 Tomcat 安装时配置的端口

DocEase 前端部署

bash
# 编译 docease+ 工程
pnpm i
pnpm run build

# 上传 dist.tar 目录到 /as 解压缩并修改名称为 zyapp
tar -xvf dist.tar
mv dist zyapp

# 默认登陆账号是admin/admin,首次访问,请在个人账户修改密码,修改后的密码需跟 DocEase 后端配置文件 application.yml 中设置的 admin-password 值保持一致

# 初始化根机构,浏览器执行如下命令,操作成功后,进入系统修改此机构
http://<DocEase后端服务地址>:88/api/v1/bpm/OrganizationComponent/createOrganization?parentId=&cm:authorityName=zykj&cm:authorityDisplayName=zykj&uLoginName=&uFirstName=&edp:orgStatus=off&edp:orgAbbreviation=zykj&_PUBLIC_API=true

在/etc/nginx/sites-available/下新建文件 zyapp.conf,添加如下内容

plain
server {
    listen 81; # 指定端口
    server_name _;
    root /as/zyapp;

    gzip on;
    gzip_min_length 1k;
    gzip_comp_level 9;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary on;
    gzip_disable "MSIE [1-6]\.";

    location /api {
        proxy_pass http://<DocEase后端服务地址>:88; # 指定后端服务地址
    }

    location / {
        index index.html;
        try_files $uri $uri/ @router;
    }

    location @router {
        rewrite ^.*$ /index.html last;
    }

    # Cache-Control: max-age~@~AExpires
    location ~ ^/static/(css|js|media)/ {
        expires 10y;
        access_log off;
    }
}

在/etc/nginx/sites-enabled/下新建短链接 zyapp.conf

bash
ln -s /etc/nginx/sites-available/zyapp.conf zyapp.conf

常用命令

bash
# 查看操作系统信息
hostnamectl

# 查看端口号
netstat -tlnp

# .tar 文件解压
tar -xvf **
# .gz 文件解压
gzip -d **
# .tar.gz 和 .tgz 文件解压
tar -xzf **