记录部署项目《庆自提》完整流程

news2024/12/28 18:28:08

项目选型:后端+网页+小程序

前言:在部署这个项目我采用的是宝塔去直接部署,没有使用docker去部署

部署后端部分可参考:记录部署项目到云服务器_项目部署到云服务器-CSDN博客

一、部署后端

(1)修改yml配置文件

6d5e56a716b24b65902fbd6f2c1aa2a9.png

704751a8462f4706a55aff0c5820108e.png

5cb57eeab93642bfbed627a5384aa3b0.png

quick:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    host: xxx #服务器ip地址
    port: 3306
    database: xxx #数据库名
    username: xxx #部署数据库的用户名
    password: xxx #部署数据库的密码

  redis:
    host: xxx #服务器ip地址
    port: 6379
    password: xxx #部署redis的密码
    database: 5

  wechat:
  #小程序:
      appid: xxx #微信小程序appid
      secret: xxx #微信小程序secret

修改成实际部署的项目信息。

 

(2)打包后端jar包

e6bc71a619f248d380bae732bf9ab52f.png

在左侧项目目录中找到打包后出现的target

38626a13688540118af15b3fd1b97615.png

右键打开对应jar包目录拿到可部署的jar包

ff5ac8fd425242c5939c9818334b4eb2.png

 

(3)购买腾讯云服务器

这里我使用的腾讯云服务器,买的轻量应用服务器。

fadb6955a0d04b2b9fd63de5336f1cfa.png

在该服务器上部署宝塔。具体过程可参考上面博客,其实在购买服务器后,在腾讯云官网控制台服务器的应用管理,在应用内软件信息下有宝塔的初始化登录指令,指令如下,点击登录,将指令复制过去执行即可得到宝塔登录网站和账号密码。

d50ff15f8c3f4a229a1cd2255589b00b.png

sudo /etc/init.d/bt default

还需要进行放行项目所需端口 ,点到防火墙

6ba600361f7047a4ba835bb9e04dda6e.png

 这里我除了系统自带已经开的端口还开启:

1901476bb8884447a78bc824bae9a3ef.png

 

 

(4)部署宝塔

1 - 初始化

要求输入宝塔初始化指令,获得账号密码登录宝塔,登录进来后就会出现下面这个安装流程,我选择的是推荐下载。

684bb7490d16461dbbd330d132d0f5d8.png

2 - 配置MySQL

 下载完成后,配置数据库

1bc3cea399914cba8b3f08e99c312103.png

回到idea,连接好数据库,然后将项目中的数据库的sql在idea全部执行,实现建表和插入数据,数据库配置完成。

581758e5152046c48eb84a2320cee5bd.png

 3 - 配置Redis

在软件商店下载redis

53d9989c528d420e91d9f955d476cc6c.png

点击设置

a8a38bc422a148099086373f3335ea51.png

设置好后需要进行重载才能生效。

 

4 - 安装Java环境

41c747fa6f74445ebbd22d5bf5f1eedc.png

点击添加JDK信息,添加JDK,我下载的是jdk17,和项目一致。

efab3b159c8243fbb6335d078e8fc637.png

(5)项目jar包部署

点击文件,将之前打包好的jar包拖入指定目录下,如下图:

668341fbc655471f8bdc39df43056571.png

fdb5b2c769ab4d6c84de3ea9b4b40a93.png

点击确定即部署成功。

 

(6)注意

在实际上上线部署小程序是需要校验合法域名的,这个域名需要进行申请,这里如何申请在后面有讲述,开启校验合法域名后,实际上小程序访问的是https协议,springboot项目默认协议只是http协议,所以需要对springboot进行配置信息修改,然后再执行上面部署过程。

这里域名需要ssl认证,配置springboot的yml需要去服务器的ssl下载ssl证书。

(如何认证ssl可以看后面申请域名那边,有详细解答)

bce6d19eb1a14a7c96e34de96f2862bb.png

 因为springboot本质用的也是tomcat,所以这里我们下载tomcat的JKS格式。

打开项目,将下载后的jks文件放在下面该目录。

5252babb2d4941178e0da6e322099db9.png

对yml进行配置

quick-ssl:
  http-port: 8086 #配置http协议端口

server:
  port: 8080 #https端口
  ssl:
    enabled: true
    #key-alias: alias-key # 别名(可以不进行配置)
    # 保存SSL证书的秘钥库的路径
    key-store: classpath:ssl/xxx.jks
    key-store-password: xxx #证书密码
    key-store-type: JKS

这里开启两种端口都能访问springboot项目,证书密码在下载证书后的txt文件里面。

添加配置文件 HttpsConfig

1d9bcf81f1e04c41b613a8d5093f6433.png

代码如下:

package com.quick.config;

import org.apache.catalina.connector.Connector;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * https配置,将http请求全部转发到https
 * @author Jacob
 */
@Configuration
public class HttpsConfig {

    @Value("${quick-ssl.http-port: 8080}")
    private Integer httpPort;

    @Bean
    public TomcatServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
        tomcat.addAdditionalTomcatConnectors(httpConnector());
        return tomcat;
    }

    @Bean
    public Connector httpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setPort(httpPort);
        return connector;
    }

}

配置成功后重新执行上面部署过程。

二、部署前端

1、网页端

参考:前端部署项目到服务器(宝塔面板·腾讯云专享版),vue项目为例-CSDN博客

2、小程序

(1)进入微信小程序公众号平台

链接:微信公众平台

(2)注册小程序

注册小程序后即可获得小程序的AppID(小程序ID)和AppSecret(小程序密钥),这两个在前后端项目中都需要的,需要保存好。

(3)小程序校验合法域名

090d948c80fd49a8a61030aaa1e7ead7.png

 e25ad10fb41b407793ac79e9bb96972f.png

(4)完善小程序信息加小程序备案

在设置中完善各种信息,需要微信认证,备案等等,可按照要求完成,也是需要和客服进行打电话检验等等。

(5)在微信开发者工具中提交上线版本

21bc911929b446c1afd6d014cc047e69.png

eaa9703b19fa4bc0afee155b9cbb8d70.png

提交上线版本后,就会在微信小程序公众号平台的版本管理界面出现开发版本。

(6)提交审核上线

在开发版本提交审核成审核版本的时候可能会出现一个问题,就是一闪而过,结果了解是火狐浏览器的问题,可以修改火狐浏览器配置,这里我选择去Edge浏览器去提交审核,审核通过就可以上线项目。

如何知道有没有成功提交审核,可以去参考审核版本信息栏有没有信息。

f8e6ff6142e0489b9094c754c47ce01e.png

 

三、申请域名

这里域名需要用在小程序上,因微信小程序需要校验合法域名,还需要协议为https的域名,所以还需要申请SSL证书。

(1)注册域名

可以注册一个喜欢的域名不过要用在项目上需要域名备案。

3545a802216b493284e3a928c502c4a6.png

(2)备案

有以下过程,填写完详细信息,在详细信息最后还需要打印互联网协议xxx,需要盖手印签字。在腾讯云审核的时候,会对你备案项目的信息打电话进行深度的挖掘,看看哪里不合适需要修改,在管局审核会发短信验证,在短信验证后需要等待,第一次备案等待时间特别久,半个月以上,审核通过后就备案完成,申请的域名就可以使用了。

50c02c03115e4616b831ad122c1138ca.png

(3)申请SSL证书

 我申请的是免费证书,只有90天,如下:

422f39e52ae04a32b9acceb480362add.png

申请完证书后就可以下载证书。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1887379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大模型技术:能否引领十年的行业变革与职业发展黄金期?......

身边做程序的朋友、前同事,包括亲人,很多都在今年失业了,每年都说难,而今年,无疑是进入21世纪后最难的一年。 套用一下大话西游里的台词:上班的时候,不知道工作的珍贵,待到失去后才…

【日常记录】【JS】动态执行JS脚本

文章目录 1、第一种方式:eval2、第二种方式:setTimeout3、第三种方式:创建script 标签插入body4、第四种方式:创建 Function5、对比6、 参考链接 1、第一种方式:eval 语法 eval(string)参数 string:一个…

Linux基础篇——学习Linux基本工具安装教程视频链接

本篇文章就是记录一下学习Linux需要用到的基本工具的视频教程链接,方便以后查看 VMware15.5安装 安装视频教程:VMware15.5安装教程 centos7.6安装(这个视频教程真的很nice) 视频教程:centos7.6 虚拟机克隆、快照、…

数字化转型过程中企业会遇到哪些挑战?该如何应对?

你是否与我一样,也曾有过类似的疑惑: 企业数字化转型过程中会遇到哪些挑战?其中苦难,我们又该如何应对?有什么可借鉴的方法? 有了这些疑问,你肯定想知道答案。 为了解决你的心头之患&#xf…

开放式耳机哪个品牌最好?2024高热度机型推荐,选购不迷茫

选购开放式耳机时,面对琳琅满目的品牌与型号是否感到不知道怎么选择?别担心,作为耳机爱好者与资深评测人,我精心整理了几款热门开放式耳机的全面对比。这次对比不仅涵盖如何挑选,有哪些不要菜类的额点,还推…

AD9026芯片开发实录6-example code

官方发布的软件包中,带了一份example code,用于向客户展示API的调用方法以及基于官方的验证版ADRV902X最简单的bring up的流程。 该 example 位于软件包的路径下:“\Adi.Adrv9025.Api\src\c_src\app\example\”。 代码组成: initd…

[开源软件] 支持链接汇总

“Common rules: 1- If the repo is on github, the support/bug link is also on the github with issues”" label; 2- Could ask questions by email list;" 3rd party software support link Note gcc https://gcc.gnu.org openssh https://bugzilla.mindrot.o…

CAN通信波形【示波器抓取】

在测试bms系统过程中,在上位机发现无法读取CAN通信,尝试使用示波器抓取CAN通信波形,,去确定CAN通信是否正常。 做一想要从车上测出can总线上的数据还不太容易。 于是我首先使用示波器(我使用的示波器型号是TDS 220&am…

Python爬虫与数据可视化:构建完整的数据采集与分析流程

Python爬虫技术概述 Python爬虫是一种自动化的数据采集工具,它可以模拟浏览器行为,访问网页并提取所需信息。Python爬虫的实现通常涉及以下几个步骤: 发送网页请求:使用requests库向目标网站发送HTTP请求。获取网页内容&#xf…

雷电模拟器9 开启指针位置但是,没有任何作用,解决方法

问题:雷电模拟器9 开启指针位置,但是没有作用。 参考文档: https://blog.csdn.net/qq_39587350/article/details/127234421解决方法: 1.找到雷电模拟器的安装位置 2.进入安装位置,找到vms 文件夹,并创建 …

想要打造超高性能的接口API?试试这12条小技巧。

1. 并行处理 简要说明 举个例子:在价格查询链路中,我们需要获取多种独立的价格配置项信息,如基础价、折扣价、商户活动价、平台活动价等等。 CompletableFuture 是银弹吗? 使用 CompletableFuture 的确能够帮助我们解决许多独…

从零开始实现大语言模型(二):文本数据处理

1. 前言 神经网络不能直接处理自然语言文本,文本数据处理的核心是做tokenization,将自然语言文本分割成一系列tokens。 本文介绍tokenization的基本原理,OpenAI的GPT系列大语言模型使用的tokenization方法——字节对编码(BPE, byte pair en…

VUE3 播放RTSP实时、回放(NVR录像机)视频流(使用WebRTC)

1、下载webrtc-streamer,下载的最新window版本 Releases mpromonet/webrtc-streamer GitHub 2、解压下载包 3、webrtc-streamer.exe启动服务 (注意:这里可以通过当前文件夹下用cmd命令webrtc-streamer.exe -o这样占用cpu会很少&#xff0c…

echarts用pictorialBar实现3D柱状图

先看下效果 实现思路 描绘一个普通的柱状图通过象形柱图&#xff08;pictorialBar&#xff09;在柱状图的顶部添加一个图形类型&#xff08;symbol&#xff09;菱形 代码实现 <template><div id"symbolBar"></div> </template> <scrip…

jenkins在使用pipeline时,为何没有方块形视图

项目场景&#xff1a; 安装完Jenkins时后&#xff0c;通过pipeline创建的项目任务。 问题描述 在立即构建后&#xff0c;没有显示每个阶段的视图。 原因分析&#xff1a; 原因是&#xff0c;刚安装的Jenkins&#xff0c;这个视图不是Jenkins自带的功能&#xff0c;而必须安装…

分班查询系统,老师们应该如何制作?

新学期的开始&#xff0c;作为教师&#xff0c;我们面临的一项关键任务就是组织分班。传统分班方法往往需要处理大量的数据&#xff0c;这个过程不仅耗时&#xff0c;而且容易出错。为了简化这一流程&#xff0c;提高效率&#xff0c;我们可以利用现代技术&#xff0c;创建一个…

不要再被骗了!电脑无法进入系统的原因可能是这个硬件坏了而已……

前言 前段时间小白在抖音上发了很多很多很多的视频&#xff0c;其中应该是有很多商家关注了小白。 然后就会出现很多很多很多的赚钱小门道…… 电脑开机没有显示&#xff1f;换显卡&#xff01; 电脑还是不开机&#xff1f;换CPU 电脑还是一样不开机…… 经过了一番大折腾…

三步学会使用WebSocekt

目录 一 什么是websocket 二 如何使用websocket 1.导入websocket的maven坐标 2.创建websocket的服务类 3.创建websocket的配置类 4.按需求实现业务逻辑 5.前端实现websocket 一 什么是websocket websocket和HTTP一样是基于TCP的一个通信协议。不过他是支持客户端和服务端…

鸿蒙开发Ability Kit(程序访问控制):【使用粘贴控件】

使用粘贴控件 粘贴控件是一种特殊的系统安全控件&#xff0c;它允许应用在用户的授权下无提示地读取剪贴板数据。 在应用集成粘贴控件后&#xff0c;用户点击该控件&#xff0c;应用读取剪贴板数据时不会弹窗提示。可以用于任何应用需要读取剪贴板的场景&#xff0c;避免弹窗…

JDK动态代理-AOP编程

AOPTest.java&#xff0c;相当于main函数&#xff0c;经过代理工厂出来的Hello类对象就不一样了&#xff0c;这是Proxy.newProxyInstance返回的对象&#xff0c;会hello.addUser会替换为invoke函数&#xff0c;比如这里的hello.addUser("sun", "13434");会…