开源问卷系统DWSurvey部署方式记录-原生包部署

Linux 环境原生部署调问

💡 部署说明

本文档适用于在Linux环境下进行原生部署,需要手动安装和配置各个组件。适合对系统有完全控制权且需要自定义配置的场景。

www.diaowen.net

下载安装包

📦 选择版本下载

请根据需求选择企业版或社区版

版本 说明 下载链接
企业版 (Latest) 适合企业级应用 📥 点击下载
社区版 (Latest) 免费开源版本 📥 点击下载

演示系统

阿里云 ubuntu_24_04_arm64_20G_alibase_20251031.vhd

内核版本:arm 6.8.0-87-generic

1. 环境准备

1.1 所需组件版本

  • JDK:1.8 (推荐 OpenJDK 8)
  • MySQL:8.0+
  • Redis:7.x
  • Elasticsearch:8.x
  • IK分词器:8.x

1.3 安装基础组件

在开始部署 DWSurvey 应用之前,需要先安装以下基础组件。详细的安装步骤请参考补充说明文档:

📚 组件安装文档

快速安装检查清单:

bash

复制代码
# 检查 JDK 是否安装
java -version

# 检查 MySQL 是否运行
systemctl status mysql

# 检查 Redis 是否运行
redis-cli ping

# 检查 Elasticsearch 是否运行
curl http://localhost:9200

确保所有组件都已正确安装并运行后,再继续下面的应用部署步骤。

2. 部署DWSurvey应用

2.1 准备安装文件

按需设置对应的目录结构

  1. 创建安装目录:

bash

复制代码
mkdir -p ~/dw/dwsurvey-install-jar
  1. 将安装包上传并解压,得到以下结构:

    /root/dw/dwsurvey-install-jar/
    ├── dwsurvey-ent-vue-8.11.3.20251120.jar
    ├── config/
    │ └── application-server.yml
    ├── dwfile/
    └── db/
    └── dwsurvey-init.sql

说明

  • jar包名称可能因版本不同而变化,请以实际下载的文件名为准
  • 本文档以 dwsurvey-ent-vue-8.11.3.20251120.jar 为例

2.2 初始化数据库

  1. 登录MySQL数据库:

bash

复制代码
mysql -u root -p
  1. 创建数据库:

sql

复制代码
CREATE DATABASE dwsurvey DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  1. 导入初始化脚本:

sql

复制代码
use dwsurvey;
source /root/dw/dwsurvey-install-jar/db/dwsurvey-init.sql;

2.3 配置应用服务器端口

编辑配置文件 ~/dw/dwsurvey-install-jar/config/application-server.yml

yaml

复制代码
server:
  port: 8080  # 应用访问端口,可自定义修改

端口说明

  • 默认端口为 8080
  • 可根据需要修改为其他端口,如 8888、9090 等
  • 修改后需要重启应用才能生效
  • 确保所选端口未被其他程序占用

2.4 配置Elasticsearch连接

说明

根据Elasticsearch安装指南,本文档使用无密码模式的Elasticsearch配置(已禁用安全认证)。

在同一配置文件中添加Elasticsearch配置:

yaml

复制代码
elasticsearch:
  username: elastic  # 保留,但无密码时不验证
  passwd: A0ThxyWi1gMNJzv7iU7M
  apikey: ==
  hosts: 127.0.0.1:9200  # 或者 localhost:9200
  cert-name: ""  # 空字符串
  scheme: http  # 无密码使用http
  index-prev: dw_  # 索引前缀
  security: noPwd  # 认证方式:无密码

验证ES连接:

bash

复制代码
# 直接访问,无需密码
curl http://localhost:9200

# 应该返回ES版本信息(8.7.1)

安全提示

  • 本配置使用无密码模式,仅适用于开发测试环境
  • 生产环境建议启用安全认证
  • 详细配置请参考Elasticsearch安装指南

2.5 配置MySQL连接

2.5.1 测试MySQL连接方式

首先测试MySQL的登录方式:

bash

复制代码
# 测试无密码登录
mysql -u root

# 如果上面不行,试试sudo
sudo mysql -u root
2.5.2 配置无密码连接(测试环境)

如果MySQL可以无密码登录,需要配置MySQL允许无密码认证:

bash

复制代码
# 登录MySQL
sudo mysql -u root

# 设置root用户为无密码(空密码)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';

# 刷新权限
FLUSH PRIVILEGES;

# 退出
exit;

然后编辑配置文件 ~/dw/dwsurvey-install-jar/config/application-prod.yml

yaml

复制代码
datasource:
  url: jdbc:mysql://localhost:3306/dwsurvey?useUnicode=true&characterEncoding=utf8
  username: root
  password: ""  # 必须是两个双引号,表示空字符串

重要提示

  • password: "" 必须写成两个双引号 ,不能只写 password: 留空
  • 留空会被解析为 null,导致连接失败
2.5.3 配置有密码连接(生产环境推荐)

如果要设置密码:

bash

复制代码
# 登录MySQL
sudo mysql -u root

# 设置密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';

# 刷新权限
FLUSH PRIVILEGES;

# 退出
exit;

配置文件中填写密码:

yaml

复制代码
datasource:
  url: jdbc:mysql://localhost:3306/dwsurvey?useUnicode=true&characterEncoding=utf8
  username: root
  password: your_password  # 填写实际密码

环境建议

  • 测试环境:可以使用无密码配置,方便调试
  • 生产环境 :强烈建议设置强密码,详见MySQL安装指南

2.6 配置Redis连接

编辑 ~/dw/dwsurvey-install-jar/config/application-server.yml,在现有配置中修改 Redis 连接配置:

yaml

复制代码
redis:
  database: 0
  host: localhost #主机地址
  port: 6379 #端口
  password: dwsurveyOw123wa_Qw #密码
  jedis:
    pool:
      min-idle: 10 #最小空闲连接数
      max-idle: 50 #最大空闲连接数
      max-active: 200 #最大活动连接数
      max-wait: 3000 #最大等待时间

2.7 启动应用

2.7.1 前台启动(便于调试)

bash

复制代码
java -Dfile.encoding=utf-8 -jar dwsurvey-ent-vue-8.11.3.20251120.jar --spring.config.additional-location=file:config/ --spring.profiles.active=server
2.7.2 后台启动(生产环境)

bash

复制代码
nohup java -Dfile.encoding=utf-8 -jar dwsurvey-ent-vue-8.11.3.20251120.jar --spring.config.additional-location=file:config/ --spring.profiles.active=server > temp.log 2>&1 &

参数说明:

  • dwsurvey-ent-vue-8.11.3.20251120.jar: 实际的jar包名称(请替换为你的版本)
  • spring.config.additional-location=file:config/: 外部配置文件目录(相对路径)
  • spring.profiles.active=server: 激活生产环境配置

2.8 创建系统服务(推荐)

创建systemd服务文件以便管理应用:

bash

复制代码
sudo vim /etc/systemd/system/dwsurvey.service

添加以下内容:

ini

复制代码
[Unit]
Description=DWSurvey Application
After=network.target mysql.service elasticsearch.service redis.service

[Service]
Type=simple
User=root
WorkingDirectory=/root/dw/dwsurvey-install-jar
ExecStart=/usr/bin/java -Dfile.encoding=utf-8 -jar dwsurvey-ent-vue-8.11.3.20251120.jar --spring.config.additional-location=file:config/ --spring.profiles.active=server
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

注意

  • 请将 dwsurvey-ent-vue-8.11.3.20251120.jar 替换为你实际的jar包名称
  • WorkingDirectory 需要与jar包所在目录一致
  • 配置路径使用相对路径 file:config/,会自动从工作目录查找

启动服务:

bash

复制代码
# 重新加载systemd配置
sudo systemctl daemon-reload

# 启动服务
sudo systemctl start dwsurvey

# 设置开机自启
sudo systemctl enable dwsurvey

# 查看服务状态
sudo systemctl status dwsurvey

# 查看实时日志
sudo journalctl -u dwsurvey -f

2.9 访问测试

应用启动成功后,在浏览器中访问:

复制代码
http://服务器IP:端口号

例如:

  • 如果使用默认端口 8080:http://服务器IP:8080
  • 如果配置为 9090:http://服务器IP:9090

提示

端口号为步骤 2.3 中 server.port 配置的值

相关推荐
冬奇Lab5 小时前
一天一个开源项目(第17篇):ViMax - 多智能体视频生成框架,导演、编剧、制片人全包
开源·音视频开发
一个处女座的程序猿7 小时前
AI之Agent之VibeCoding:《Vibe Coding Kills Open Source》翻译与解读
人工智能·开源·vibecoding·氛围编程
一只大侠的侠8 小时前
React Native开源鸿蒙跨平台训练营 Day16自定义 useForm 高性能验证
flutter·开源·harmonyos
IvorySQL9 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
一只大侠的侠9 小时前
Flutter开源鸿蒙跨平台训练营 Day11从零开发商品详情页面
flutter·开源·harmonyos
一只大侠的侠9 小时前
React Native开源鸿蒙跨平台训练营 Day18自定义useForm表单管理实战实现
flutter·开源·harmonyos
一只大侠的侠9 小时前
React Native开源鸿蒙跨平台训练营 Day20自定义 useValidator 实现高性能表单验证
flutter·开源·harmonyos
晚霞的不甘10 小时前
Flutter for OpenHarmony 可视化教学:A* 寻路算法的交互式演示
人工智能·算法·flutter·架构·开源·音视频
晚霞的不甘11 小时前
Flutter for OpenHarmony 实现计算几何:Graham Scan 凸包算法的可视化演示
人工智能·算法·flutter·架构·开源·音视频
猫头虎11 小时前
OpenClaw-VSCode:在 VS Code 里玩转 OpenClaw,远程管理+SSH 双剑合璧
ide·vscode·开源·ssh·github·aigc·ai编程