部署vue+springboot网站到服务器【踩坑总结版】

目录

  • 前言
    • 1.购买服务器
    • 2.安装xftp和xshell
    • 3.打包前端代码(vue)
    • 4.打包后端代码
    • 5.nginx
    • 6.踩坑

前言

先说下个人基础情况,在此之前从来没有碰过服务器,对服务器可以说是一窍不通。linux命令了解的较为基础,上一次学习还是在分布式开发的时候(雾)。这次相当于体验了从购买服务器到完整部署的全过程啦,写个博客记录一下叭

1.购买服务器

我是在腾讯云上购买的,出于网站本身的业务需求,阿里云特惠促销的99和199对我来说都不适用,所以多番比较下选择了腾讯云(还好我是新用户hhh,实惠!)
在腾讯云的云+校园里选择了轻量应用服务器,选几核几g的这个视个人需求而定,腾讯云购买服务器页面的其他选项都没有很复杂,我觉得相对于新手是比较友好的。
这就是我当时的配置
如图,我选择了宝塔,因为之前有学过一些,感觉界面操作都对新手比较友好~,地域的话看服务器的应用区域,主体用户在哪就选靠近那里的地方,一般来说针对全国用户就选上海比较居中啦

买了之后就可以打开宝塔进行使用了,这里推荐这个博主的文章:链接~,看到wordpress前面照着做就行。

2.安装xftp和xshell

到这一步服务器上的工作就完成了,接下来开始打包上传我们的网站代码。
先安装xftp和xshell,这里有很多博主都发过教程,就不细讲了。
打开xshell后,输入java -version看看当前有没有java环境,没有就装个jdk1.8。(网盘包括jdk和后面要用的nginx),压缩包路径一般是放在/home里的,可以在home新建一个文件夹package

链接:https://pan.baidu.com/s/1MSL3mc1zsjbBBWk-PJkEzQ
提取码:492a

具体步骤:
在这里插入图片描述

3.打包前端代码(vue)

在idea中,直接打开terminal,在terminal里输入 npm run build就会自动打包,打包成功后,目录下会出现dist文件夹,之后我们只要把这个文件夹上传到服务器就可以了。(注意!上传到的服务器路径应该和你在第一步中的网站根目录一致!)
idea的终端界面
在这里插入图片描述

4.打包后端代码

因为我之前安装过maven,所以直接用maven打包是最方便的方法!用其他方式我或多或少都有问题,maven真的yyds!安装maven也有很多教程,这里就不细说了。
在这里插入图片描述
在idea右上角这个m,点击后双击package,就会在你的项目文件夹中的target目录下,生成一个.jar后缀的包,还会生成一个.original的文件(这个不用管它)。
接下来只需要上传刚刚生成的jar包就可以,上传的步骤和前端文件相似,但是注意,后端是个jar包,所以放置的目录和前端目录同级。也就是我们先要在服务器下新建一个目录,然后把我们的jar包放在这个目录里面。(jar包就传到箭头指向的这个文件夹里)
在这里插入图片描述
上传以后,我们用xshell输入命令进入houduan这个文件夹下(cd 这个命令,不会就搜linux基础命令),然后,修改权限便于后续操作。

chmod 777 demo-0.0.1-SNAPSHOT.jar

接着,运行。输入下面的命令

java -jar demo-0.0.1-SNAPSHOT.jar

出现了这样的样式就说明后端已经运行起来了
在这里插入图片描述
但是,这种运行方式需要你的xshell一直开着,否则一旦不小心关了xshell,那后台就会终止当前进程,所以最好的办法就是设置一直开着,一劳永逸。用下面的命令:

nohup java -jar 文件名 > 日志文件名 2>&1 &

5.nginx

这个我理解的是让前端能运行起来的工具,需要先安装哦。在这个博主的第六部分有讲具体过程,链接: link
之后我就没有特意启动过了,即使我更改了前端重新上传了dist文件夹,也都是直接就能打开。

6.踩坑

在这个过程中遇到过很多问题,
1.在我第一次启动jar包的时候报了一个找不到主类的错,解决方法如下
在这里插入图片描述
2.启动nginx出现nginx: [emerg] still could not bind()
解决方法

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

23届嵌入式被裁,有什么好的就业建议?

最近看到了一个提问,原话如下: 本人23届毕业生,就业方向嵌入式软件,坐标深圳,工作3月公司裁员,目前接近12月开始找工作。 boss上投递简历,校招岗,比较有规模的好公司基本已读不回&am…

华为防火墙二层墙(VAN/SVI/单臂路由)

二层墙只能做地址池形式的NAT。 交换机安全策略防火墙二层墙 路由器安全策略防火墙三层墙 交换机的光口是不能直接插线的,光模块,包括进和出 长距离:单模 短距离:多模 防火墙自身的ping流量需要单独配置

docker容器虚拟化-4

文章目录 虚拟化网络单节点容器间通信不同节点容器间通信 虚拟化网络 Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自网络栈信息。不管是虚拟机还是容器,运行的时…

高阶数据结构 <红黑树>

本文已收录至《数据结构(C/C语言)》专栏! 作者:ARMCSKGT 目录 前言正文红黑树简介红黑树整体结构红黑树节点的定义红黑树主体类设计红黑树的插入函数情况一:变色情况二:变色旋转单旋情况双旋情况 完整插入代码 关于红黑树红黑树检…

H5小程序视频方案解决方案,实现轻量化视频制作

对于许多企业而言,制作高质量的视频仍然是一个技术门槛高、成本高昂的挑战。针对这一痛点,美摄科技凭借其深厚的技术积累和创新能力,推出了面向企业的H5/小程序视频方案解决方案,为企业提供了一种轻量化、高效、便捷的视频制作方式…

对于提高Web安全,WAF能有什么作用

数字化时代,网络安全已经成为了一个不可忽视的重要议题。网络攻击事件频发,各种安全隐患层出不穷,如何有效地保护我们的网络空间,确保信息安全,已成为一项迫切的任务。而Web应用防火墙,正是守护网络安全的一…

如何处理Flutter应用程序中的内存泄漏

大家好,我是咕噜铁蛋!今天,我想和大家分享一下如何处理Flutter应用程序中的内存泄漏问题。在Flutter开发中,内存泄漏是一个常见且需要重点关注的问题,它可能会导致应用程序性能下降,甚至引发崩溃。因此&…

GBase8a-GDCA认证考试-复习参考题

个人能力有限,正确率97%(97分)。 请注意甄别,根据所学知识综合判断,欢迎指出错误答案。 欢迎学习天津南大通用数据技术股份有限公司|GBASE-致力于成为用户最信赖的数据库产品供应商 免费参加认证培训:为…

逆向爬虫技术的进阶应用与实战技巧

前言 在互联网的海洋中,数据是无价的财富。爬虫技术作为获取这些数据的重要手段,一直备受关注。然而,随着网站反爬虫机制的日益完善,简单的爬虫程序已经很难满足我们的需求。因此,掌握爬虫逆向技术,突破反爬…

Linux下线程池详解与实现:提升多任务处理效率的关键

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:マイノリティ脈絡—ずっと真夜中でいいのに。 0:24━━━━━━️💟──────── 4:02 🔄 ◀…

【Canvas与艺术】简约式胡萝卜配色汽车速度表

【效果图】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>胡萝卜色汽车速度仪表盘简化版</title><style type"…

模板方法模式(继承的优雅使用)

目录 前言 UML plantuml 类图 实战代码 AbstractRoutingDataSource DynamicDataSource DynamicDataSourceContextHolder 前言 在设计类时&#xff0c;一般优先考虑使用组合来替代继承&#xff0c;能够让程序更加的灵活&#xff0c;但这并不意味着要完全抛弃掉继承。 …