当前位置: 首页 > news >正文

宝塔部署Java+Vue前后端分离项目经验总结

前言

之前部署服务器都是在Linux环境下自己一点一点安装软件,听说用宝塔傻瓜式部署更快,这次浅浅尝试了一把。
确实简单!

1、 买服务器

咋买服务器略,记得服务器装系统就装 Cent OS 7系列即可,我装的7.6。
在这里插入图片描述

2、创建宝塔Linux面板

然后就是百度搜索宝塔:在这里插入图片描述
进去之后点击立即免费安装:
在这里插入图片描述
然后进入面板选择,我们用的是Linux服务器,所以选择Linux在线安装:
在这里插入图片描述
下面就是正常的输入密码IP什么的就可以了:
在这里插入图片描述
然后会出现一个模板选项,看看和你自己的项目匹不匹配,我的是匹配的,选择了它推荐的,版本可以自己根据自己的需要进行更改:
在这里插入图片描述
然后就是等着安装就完事儿了。
(下一步和上一步我忘记顺序了,不过你遇到的是哪种情况就对应看哪种情况的操作就好了)
安装完成之后会弹一个宝塔的应用面板,并附带有登录名称和密码,这个要自己记下来的嗷。
然后我们在浏览器打开这个面板,输入刚刚的名称和密码就能登录到该管理界面了。

3、部署Linux项目运行环境

然后除了上面已经安装的内容,因为项目是Java写的,我们还需要去安装一个Java项目一键部署:
在这里插入图片描述
安装完成之后我们点击Java项目一键部署的设置,点击spring boot它会让我们安装一个Tom Cat,我们安装一个,其实spring boot项目是不需要额外安装tomcat的,但是安装该tomcat我们可以得到一个JDK,就不需要自己去额外下载JDK了,所以安装一个,我安装的8。

4、配置MySQL

在这里插入图片描述
这里设置的密码千万记得要改自己项目后端里的数据库配置文件中的密码与其相同,还有数据库名称嗷,然后后端项目中配置文件里的数据库地址用localhost别用服务器IP地址,不然会报无法查询到数据库的错,具体是为什么我也不知道,就是经验是这样。
然后导入SQL文件:在这里插入图片描述
下面这里记得还要导入一下嗷:
在这里插入图片描述
点击工具就能看见自己的数据都导入了没:
在这里插入图片描述
下面的这个“添加数据库”旁边的“root密码”记得也要改!
在这里插入图片描述

4.1 项目中用到了别的数据库(或者组件)怎么办

比如我的项目中用到了Redis,那就对应的再安装一个Redis就行了呀,然后进行配置就可以,我的项目中因为配置文件中没有设置Redis的密码和IP什么的,所以项目默认就会采用本机的Redis,其他的需要配置就配置没有配置就用默认的配置就可以。

5、上传程序文件

在www下面创建个新文件夹,将所有文件都传上来即可:
在这里插入图片描述
这里注意后端程序打包,如果出现包非常小的情况那么大概率是有jar包没跟着一起导进去,在后端的pom文件里加上下面这段重新打包,就算是多模块项目也是一样的,父模块(即)公共模块的代码相当于是jar包依赖被导入了子模块中,所以父模块不需要一起被放到服务器上:

......<build><plugins>...<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><!--项目的启动类--><mainClass>cn.akioyuan.springdemo.SpringDemoApplication</mainClass><layout>ZIP</layout></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>
....

6、启动后端程序

然后在命令行终端(记得要在后端jar包所在文件目录下),使用如下命令,启动后端程序:

nohup java -jar xxxxxxxx.jar

有几个后端程序启动几个后端程序即可,另外这里不需要指定端口是因为我在项目的配置文件中已经配置好了。项目的运行日志都会被输入到nohup.out文件当中。

7、启动前端程序

我们查看nginx配置文件,进入Linux默认的安装Nginx位置:

cd /www/server/nginx/conf/nginx.conf

在这里插入图片描述
进来之后会发现,上图标亮的位置,就是指只要在这个文件目录下采用.conf文件后缀名的文件,就可以成为nginx的配置文件,那我们就进入这个文件中去配置我们的前端程序:

cd /www/server/panel/vhost/nginx/

在这个目录中创建我们的nginx配置文件:
在这里插入图片描述
然后将我们前端程序的地址配置文件全部写进去就可以:
在这里插入图片描述
直接贴个模板:

server {							##定义虚拟主机listen       80;	##设置监听端口,默认为80端口server_name  localhost;	##域名charset utf-8;location / {					##定义请求匹配规则alias   /www/bishe/distOfFront/;			##文件的存放目录try_files $uri $uri/  /index.html;index  index.html index.htm;	##设置默认的索引文件}location = /api {proxy_pass http://localhost:7777/;proxy_set_header x-forwarded-for $remote_addr;}
}server {							##定义虚拟主机listen       8080;	##设置监听端口,默认为80端口server_name  localhost;	##域名charset utf-8;location / {					##定义请求匹配规则alias   /www/bishe/distOfAdmin/;			##文件的存放目录try_files $uri $uri/  /index.html;index  index.html index.htm;	##设置默认的索引文件}location = /api {proxy_pass http://localhost:8989/;proxy_set_header x-forwarded-for $remote_addr;}
}

注意这里要将上面的server_name改成你自己的服务器的主机IP,然后esc+冒号wq保存退出以后,将nginx重新执行一下:

cd /www/server/nginx/sbin/
./nginx -s reload

一般情况下到这里就成功啦。

8、访问项目失败情况总结

8.1 项目端口没有开放

这个一定一定要去检查一下你的云服务器有没有开启你对应的端口规则,不光云服务器要检查,你的宝塔面板安全那一块也要检查端口有无开放!

8.2 项目防火墙没有关闭

宝塔面板安全那一块一定要关闭防火墙,不然也会出现连接不上的问题。

8.3 前端项目里的访问地址

前端项目里访问后端的接口地址必须全用服务器的IP地址嗷,不然访问就会失败。

8.4 如果上面的配置都想到了还有问题

那就关机重启一下服务器或者是宝塔,重启项目也试试。

总结

其实总的来说宝塔部署还是很方便的,但是因为自己的经验不足还是跳进了很多坑,我有印象的都记录在上面了。因为我是已经部署完了之后才写的这篇经验总结文,所以只能把自己能记起来的部分写在上面,照着上面做应该就能部署成功,如果遇到了什么新的问题那么再去百度一下应该就差不多了,其他的以后想起来了或者是又有新的坑了俺再回来补充~~

相关文章:

宝塔部署Java+Vue前后端分离项目经验总结

前言 之前部署服务器都是在Linux环境下自己一点一点安装软件&#xff0c;听说用宝塔傻瓜式部署更快&#xff0c;这次浅浅尝试了一把。 确实简单&#xff01; 1、 买服务器 咋买服务器略&#xff0c;记得服务器装系统就装 Cent OS 7系列即可&#xff0c;我装的7.6。 2、创建…...

【公告】停止更新

CSDN 博客的限制太多了。阅读体验也非常差。后续将不再 CSDN 上更新。 逐步迁移到掘金和个人博客。 欢迎关注 掘金&#xff1a;0xforee 个人博客&#xff1a;0xforee’s blog...

AutoHotKey+VSCode开发扩展推荐

原来一直用的大众推荐的SciTeAHK版&#xff0c;最近发现VSCode更舒服一些&#xff0c;有几个必装的扩展推荐一下&#xff1a; AutoHotkey Plus 请注意不是AutoHotkey Plus Plus。如果在扩展商店里搜索会有两个&#xff0c;一个是Plus&#xff0c;一个是Plus Plus。我选择Pllus&…...

了解 JSON 格式

一、JSON 基础 JSON&#xff08;JavaScript Object Notation&#xff0c;JavaScript 对象表示法&#xff09;是一种轻量级的数据交换格式&#xff0c;JSON 的设计目的是使得数据的存储和交换变得简单。 JSON 易于人的阅读和书写&#xff0c;同时也易于机器的解析和生成。尽管 J…...

[RDMA] 高性能异步的消息传递和RPC :Accelio

1. Introduce Accelio是一个高性能异步的可靠消息传递和RPC库&#xff0c;能优化硬件加速。 RDMA和TCP / IP传输被实现&#xff0c;并且其他的传输也能被实现&#xff0c;如共享存储器可以利用这个高效和方便的API的优点。Accelio 是 Mellanox 公司的RDMA中间件&#xff0c;用…...

typescript报错:‘name‘ was also declared here

问题再现 用 Typescript 时&#xff0c; 遇到一个声明常量 name 的报错。代码如下&#xff1a; let name:string"zhangsan"; let num:number1001;执行编译时报错&#xff1a; 原因 在默认状态下&#xff0c;typescript 将 DOM typings 作为全局的运行环境&#…...

第十章:联邦学习视觉案例

代码 传送门...

c语言——输出一个整数的所有因数

//输出一个整数的所有因数 #include<stdio.h> #include<stdlib.h> int main() {int number,i;printf("输入整数&#xff1a;");scanf("%d",&number);printf(" %d 的因数有&#xff1a; ",number);for(i1;i<number;i){if(numb…...

mqtt学习记录

目录 1 匿名登录2 ⽤户名密码登录&#xff0c;配置接收的主题mosquitto 配置文件修改添加⽤户信息添加topic和⽤户的关系登录演示 3 遗嘱机制 1 匿名登录 ⾸先打开三个终端&#xff0c; 启动代理服务&#xff1a;mosquitto -v -v 详细模式 打印调试信息 默认占⽤&#xff1a;…...

爬虫逆向实战(十八)--某得科技登录

一、数据接口分析 主页地址&#xff1a;某得科技 1、抓包 通过抓包可以发现数据接口是AjaxLogin 2、判断是否有加密参数 请求参数是否加密&#xff1f; 查看“载荷”模块可以发现有一个password加密参数和一个__RequestVerificationToken 请求头是否加密&#xff1f; 无…...

Java-数组

什么是数组 数组&#xff1a;可以看成是相同类型元素的一个集合。在内存中是一段连续的空间。 在java中&#xff0c; 数组中存放的元素其类型相同数组的空间是连在一起的每个空间有自己的编号&#xff0c;起始位置的编号为0&#xff0c;即数组的下标。 数组的创建及初始化 数…...

Dart 入门Hello world

1、下载Dart sdk IntelliJ & Android Studio | Dart 2、安装Dart 插件 3、安装后重启IDEA&#xff0c;创建Dart项目 4、创建dart文件 5、编写函数&#xff1a; void main() {print("Hello world"); } 6、运行&#xff1a; 官网学习&#xff1a;Dart 语言开发文…...

HTML是什么?

HTML是什么&#xff1f; 超文本标记语言&#xff08;英语&#xff1a;HyperText Markup Language&#xff0c;简称&#xff1a;HTML&#xff09;是一种用于创建网页的标准标记语言。 您可以使用 HTML 来建立自己的 WEB 站点&#xff0c;HTML 运行在浏览器上&#xff0c;由浏览器…...

【UniApp开发小程序】商品详情展示+评论、评论展示、评论点赞+商品收藏【后端基于若依管理系统开发】

文章目录 界面效果界面实现工具js页面日期格式化 后端收藏ControllerServicemapper 评论ControllerServiceMapper 商品Controller 阅读Service 界面效果 【说明】 界面中商品的图片来源于闲鱼&#xff0c;若侵权请联系删除 【商品详情】 【评论】 界面实现 工具js 该工…...

rabbitMq安装后无法启动可视化页面http://localhost:15672处理

本次安装环境信息&#xff1a; 系统&#xff1a;win10 64位专业版 erlang&#xff1a;otp_win64_23.0 rabbitMQ&#xff1a;rabbitmq-server-3.8.5 安装rabbitMQ需要依赖erlang语言环境&#xff0c;所以需要我们下载erlang的环境安装程序。 一、下载安装程序 rabbitMQ安装…...

材料行业可以转IC设计后端吗?

近来有许多材料行业的小伙伴通过后台来问我对于职业规划的看法&#xff0c;甚至有些小伙伴直接点明了某个行业适不适合自己&#xff0c;那么我这边仅以近年来比较热门的数字芯片设计来展开讲讲&#xff0c;材料适不适合转行做IC呢。 对于理工科的同学而言&#xff0c;选择哪个…...

vue3 基础知识

vue3创建一个项目 PS D:\code> npm init vuelatestVue.js - The Progressive JavaScript Framework√ Add TypeScript? ... No / Yes √ Add JSX Support? ... No / Yes √ Add Vue Router for Single Page Application development? ... No / Yes √ Add Pinia for sta…...

【线性代数-3Blue1Brown】- 2 线性组合、张成的空间与基

飞书原文链接&#xff1a;Docs...

Kafka—工作流程、如何保证消息可靠性

什么是kafka&#xff1f; 分布式事件流平台。希望不仅仅是存储数据&#xff0c;还能够数据存储、数据分析、数据集成等功能。消息队列&#xff08;把数据从一方发给另一方&#xff09;&#xff0c;消息生产好了但是消费方不一定准备好了&#xff08;读写不一致&#xff09;&am…...

用户参与策略:商城小程序的搭建与营销

在现今数字化时代&#xff0c;商城小程序已成为企业私域营销的利器。然而&#xff0c;要使商城小程序在竞争激烈的市场中脱颖而出&#xff0c;不仅需要出色的产品&#xff0c;还需要一个引人入胜的用户参与策略。本文将深入探讨如何在商城小程序中构建和落实有效的用户参与策略…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下&#xff1a; avformat_open_input 精简后的代码如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...