# 快速入门

# 快速部署

提供多种部署方案,保证没有技术能力的客户也可以顺利安装部署,分别是:

  • 通过已经打好的JAR包的快速安装,适合大部分客户。

  • 通过源码的编译安装,适合有技术能力的客户。

  • 通过docker的镜像安装,适合会操作docker的客户。

# 快速安装

提示

下面的安装方案,假定您之前已经安装过dwsurvey应用,此时您电脑应该已经具有java环境,同时也配置有dwsurvey数据库。

如果没有安装,则按下列说明操作。

最新的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 安装

Windows Mysql安装 (opens new window)

Windows Mysql安装 (opens new window)