外观
Linux系统下部署
2329字约8分钟
2024-10-15
部署准备工作
准备好服务器,可以复用已有中间件基础软件,没有也没关系,下面流程有安装步骤说明。
1.依赖环境
| 环境 | 要求 |
|---|---|
| 操作系统 | linux系统 如:Ubuntu/CentOS等 |
| 运行环境 | jdk 17+ |
| 数据库 | mysql 5.7+ 或 PostgreSQL 16+ |
| 缓存 | redis 5+ |
| web服务 | nginx 1.24+ |
| 地理信息服务 | geoserver 2.26+ |
2.下载部署文件
请单击 http://studio.mars3d.cn/offline.html 进行下载部署文件, 并拷贝文件到目标电脑的/opt/目录中(我们已该目录为例,如果放在usr/local、/home/用户名/其他目录时下面教程中路径自行修改为您的实际开始路径);
| 压缩包文件名 | 内部目录名 | 内容 |
|---|---|---|
| mars3d-studio-日期.zip | mars3d-studio | 后端服务,启停脚本,数据库脚本文件 |
| html-日期.zip | html | Web前端网页包 |
| deps-linux.zip | deps | 基础环境软件参考配置,包括nginx、mysql、jdk、redis等 |
安装步骤说明
1.解压“mars3d-studio-日期.zip”
将mars3d-studio-日期.zip放在/opt/下,解压至当前文件夹,解压后目录为/opt/mars3d-studio
2.解压“html-日期.zip” 和 “deps-linux.zip”
将html-日期.zip和deps-linux.zip移动至/opt/mars3d-studio/目录下,解压至当前文件夹,,解压至当前文件夹,解压后目录为/opt/mars3d-studio/html/和/opt/mars3d-studio/deps/
如果您选用pgsql数据库,请参考使用pgsql部署额外操作后再继续后续流程
3.核对目录结构
调整后的目录结构为:
- opt/mars3d-studio
- api# 后端服务文件
- config
- application.yml# 平台配置文件
- application-prod.yml# 数据库等配置
- lib
- studio-admin.jar
- bin
- start.bat# 启动服务
- stop.bat# 停止服务
- config
- data
- init_data.sql# 数据库初始化脚本
- studio-data# 数据上传目录
- …
- html# 对应html-日期.zip,Web前端网页包
- index.html
- favicon.ico
- deps# 对应deps-linux.zip
- nginx
- …
- jdk
- …
- mysql
- …
- redis
- …
- geoserver
- …
- nginx
- api# 后端服务文件
4.安装JDK
如已安装,请忽略该步骤
cd /opt/mars3d-studio/deps/jdk #进入安装包文件目录
tar xvf openjdk-17.0.2_linux-x64_bin.tar.gz #解压文件
mv jdk-17.0.2/ /opt/jdk #移动目录,最终服务运行在opt/jdk/目录
vim /etc/profile
# 文件末尾添加如下配置
JAVA_HOME=/opt/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 -version5.安装 MySQL 数据库
已安装,请忽略;复用已有环境时需要调整相关配置(见修改Java后端配置章节);
cd /opt/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 /opt/mysql #移动目录,最终服务运行在opt/mysql/目录
cd /opt/mysql #进入安装完成的服务目录
mkdir data
groupadd mysql
useradd -g mysql mysql
chown -R mysql.mysql /opt/mysql
chmod -R 750 /opt/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:/opt/mysql/bin:/opt/mysql/lib
source /etc/profile
vim /etc/my.cnf #可参考/opt/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=/opt/mysql
datadir=/opt/mysql/data
log-bin=/opt/mysql/data/mysql-bin
innodb_data_home_dir=/opt/mysql/data
innodb_log_group_home_dir=/opt/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=/opt/mysql/data/mysql.log
pid-file=/opt/mysql/data/mysql.pid安装libaio【可选】
apt-get install -y libaio1
bin/mysqld --defaults-file=/etc/my.cnf --basedir=/opt/mysql --datadir=/opt/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=/opt/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=false6.在MySQL中创建数据库并还原数据
mysql -u root -p
# 创建数据库
create database mars3d-studio-pro;
# 创建用户
create user 'mars3d'@'%' identified by 'F1-603';
SELECT host, user, password FROM mysql.user WHERE user='mars3d';
# 授权用户
GRANT ALL ON mars3d-studio-pro.* TO 'mars3d'@'%';
# 还原数据
use mars3d-studio-pro;
# sql文件地址,根据实际情况调整
source /opt/mars3d-studio/data/init_data.sql7.安装Redis
已安装,请忽略;复用已有环境需要调整相关配置(见修改Java后端配置章节);
cd /opt/mars3d-studio/deps/redis #进入安装包文件目录
tar xvf redis-5.0.14.tar.gz #解压文件
mv redis-5.0.14 /opt/redis #移动目录,最终服务运行在opt/redis/目录
cd /opt/redis #进入安装完成的服务目录
# 依赖gcc
make MALLOC=libc PREFIX=/opt/redis install
chmod -R 777 /opt/redis
nohup `cd /opt/redis && ./bin/redis-server redis.conf > redis.log 2>&1` &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 /opt/mars3d-studio/deps/nginx #进入安装包文件目录
tar xvf nginx-1.22.1.tar.gz #解压文件
mv nginx-1.22.1 /opt/nginx #移动目录,最终服务运行在opt/nginx/目录
cd /opt/nginx #进入安装完成的服务目录
chmod 777 /opt/nginx
./configure --prefix=/opt/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install9.安装GeoServer
以守护进程方式,启动geoserver服务
nohup /opt/mars3d-studio/deps/geoserver/bin/startup.sh &10.修改Java后端配置
打开/opt/mars3d-studio/api/config/application-prod.yml文件,根据实际部署目录或复用本地基础软件时按需修改配置。
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: F1-603
redis:
host: 127.0.0.1
port: 6379
database: 0
password: 123456
app:
demoEnabled: false
uploadDir: /opt/mars3d-studio/data/studio-data # 上传目录,根据实际情况进行调整
# 集成geoserver
geoserver:
enable: true
url: http://localhost:8080/geoserver
username: admin
password: geoserver其中关键配置信息:
app.uploadDir【重要】上传临时目录,需要核对实际安装路径修改spring.datasource.dynamic.datasourceMySQL数据库链接spring.redisRedis链接spring.file-storage文件上传配置(支持本地/minio 等)
11.修改系统名称等信息
记事本或编辑工具打开/opt/mars3d-studio/api/config/application.yml文件,根据实际需要修改信息。
application.yml
app:
name: Mars3D Studio三维场景发布平台 #系统名称
author: 合肥火星科技有限公司 #登录页面下侧版权信息
website: http://www.marsgis.cn #登录页面下侧版权单击跳转链接
devEnabled: true #是否开启展示服务信息、下载配置等(针对技术人员使用的,是否二次开发)
dataOpen: true #默认是否公开12.修改 Nginx 服务配置
拷贝允许跨域配置文件(如果未拷贝,nginx.conf配置文件中include nginx_cors;将报错无效)
mv /opt/mars3d-studio/deps/nginx/nginx_cors /opt/nginx/conf编辑工具打开 /opt/nginx/conf/nginx.conf文件, 其中关键配置如下:
conf/nginx.conf
# 前端页面
location / {
root /opt/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;
}
# 后端geoserver
location ^~/geoserver/ {
proxy_pass http://localhost:8080;
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;
}启动平台
1.启动后端服务
cd /opt/mars3d-studio
# 使用管理员权限
./bin/start.sh2.启动Nginx服务
cd /opt/nginx
./sbin/nginx3.内置用户说明
| 登录名 | 登录密码 | 用途 |
|---|---|---|
| root | 65883001 | 超级管理员,进行系统管理操作 |
| data | 65883001 | 数据采集演示用户,默认演示数据是该用户录入的 |
| guest | guest | 内置游客用户,勿动勿删 |
4.访问系统
启动服务后,默认自动打开浏览器访问http://127.0.0.1,默认页面是公开资源的访问页面,目前系统已录入了一些演示数据。 
单击【开始创作】进入后台登录页面,输入超级管理员 账号: root,密码:65883001进行登录(建议首次进入后修改密码,数据录入等操作建议用data帐号) 
平台授权
首次启动时免费试用一个月,会提示License试用验证通过;如需延长试用,或购买了授权,可以参考授权教程进行处理
停止平台
停止后端服务
cd /opt/mars3d-studio
./bin/stop.sh停止Nginx服务
cd /opt/nginx
./sbin/nginx -s stop更新平台
首先停止服务,停止后下载最新的离线包,没有特殊说明时,可以只用覆盖下面 2 个目录
更新后端服务目录:/mars3d-studio/api/
将“mars3d-studio-日期.zip” 解压后,
/api/目录中删除config子目录后,将api目录拷贝覆盖到/mars3d-studio/api/目录中;更新前端页面目录:/mars3d-sudio/html/
将“html-日期.zip”压缩包全部解压覆盖到
/mars3d-sudio/html/目录。
更新完成后启动服务。
部署中常见问题
- Linux执行脚本,需要先授权,chmod +x start.sh
- start.sh,需要和studio-admin.jar放在/bin目录运行
- 指定端口,需要修改脚本,并添加server.port参数,示例:--server.port=9090
Linux系统中问题
问题:应用启动时无法获取对应的硬件参数,导致License认证授权失败
回答:是系统权限问题,使用oshi获取相关硬件参数,需要使用root权限进行启动
其他常见问题
查看部署中常见问题
如有无法处理问题 或 需要购买Studio授权,可以微信扫一扫下面二维码进行沟通

