宝塔部署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环境下自己一点一点安装软件,听说用宝塔傻瓜式部署更快,这次浅浅尝试了一把。 确实简单! 1、 买服务器 咋买服务器略,记得服务器装系统就装 Cent OS 7系列即可,我装的7.6。 2、创建…...
【公告】停止更新
CSDN 博客的限制太多了。阅读体验也非常差。后续将不再 CSDN 上更新。 逐步迁移到掘金和个人博客。 欢迎关注 掘金:0xforee 个人博客:0xforee’s blog...

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

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

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

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

第十章:联邦学习视觉案例
代码 传送门...

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

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

爬虫逆向实战(十八)--某得科技登录
一、数据接口分析 主页地址:某得科技 1、抓包 通过抓包可以发现数据接口是AjaxLogin 2、判断是否有加密参数 请求参数是否加密? 查看“载荷”模块可以发现有一个password加密参数和一个__RequestVerificationToken 请求头是否加密? 无…...

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

Dart 入门Hello world
1、下载Dart sdk IntelliJ & Android Studio | Dart 2、安装Dart 插件 3、安装后重启IDEA,创建Dart项目 4、创建dart文件 5、编写函数: void main() {print("Hello world"); } 6、运行: 官网学习:Dart 语言开发文…...
HTML是什么?
HTML是什么? 超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。 您可以使用 HTML 来建立自己的 WEB 站点,HTML 运行在浏览器上,由浏览器…...

【UniApp开发小程序】商品详情展示+评论、评论展示、评论点赞+商品收藏【后端基于若依管理系统开发】
文章目录 界面效果界面实现工具js页面日期格式化 后端收藏ControllerServicemapper 评论ControllerServiceMapper 商品Controller 阅读Service 界面效果 【说明】 界面中商品的图片来源于闲鱼,若侵权请联系删除 【商品详情】 【评论】 界面实现 工具js 该工…...

rabbitMq安装后无法启动可视化页面http://localhost:15672处理
本次安装环境信息: 系统:win10 64位专业版 erlang:otp_win64_23.0 rabbitMQ:rabbitmq-server-3.8.5 安装rabbitMQ需要依赖erlang语言环境,所以需要我们下载erlang的环境安装程序。 一、下载安装程序 rabbitMQ安装…...

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

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 线性组合、张成的空间与基
飞书原文链接:Docs...

Kafka—工作流程、如何保证消息可靠性
什么是kafka? 分布式事件流平台。希望不仅仅是存储数据,还能够数据存储、数据分析、数据集成等功能。消息队列(把数据从一方发给另一方),消息生产好了但是消费方不一定准备好了(读写不一致)&am…...
用户参与策略:商城小程序的搭建与营销
在现今数字化时代,商城小程序已成为企业私域营销的利器。然而,要使商城小程序在竞争激烈的市场中脱颖而出,不仅需要出色的产品,还需要一个引人入胜的用户参与策略。本文将深入探讨如何在商城小程序中构建和落实有效的用户参与策略…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析
Linux 内存管理实战精讲:核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用,还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
Caliper 负载(Workload)详细解析
Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋
随着工业以太网的发展,其高效、便捷、协议开放、易于冗余等诸多优点,被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口,具有实时性、开放性,使用TCP/IP和IT标准,符合基于工业以太网的…...

【笔记】AI Agent 项目 SUNA 部署 之 Docker 构建记录
#工作记录 构建过程记录 Microsoft Windows [Version 10.0.27871.1000] (c) Microsoft Corporation. All rights reserved.(suna-py3.12) F:\PythonProjects\suna>python setup.py --admin███████╗██╗ ██╗███╗ ██╗ █████╗ ██╔════╝…...
python打卡day49@浙大疏锦行
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 一、通道注意力模块复习 & CBAM实现 import torch import torch.nn as nnclass CBAM(nn.Module):def __init__…...