# 快速入门
# 快速部署
提供多种部署方案,保证没有技术能力的客户也可以顺利安装部署,分别是:
通过已经打好的JAR包的快速安装,适合大部分客户。
通过源码的编译安装,适合有技术能力的客户。
通过docker的镜像安装,适合会操作docker的客户。
# 快速安装
提示
下面的安装方案,假定您之前已经安装过dwsurvey应用,此时您电脑应该已经具有java环境,同时也配置有dwsurvey数据库。
如果没有安装,则按下列说明操作。
如果没有JAVA环境,请参考JAVA JDK安装。
如果没有dwsurvey数据库,请先安装mysql,并创建
dwsurvey
数据库,再使用dwsurvey初始化脚本 (opens new window) dwsurvey.sql 进行数据库初始化。
最新的JAR包,仅需两步一条命令实现快速部署,非常方便。
# 1、下载JAR包
最新的JAR包放在QQ群3(811287103
),加群备注安装包
。
# 2、执行安装命令
拿到安装包后,通过CMD在安装包同级目录执行下面的命令,即可启动安装。
java -Dfile.encoding=utf-8 -jar dwsurvey-oss-vue-v.*.*.jar --server.port=8080 --spring.datasource.username=root --spring.datasource.password=123456
安装完成后在浏览器访问 http://localhost:8080
,即可访问。
初始账号与密码
service@diaowen.net
123456
参数说明
//可选,文件编码,windows上如果有乱码则使用,linux一般不会出现
-Dfile.encoding=utf-8
//必填,安装包名称, 后面的v.*.*.jar依据您下载的最新安装包来定。
dwsurvey-oss-vue-v.*.*.jar
//可选,指定启动服务占用的端口,默认值8080
--server.port=8080
//可选,数据库账号,默认值为root
--spring.datasource.username=root
//可选,数据库账密码,默认值123456,.
--spring.datasource.password=123456
更详细参数说明请查看配置说明
# 部署准备(源码)
提示
前提是电脑安装了git,maven,nodejs,没有的话先安装。
注意:新版本的nodejs内置npm,不需要独立安装了。
如果您是从事开发,那源码安装也是非常简单,只需要在拥有相应的编译环境下进行编译即可。
# 部署准备
版本:部署DWSurvey社区版, 环境:Linux/Windows、Java 1.8、Mysql 5.5+。
前端:https://gitee.com/wkeyuan/dwsurvey-vue 仓库
后端:https://gitee.com/wkeyuan/DWSurvey 仓库。
# 创建数据库
创建数据库命令
CREATE DATABASE dwsurvey DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 初始化数据库
下载数据库脚本地址
dwsurvey初始化脚本 (opens new window) dwsurvey.sql
# 本地开发环境下部署
# 1、准备环境
本地开发IDE建议使用 IntelliJ IDEA
开发前配置准备开发所需要的环境,主要包括JAVA、MAVEN、NODE.JS(NPM)、GIT
这些对于开发者来说应该都已经具备了,这里就不再详细说明。
# 2、代码仓库
前端仓库
https://gitee.com/wkeyuan/dwsurvey-vue (opens new window)
后端仓库
https://gitee.com/wkeyuan/DWSurvey (opens new window)
# 3、前端编译
//1、下载前端源码
git clone https://github.com/wkeyuan/DWSurvey_Vue
//2、进入 dwsurvey_vue 前端源码目录
cd DWSurvey_Vue
//3、安装依赖,在DWSurvey_Vue目录执行安装依赖
npm install
//4、发布
npm run dev
执行完以下命令后,在DWSurvey_vue目录即可以看到dist目录,为编译后打包的前端文件。
针对本地开发环境,只需要修改config/index.js target为后端服务器地址,其意思表示访问前端8081/api,会被代理到后端服务器上 。
修改配置文件 config/index.js
//文件地址:config/index.js
proxyTable: {
'/api': {
target: 'http://localhost:8080/',###
changeOrigin: true,//如果需要跨域
pathRewrite: {
'^/api': '/api'
}
}
}
修改 target 为你后端服务地址,注:本地开发只需要修改这个参数
更详细参数说明请查看配置说明
# 4、后端编译
//1、下载后端源码(建议退回到前端的同级目录,保持前后端代码都在同一级目录)
git clone https://github.com/wkeyuan/DWSurvey
//2、进入 dwsurvey 后端源码目录
cd DWSurvey
//3、复制前端编译后的文件到后端resource/static目录。
cp -rp ./DWSurvey_Vue/dist/* src/main/resources/static/
//4、配置修改,默认使用的是dev配置,如果要修改为其它文件可以修改application.yml文件
vi src/main/resources/application-dev.yml
//5、打包编译,配置
mvn clean package
执行完成之后在DWSurvey目录会产生一个target目录,在target目录会产生一个jar,即为我们编译后的项目文件。
修改配置src/main/resources/application-dev.yml
,一般情况下需要修改的配置包括。
//文件地址:src/main/resources/application-dev.yml
//web地址,如果绑定了域名则为域名地址
dwsurvey.web.site-url: http://localhost:8080
//资源地址,通常为web地址
dwsurvey.web.resource-url: http://localhost:8080
//可选,指定启动服务占用的端口,默认值8080
server.port: 8080
//可选,数据库账号,默认值为root
spring.datasource.username: root
//可选,数据库账密码,默认值123456,.
spring.datasource.password: 123456
更详细参数说明请查看配置说明
# 5、运行项目
idea 可以直接点右上角启动图标
# 部署方案
DWSurvey社区版、企业版都实现了前后端分离,部署时可以根据实现的情况选择不同的部署方案,分别是前后端分别部署,前后端打包成一体部署。
# 一、前后端分开部署方案
DWSurvey社区版目前是基于session认证(企业版同时支持session与token认证),通过session认证对于不同的域有会话跨域问题存在。
# 1、前端部署
切换前端仓库到master分支,打开 config/prod.env.js 配置
修改 config/prod.env.js 配置
参数名 | 参数说明 | 备注 |
---|---|---|
DW_API_URL | 后端API地址,会拼接到每个axios请求上面。 | 本方案配置值为前端地址,如前端端口8081,则http://localhost:8081 本方案因为要解决session造成的跨域问题,所以会在下一步配置前端为后端的代理,这样所有的请求都是通过前端处理,这样就可以保持会话不跨域。 |
DW_WEB_URL | 系统WEB访问地址,前端里面地址拼接会用到,配置为前端实际访问地址即可。 | |
DW_RESOURCE_URL | 系统资源访问地址,如上传的图片文件等处会用到,配置为后端实际访问地址。 |
# 2、编译打包
npm run build
# 3、将打包后dist目录文件上传到nginx服务,并配置nginx
这里有一点需要特别提醒,即配置nginx后端代理。
location /api {
# rewrite ^/api/(.*) /$1 break;
proxy_pass http://localhost:8080;
}
这个表示代理所有前端的/api请求,实际就是后端的请求代理到后端8080端口上,这样就解决了session跨域问题。
# 4、后端部署
切换到master分支,并打配置文件文件。
生产配置文件 src/main/resources/application-prod.yml
修改配置文件
server:
port: 8080 #端口
datasource:
url: jdbc:mysql://localhost:3306/dwsurvey_21test?useUnicode=true&characterEncoding=utf8
username: root
password: 123456,.
如上,修改端口为自己需要,然后修改数据地址、账号、密码。
dwsurvey:
site: 'local'
web:
file-path: diaowen/file/
static-type: static
site-url: http://localhost:8080
resource-url: http://localhost:8080
如上,修改site-url 为前端地址,resource-url 为后端地址
参数名 | 参数说明 | 备注 |
---|---|---|
site-url | 前端地址 | 本方案配置值为前端地址,如前端端口8081,则http://localhost:8081 |
resource-url | 系统资源访问地址 | 系统资源访问地址,如上传的图片文件等处会用到,配置为后端实际访问地址。 |
# 5、打包部署
mvn clean package
运行上面命令,在target目录生成的jar上传到服务器
# 6、启动后端
以下两种不同的启动方式
命令行进程,关闭命令行可能服务就关了,方便查看状态。
java -Dfile.encoding=utf-8 -jar dwsurvey-ent-v.5.0.1.jar --spring.profiles.active=prod
命令行进程,关闭命令行可能服务就关了,方便查看状态。
nohup java -Dfile.encoding=utf-8 -jar dwsurvey-ent-v.5.0.1.jar --spring.profiles.active=prod >temp.text & 后台进程,关闭命令行不会关闭。
注意:启动前可以使用
ps -ef|grep jar
查看当前进程是否在占用,如果占用可以使用kill -9 xxx 关掉。
# 7、访问前端
访问前端地址,会自动跳到登录页,然后输入
service@diaowen.net
123456
成功登录后会看到我的问卷页,表示部署成功。
# 二、前后端整体打包部署方案
这种方案就不用考虑跨域问题,因为前端也放在后端静态目录,作为后端应用一部分部署,就不需要单独配置nginx,上面两种分支都可以使用。
# 1、前端部署
如前修改前端配置文件, 修改config/prod.env.js
注意:以下三个参数值相同
参数名 | 参数说明 | 备注 |
---|---|---|
DW_API_URL | 后端API地址(同系统WEB访问地址),会拼接到每个axios请求上面。 | 本方案配置值为后端地址,因为前后端接下来会部署在一起地址相同 |
DW_WEB_URL | 系统WEB访问地址,前端里面地址拼接会用到,配置为前端实际访问地址即可。 | 本方案配置值为后端地址,因为前后端接下来会部署在一起地址相同 |
DW_RESOURCE_URL | 系统资源访问地址,如上传的图片文件等处会用到,配置为后端实际访问地址。 | 本方案配置值为后端地址,因为前后端接下来会部署在一起地址相同 |
# 2、编译
npm run build
# 3、前端编译文件复制到后端
把前端编译生成的dist目录内的内容复制到后端,即spring boot静态目录 src/main/resources/static 目录。
# 4、后端部署
如下,修改后端配置
src/main/resources/application-prod.yml
修改配置文件
server:
port: 8080 #端口
datasource:
url: jdbc:mysql://localhost:3306/dwsurvey_21test?useUnicode=true&characterEncoding=utf8
username: root
password: 123456,.
如上,修改端口为自己需要,然后修改数据地址、账号、密码。
dwsurvey:
site: 'local'
web:
file-path: diaowen/file/
static-type: static
site-url: http://localhost:8080
resource-url: http://localhost:8080
如上,修改site-url 为前端地址,resource-url 为后端地址,都改成后端实现访问地址,然后就是修改数据库连接信息。
参数名 | 参数说明 | 备注 |
---|---|---|
site-url | 后端地址 | 本方案前后端地址一致 |
resource-url | 后端地址 | 本方案前后端地址一致 |
# 5、打包
mvn clean package
运行上面命令,在target目录生成的jar上传到服务器
# 6、部署运行
#命令行进程,关闭命令行可能服务就关了,方便查看状态。
java -Dfile.encoding=utf-8 -jar dwsurvey-ent-v.5.0.1.jar --spring.profiles.active=prod
#后台进程,关闭命令行不会关闭。
nohup java -Dfile.encoding=utf-8 -jar dwsurvey-ent-v.5.0.1.jar --spring.profiles.active=prod >temp.text &
注意:启动前可以使用
ps -ef|grep jar
查看当前进程是否在占用,如果占用可以使用kill -9 xxx 关掉。
# docker安装
正在准备中,敬请期待...
# 配置说明
# 前端配置
前端项目是基于Vue框架开发,这里主要只介绍与本项目相关的配置,其它配置信息可以参考http://vuejs-templates.github.io/webpack (opens new window)
前配置配置文件 config/dev.env.js
注:本地开发环境后端API地址不需要在这个文件配置,在config/index.js里面配置就可以
//文件地址:config/prod.env.js
module.exports = {
NODE_ENV: '"production"',
DW_API_URL: '"http://localhost:8081"',//后端API地址,如果是与Spring集成部署,则同DW_WEB_URL
DW_WEB_URL: '"http://localhost:8081"',//WEB访问地址,项目WEB访问地址
}
# 后端配置
后端项目是基于SpringBoot2.4开发,本项目使用的配置如下。
dwsurvey:
# 用户模式切换,暂且保持默认 local
site: 'local'
web:
# 后端文件存储目录,默认即在安装包同级目录下
file-path: dwfile/dwsurvey/
# 使用哪种部署模式,后期可能会去掉,可以先保持默认
static-type: static
# 站点访问地址,如果配置有域名则为域名地址
site-url: http://localhost:8081
# 资源访问地址,便于存储模式的切换,目前可以保持与site-url一样
resource-url: http://localhost:8080
# 站点信息配置,会出现在底部footer区
info:
# 站点名称
site-name: 调问网
# 站点名称,对应的URL地址
site-url: http://www.diaowen.net
# 站点备案号
site-icp: 京ICP备13050030号-3
# 站点联系人邮箱
site-mail: service@diaowen.net
# 站点联系人电话
site-phone: 18888888888
# 用于微信集成相关,目前社区版还没未启用。
weixin:
app-id: xxx
app-secret: xxx
server:
token: xxx
encodingAESKey:
# 产品版本号信息,V5-代表最新的前后端分离版本
version:
info: DWSurvey OSS V5.0 Boot
number: OSS V5.0
built: 2021/11/21
# 服务占用的端口号
server:
port: 8080
# Spring相关配置
spring:
# json处理
jackson:
# 时间编码格式
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
# spring web 配置
web:
resources:
# 静态资源目录配置,注意这里引用了上面的 dwsurvey.web.file-path 配置
static-locations: classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${dwsurvey.web.file-path}
# 数据库配置
datasource:
#type: com.alibaba.druid.pool.DruidDataSource
# 连接URL
url: jdbc:mysql://localhost:3306/dwsurvey?useUnicode=true&characterEncoding=utf8
# 连接账号
username: root
# 连接密码
password: 123456,.
# jpa配置
jpa:
# 连接的数据库
database: mysql
generate-ddl: true
show-sql: true
hibernate:
ddl-auto: update
# naming:
# implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl #指定jpa的自动表生成策略,驼峰自动映射为下划线格式
properties:
hibernate:
#是否自动打印hql对应的sql语句
show_sql: false
#是否格式化sql语句
format_sql: false
#事务交由spring管理
current_session_context_class: org.springframework.orm.hibernate5.SpringSessionContext
# enable_lazy_load_no_trans: true
cache:
use_second_level_cache: false
use_query_cache: false
# 日志配置
logging:
# 日志级别,具体大家可以根据实际情况来调整
level:
net:
diaowen: INFO
org:
hibernate: ERROR
apache: ERROR
# 其它配置
# JAVA 配置
JAVA配置主要是JAVA环境变量,具体可以参考
Windows JAVA环境配置 (opens new window)
Linux JAVA环境配置 (opens new window)
# MAVEN 配置
Windows Maven配置 (opens new window)
Linux Maven配置 (opens new window)
# NODE.JS 配置(NPM)
Windows Node.js配置 (opens new window)
Linux Node.js配置 (opens new window)
# MYSQL 安装
← 介绍