Linux系统部署手册 - 3D场景发布平台

10/15/2024

# 部署准备工作

准备好服务器,可以复用已有中间件基础软件,没有也没关系,下面流程有安装步骤说明。

# 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-日期.zipdeps-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    
1
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
1
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
1
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
1
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
1
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` &
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
1
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
1
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
1

编辑工具打开 /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;
 }
1
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/htmlroot /usr/local/mars3d-studio/data配置,需要根据实际部署路径进行修改后保存。

# 启动平台

# 1.启动后端服务

cd /usr/local/mars3d-studio

# 使用管理员权限
./bin/start.sh
1
2
3
4

# 2.启动Nginx服务

cd /usr/local/nginx
./sbin/nginx
1
2

# 3.访问系统

打开浏览器访问http://127.0.0.1,输入超级管理员账号 root/123456进行登录(建议首次进入后修改密码并创建普通用户帐号)。

image

# 平台授权

首次启动时免费试用一个月,会提示License试用验证通过;后续联系我们进行授权,需提供程序生成的clientCode机器码(在启动的Java后端控制台有打印,或者单击登录页面下面下侧的问号小图标)。

# 停止平台

# 停止后端服务

cd /usr/local/mars3d-studio

./bin/stop.sh
1
2
3

# 停止Nginx服务

cd /usr/local/nginx
./sbin/nginx -s stop
1
2

# 更新平台

首先停止服务,停止后下载最新的离线包,没有特殊说明时,可以只用覆盖下面2个目录

  1. 更新后端服务: “mars3d-studio-日期.zip” 中的/api/lib/目录,解压后拷贝覆盖到/mars3d-studio/api/lib/目录中(注意别覆盖\mars3d-studio\api\config\配置文件);
  2. 更新前端页面: “html-日期.zip”压缩包全部解压覆盖到/mars3d-sudio/html/目录。

更新完成后启动服务。

# 部署中常见问题

# Linux系统中问题

问题:应用启动时无法获取对应的硬件参数,导致License认证授权失败

回答:是系统权限问题,使用oshi获取相关硬件参数,需要使用root权限进行启动

# 其他常见问题

查看部署中常见问题

最后更新: 10/21/2024, 11:32:56 AM