安装部署
资源准备
硬件环境
序号 | 服务器需求 | CPU(核) | 内存(G) | 硬盘(G) | 操作系统 | 备注 |
---|---|---|---|---|---|---|
1 | 应用服务器 | 8 | 32 | 500 | Linux | 部署前端/后端项目以及其他服务 |
2 | MySQL数据库服务器 | 4 | 8 | 500 | 非必需,如不考虑服务之间物理隔离,也可将这些服务部署在应用服务器上 | |
3 | Elasticsearch全文检索服务器 | 4 | 16 | 500 | ||
4 | 档友会内容服务器 | 4 | 16 | 500 | Linux | |
5 | Nginx代理服务器 | 4 | 8 | 100 |
软件环境
序号 | 产品名称 | 软件名称 | 版本 | 备注 |
---|---|---|---|---|
1 | Linux | Ubuntu | 22 | |
2 | Java | OpenJDK | 21 | |
3 | 全文索引服务器 | Elasticsearch | 8 | |
4 | 关系型数据库 | MySQL | 8 | |
5 | 应用服务器 | Tomcat | 10 | |
6 | Nginx | Nginx | 1.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 **