# 部署准备工作
准备好服务器,可以复用已有中间件基础软件,没有也没关系,下面流程有安装步骤说明。
# 1.依赖环境
环境 | 要求 |
---|---|
操作系统 | linux 系统 如:Ubuntu/CentOS等 |
jdk | 1.8 |
mysql | 5.7+ |
redis | 5+ |
nginx | 1.16+ |
# 2.下载部署文件
请单击网盘下载 (opens new window)进行下载部署文件,
并拷贝文件到目标电脑的/usr/local/
目录中(我们已该目录为例,其他目录时下面教程中路径自行修改);
压缩包文件名 | 内部目录名 | 内容 |
---|---|---|
mars3d-studio-日期.zip | mars3d-studio | 后端服务,启停脚本,数据库脚本文件 |
html-日期.zip | html | Web前端网页包 |
deps-linux.zip | deps | 基础环境软件参考配置,包括nginx、mysql、jdk、redis等 |
# 安装步骤说明
# 1.解压“mars3d-studio-日期.zip”
将mars3d-studio-日期.zip
放在/usr/local/
下,解压至当前文件夹,解压后目录为/usr/local/mars3d-studio
# 2.解压“html-日期.zip” 和 “deps-linux.zip”
将html-日期.zip
和deps-linux.zip
移动至/usr/local/mars3d-studio/
目录下,解压至当前文件夹,,解压至当前文件夹,解压后目录为/usr/local/mars3d-studio/html/
和/usr/local/mars3d-studio/deps/
# 3.核对目录结构
调整后的目录结构为:
/usr/local/mars3d-studio
├─ api (后端服务文件)
├─ config
└─ application-prod.yml # 后端配置文件
├─ lib
└─ coffee-admin.jar
├─ bin
├─ start.sh # 启动后端服务
├─ stop.sh # 停止后端服务
├─ data
├─ init_data.sql # 数据库初始化脚本
├─ gap # 上传目录
└─ logs
├─ html #对应html-日期.zip,Web前端网页包
├─ favicon.ico
└─ index.html
└─ deps #对应deps-linux.zip
├─ nginx
├─ gdal
├─ jdk
├─ mysql
└─ redis
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 4.安装JDK
如已安装,请忽略该步骤
cd /usr/local/mars3d-studio/deps/jdk #进入安装包文件目录
tar xvf jdk-8u351-linux-x64.tar.gz #解压文件
mv jdk1.8.0_351/ /usr/local/jdk #移动目录,最终服务运行在usr/local/jdk/目录
vim /etc/profile
# 文件末尾添加如下配置
JAVA_HOME=/usr/local/jdk
JRE_HOME=${JAVA_HOME}/jre
CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH
export JAVA_HOME JRE_HOME CLASSPATH PATH
# 生效配置
source /etc/profile
# 验证
java -version
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 5.安装 MySQL 数据库
已安装,请忽略;复用已有环境时需要调整相关配置(见修改Java后端配置章节);
cd /usr/local/mars3d-studio/deps/mysql #进入安装包文件目录
tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz #解压文件
mv mysql-8.0.30-linux-glibc2.12-x86_64 /usr/local/mysql #移动目录,最终服务运行在usr/local/mysql/目录
cd /usr/local/mysql #进入安装完成的服务目录
mkdir data
groupadd mysql
useradd -g mysql mysql
chown -R mysql.mysql /usr/local/mysql
chmod -R 750 /usr/local/mysql/data
mkdir /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql/
mkdir /var/log/mysql
chown -R mysql:mysql /var/log/mysql/
vim /etc/profile
# 文件末尾添加如下配置
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
source /etc/profile
vim /etc/my.cnf #可参考/usr/local/mars3d-studio/deps/mysql/my.cnf
[mysql]
default-character-set=utf8
[client]
socket=/var/lib/mysql/mysql.sock
[mysqld]
port=3306
user=mysql
general_log = 1
general_log_file= /var/log/mysql/mysql.log
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-bin=/usr/local/mysql/data/mysql-bin
innodb_data_home_dir=/usr/local/mysql/data
innodb_log_group_home_dir=/usr/local/mysql/data/
character-set-server=utf8mb4
lower_case_table_names=1
autocommit=1
default_authentication_plugin=mysql_native_password
symbolic-links=0
[mysqld_safe]
log-error=/usr/local/mysql/data/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
安装libaio【可选】
apt-get install -y libaio1
bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --initialize
# 查看控制台初始化密码`X?N>7xc9P>lQ`
cp -a ./support-files/mysql.server /etc/init.d/mysql
chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysql
vim /usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=root
Group=root
# Have mysqld write its state to the systemd notify socket
Type=notify
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --user=mysql
# Sets open_files_limit
LimitNOFILE = 10000
Restart=on-failure
RestartPreventExitStatus=1
# Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# 6.在MySQL中创建数据库并还原数据
mysql -u root -p
# 创建数据库
create database mars3d-studio-pro;
# 创建用户
create user 'mars3d'@'%' identified by '123456';
SELECT host, user, password FROM mysql.user WHERE user='mars3d';
# 授权用户
GRANT ALL ON mars3d-studio-pro.* TO 'mars3d'@'%';
# 还原数据
use mars3d-studio-pro;
# sql文件地址,根据实际情况调整
source /usr/local/mars3d-studio/data/init_data.sql
2
3
4
5
6
7
8
9
10
11
12
# 7.安装Redis
已安装,请忽略;复用已有环境需要调整相关配置(见修改Java后端配置章节);
cd /usr/local/mars3d-studio/deps/redis #进入安装包文件目录
tar xvf redis-5.0.14.tar.gz #解压文件
mv redis-5.0.14 /usr/local/redis #移动目录,最终服务运行在usr/local/redis/目录
cd /usr/local/redis #进入安装完成的服务目录
# 依赖gcc
make MALLOC=libc PREFIX=/usr/local/redis install
chmod -R 777 /usr/local/redis
nohup `cd /usr/local/redis && ./bin/redis-server redis.conf > redis.log 2>&1` &
2
3
4
5
6
7
8
9
10
11
12
# 8.安装Nginx
已安装,请忽略;复用已有环境需要调整相关配置(见修改Java后端配置章节);
apt-get install -y gcc
apt-get install -y libpcre3 libpcre3-dev
apt-get install -y zlib1g zlib1g-dev
apt-get install -y openssl
apt-get install -y libssl-dev
apt-get install -y lrzsz
cd /usr/local/mars3d-studio/deps/nginx #进入安装包文件目录
tar xvf nginx-1.22.1.tar.gz #解压文件
mv nginx-1.22.1 /usr/local/nginx #移动目录,最终服务运行在usr/local/nginx/目录
cd /usr/local/nginx #进入安装完成的服务目录
chmod 777 /usr/local/nginx
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 9.修改Java后端配置
打开/usr/local/mars3d-studio/api/config/application-prod.yml
文件,根据实际部署目录或复用本地基础软件时按需修改配置。
#仅节选了关键配置
spring:
datasource:
dynamic:
datasource:
master:
url: jdbc:mysql://127.0.0.1:3306/mars3d-studio-pro?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false&autoReconnect=true&allowPublicKeyRetrieval=true
username: root
password: 123456
redis:
host: 127.0.0.1
port: 6379
database: 0
password: 123456
app:
demoEnabled: false
uploadDir: D:/mars3d-studio/data/gap # 上传目录,根据实际情况进行调整,如 /usr/local/mars3d-studio/data/gap
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
其中关键配置信息:
app.uploadDir
【重要】上传临时目录,需要核对实际安装路径修改spring.datasource.dynamic.datasource
MySQL数据库链接spring.redis
Redis链接spring.file-storage
文件上传配置(支持本地/minio 等)
# 10.修改Nginx服务配置
拷贝允许跨域配置文件(如果未拷贝,nginx.conf配置文件中include nginx_cors;将报错无效)
mv /usr/local/mars3d-studio/deps/nginx/nginx_cors /usr/local/nginx/conf
编辑工具打开 /usr/local/nginx/conf/nginx.conf
文件,
其中关键配置如下:
# 前端页面
location / {
root /usr/local/mars3d-studio/html; # 【关键】根据实际安装路径进行调整
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
# 后端api
location ^~/api/ {
proxy_pass http://localhost:2800;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
# 静态资源
location /gap/ {
include nginx_cors; #允许跨域配置
root /usr/local/mars3d-studio/data; # 【关键】根据实际安装路径进行调整
expires 7d;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
其中的root /usr/local/mars3d-studio/html
和root /usr/local/mars3d-studio/data
配置,需要根据实际部署路径进行修改后保存。
# 启动平台
# 1.启动后端服务
cd /usr/local/mars3d-studio
# 使用管理员权限
./bin/start.sh
2
3
4
# 2.启动Nginx服务
cd /usr/local/nginx
./sbin/nginx
2
# 3.访问系统
打开浏览器访问http://127.0.0.1
,输入超级管理员账号 root/123456
进行登录(建议首次进入后修改密码并创建普通用户帐号)。
# 平台授权
首次启动时免费试用一个月,会提示License试用验证通过
;后续联系我们进行授权,需提供程序生成的clientCode
机器码(在启动的Java后端控制台有打印,或者单击登录页面下面下侧的问号小图标)。
# 停止平台
# 停止后端服务
cd /usr/local/mars3d-studio
./bin/stop.sh
2
3
# 停止Nginx服务
cd /usr/local/nginx
./sbin/nginx -s stop
2
# 更新平台
首先停止服务,停止后下载最新的离线包,没有特殊说明时,可以只用覆盖下面2个目录
- 更新后端服务: “mars3d-studio-日期.zip” 中的
/api/lib/
目录,解压后拷贝覆盖到/mars3d-studio/api/lib/
目录中(注意别覆盖\mars3d-studio\api\config\
配置文件); - 更新前端页面: “html-日期.zip”压缩包全部解压覆盖到
/mars3d-sudio/html/
目录。
更新完成后启动服务。
# 部署中常见问题
# Linux系统中问题
问题:应用启动时无法获取对应的硬件参数,导致License
认证授权失败
回答:是系统权限问题,使用oshi
获取相关硬件参数,需要使用root
权限进行启动
# 其他常见问题
查看部署中常见问题