vue+springboot项目部署服务器

项目仓库:vue+springboot-demo: vue+springboot增删改查的demo (gitee.com)

①vue中修改配置

在public文件夹下新建config.json文件:

{"serverUrl": "http://localhost:9090"//这里localhost在打包后记得修改为服务器公网ip
}

然后修改main.js:

import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import {zhCn} from "element-plus/es/locale/index";
import axios from "axios"
const app = createApp(App)
axios.get('/config.json').then((res)=>{app.config.globalProperties.$config=res.data
})
export const globals=app.config.globalProperties
app.use(router)
app.use(ElementPlus, {locale: zhCn,
})
app.mount('#app')

最后修改request.js:

import axios from "axios"
import {globals} from "@/main"
const serverUrl=globals.$config?.serverUrl||'http:localhost:9090'
const request=axios.create({baseURL:serverUrl,timeout:30000
})
request.interceptors.request.use(config=>{config.headers['Content-Type']='application/json;charset=utf-8'return config
},error=>{console.log('request error'+error)return Promise.reject(error)
})
request.interceptors.response.use(response=> {let res=response.datareturn res
},error=>{console.log('response error'+error)return Promise.reject(error)})
export default request

上述修改主要是动态辨别项目是在主机还是在服务器上,从而动态修改运行地址 

②打包vue+springboot项目 

springboot:先双击clean,再双击package,会生成jar包

 

vue:会生成一个dist文件夹

npm run build

 

③配置服务器

首先需要在腾讯云或者阿里云购买一个服务器,新用户注册会有免费一个月的服务器使用,然后需要准备xshell(相当于服务器的cmd)和winscp(上传文件到服务器)工具,将两个工具连上服务器

查看服务器内网ip:

ifconfig

用360压缩打开jar包,修改application.yml:将localhost修改为服务器内网ip,username和password修改为服务器数据库的username和password

server:port: 9090
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/demousername: rootpassword: 123456
mybatis:configuration:map-underscore-to-camel-case: true

用xshell7在服务器上创建一个vue3文件夹,并用winscp将dist文件夹和jar包拖入vue3文件夹中:

 

在服务器上安装mysql:

①确定服务器的系统是否支持yum命令

输入以下命令,不报错即可:

yum -v

②下载对应的mysql 安装包 

wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

③安装mysql 

yum -y install mysql57-community-release-el7-10.noarch.rpm

④ 安装对应的服务

yum -y install mysql-community-server --nogpgcheck

⑤启动服务并查看Mysql 的初始密码 

systemctl start mysqld.service #首先启动mysql
grep "password" /var/log/mysqld.log #查看初始密码

⑥修改初始密码并刷新登录

-- 1. 登录MySQL
-- 回车后,输入上面的初始密码即可。
mysql -u root -p -- 2. 修改密码
alter user 'root'@'localhost' identified by '密码';-- 3. 刷新权限
flush privileges;-- 4.退出Mysql
exit
-- 1. 登录(使用你的新密码)
mysql -u root -p '新密码'-- 2. 显示所有的数据库
show databases;+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)-- 3. 使用对应的数据库改管理员信息
use mysql;-- 4. 查询所有管理员
select user,host from user;+---------------+----------------+
| user          | host           |
+---------------+----------------+
| root          | %              |
| root          | 1**.2**.1**.67 |
| mysql.session | localhost      |
| mysql.sys     | localhost      |
+---------------+----------------+
4 rows in set (0.00 sec)

⑦给远程权限

-- 1. 更新root的权限
update user set host='%' where user = 'root';-- 2. 设置完一定要刷新
flush privileges;-- 3. 再查询一遍,检查root的host变为%
select user,host from user;

 看见root的host为%就表示可以远程连接数据库了,在服务器打开3306端口就可以用navicat连接了

服务器上配置java环境:

 ①去官网下载jdk压缩包

②用winscp创建文件夹将压缩包拖入,这里将压缩包放入usr文件夹下的local文件夹下

 

③解压文件并修改文件名

tar -xvf jdk-8u401-linux-x64.tar.gz
mv jdk1.8.0_401 jdk1.8

在winscp可以看见解压后的文件:

④配置环境变量

vi /etc/profile

在该文件末尾添加下面代码:先按esc,再按:wq保存推出

JAVA_HOME=/root/usr/local/jdk1.8
CLASS_PATH=.:$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASS_PATH PATH

 环境变量生效:

source /etc/profile

验证一下:

java -version

显示如图,说明配置成功 

 

③后端项目部署

修改下pom.xml文件:添加下面代码,重新打包上传服务器

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><executions><execution><phase>package</phase><goals><goal>repackage</goal></goals></execution></executions><configuration><includeSystemScope>true</includeSystemScope><mainClass>这里填写你的 Application 的路径</mainClass></configuration></plugin></plugins></build>

用winscp在vue3文件夹新建一个start.sh:

nohup java -jar springboot-demo-0.0.1-SNAPSHOT.jar > server.log 2>&1 &

启动一下(或者直接用命令java -jar jar包名直接启动更加便捷):

cd vue3//进入文件夹
chmod 777 *//开放权限
./start.sh//启动后端

用ll指令看下有没有log文件,查看log文件(这是日志文件,会告诉你启动成功还是失败):

用winscp查看该文件:出现如图说明启动成功

 

服务器开放9090端口:直接用公网ip的9090端口访问一下,出现如图就说明后端项目部署成功了

④前端项目部署

 安装nginx:

yum install gcc-c++//安装c++
yum install -y pcre pcre-devel//安装pcre
yum install -y zlib zlib-devel//安装devel
yum install -y openssl openssl-devel//安装openssl-devel
cd /tmp/
wget http://nginx.org/download/nginx-1.24.0.tar.gz//安装nginx
tar -zxvf nginx-1.24.0.tar.gz
cd /usr/local
mkdir nginx
cd nginx
cp -R /tmp/nginx-1.24.0 ./
cd nginx-1.24.0
./configure --with-http_stub_status_module --with-http_ssl_module
make && make install
cd ..
cd sbin/
./nginx   //这里就启动nginx了

访问下公网ip:显示下图说明成功 

配置项目:

cd ..
cd conf
vi nginx.conf

将源文件对应代码段修改如下:

server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   /root/vue3/dist;//主要在这个地方修改为dist的路径,其他地方不动index  index.html index.htm;}

重启下nginx:

cd ..
cd sbin
./nginx -s reload

这里在访问的时候可能会出现403 错误,开一下dist所在文件目录的权限就好:

chmod -R 777 /root

访问一下服务器:这里需要ctrl+鼠标左键刷新(强制缓存刷新)才显示出来

整个前后端项目的部署到这里就差不多结束了 o(* ̄▽ ̄*)ブ

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

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

相关文章

[NSSCTF 2nd] web复现

1.php签到 <?phpfunction waf($filename){$black_list array("ph", "htaccess", "ini");$ext pathinfo($filename, PATHINFO_EXTENSION);foreach ($black_list as $value) {if (stristr($ext, $value)){return false;}}return true; }if(i…

nginx 配置浏览器不缓存文件 每次都会从服务器 请求新的文件

目录 解决问题方法说明 测试html环境js环境第一步然后修改内容 打开带有js缓存的页面强制刷新 配置nginx 每次打开页面都会重新请求index.js 文件重启nginx再次修改index.js 总结设置为全局 解决问题 适用于实时更新数据的&#xff0c;网页 可以让用户每次都是重新请求&#x…

C语言中的套娃——函数递归

目录 一、什么是递归 1.1.递归的思想 1.2.递归的限制条件 二、举例体会 2.1.求n的阶乘 2.2.顺序打印整数的每一位 2.3.斐波那契数列 三、递归与迭代 一、什么是递归 在学习C语言的过程中&#xff0c;我们经常会跟递归打交道&#xff0c;什么是递归呢&#xff1f;它其实…

LNMP 架构

环境准备&#xff1a;lnmp 需要安装 nginx mysql php 论坛/博客 软件 使用LNMP架构搭建 论坛 1. 关闭防火墙和和核心防护 systemctl disable --now firewalld setenforce 0 2. 编译安装 nginx 安装依赖包 yum -y install pcre-devel zlib-devel gcc gcc-c make 创建…

Compiling from source on UNIX(cmake doxygen ant maven ccache)

前言 源码链接 cmake-3.18.0 https://cmake.org/files/v3.18/cmake-3.18.0.tar.gzdoxygen-1.10.0 https://www.doxygen.nl/files/doxygen-1.10.0.src.tar.gzapache-ant-1.10.8-bin https://archive.apache.org/dist/ant/binaries/apache-ant-1.10.8-bin.tar.gzapache-maven-3…

#WEB前端(表单)

1.实验&#xff1a; form、input、label 登录界面&#xff0c;表单填写界面 2.IDE&#xff1a;VSCODE 3.记录&#xff1a; 4.代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name&q…

RedisTemplate中opaForValue.set的注意之处

问题 原本写了一个小项目&#xff0c;想通过redis缓存实现登录退出功能&#xff0c;结果出现了莫名奇妙的问题 代码如下&#xff1a; 报错&#xff1a; 经过多次调试之后我发现是opsForValue.set(key,value,expireTime)这行代码的问题&#xff0c;没有指定过期时间的单位&…

备战蓝桥杯---动态规划之悬线法

Em...属于一知道就会&#xff0c;不知道的话比较难想。 我们先看题&#xff1a; 我们不妨把1抽象成一个平面上的点&#xff0c;因此可以变成这一幅图&#xff1a; 我们假设每一个点被向上牵拉了一根线&#xff1a; 显然&#xff0c;每一条悬线都有可能成为边界限制&#xff0c…

Bulingbuling - 《历史的教训》 [ The Lessons of History ]

《历史的教训》 两位当代最伟大思想家的著名论文集&#xff0c;汇集了 5000 多年的历史 作者&#xff1a;威尔-杜兰特和阿里尔-杜兰特 The Lessons of History The celebrated collection of essays compiling over 5,000 years of history by two of the greatest thinkers …

Spring Boot项目中不使用@RequestMapping相关注解,如何动态发布自定义URL路径

一、前言 在Spring Boot项目开发过程中&#xff0c;对于接口API发布URL访问路径&#xff0c;一般都是在类上标识RestController或者Controller注解&#xff0c;然后在方法上标识RequestMapping相关注解&#xff0c;比如&#xff1a;PostMapping、GetMapping注解&#xff0c;通…

Siamrpn++论文中文翻译(详细!)

SiamRPN: Evolution of Siamese Visual Tracking with Very Deep Networks SiamRPN&#xff1a;具有非常深度网络的Siamese视觉跟踪的进化 【siamrpn论文地址】 https://arxiv.org/abs/1812.11703 摘要 基于Siamese网络的跟踪器将跟踪表示为目标模板和搜索区域之间的卷积特征…

【STA】多场景时序检查学习记录

单周期路径 建立时间时序检查 在时钟的有效沿到达触发器之前&#xff0c;数据应在一定时间内保持稳定&#xff0c;这段时间即触发器的建立 时间。满足建立时间要求将确保数据可靠地被捕获到触发器中。 建立时间检查是从发起触发器中时钟的第一个有效沿到捕获触发器中时钟后面…

基于springboot+vue的社区医院管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

chatgpt-3的文章生成器有哪些?可以批量生成文章的生成器

GPT-3&#xff08;Generative Pre-trained Transformer 3&#xff09;作为人工智能领域的一项重大突破&#xff0c;开启了新一代的文本生成技术。同时市面上也涌现出了一些GPT-3文章生成器&#xff0c;为用户提供了快速、高效地生成各种类型文章的工具。本文将介绍一些中国的GP…

python笔记_程序流程控制

A&#xff0c;顺序控制 程序从上到下逐行执行 python定义变量时&#xff0c;会合法地向前引用 age 1 age2 age 1 age2 age 1 age 1 ——>错误&#xff0c;age应在age2之前 B&#xff0c;分支控制 1&#xff0c;单分支if 语法 if 条件表达式 &#xff1a; 代码块 说明…

数字化转型导师坚鹏:证券公司数字化思维升级之道

证券公司数字化思维升级之道 ——数字化思维之六脉神剑 课程背景&#xff1a; 很多证券公司存在以下问题&#xff1a; 不知道数字化转型如何改变思维模式&#xff1f; 不清楚需要建立什么样的数字化思维&#xff1f; 不知道如何开展数字化思维提升工作&#xff1f; 课…

Redis之十:Spring Data Redis --- CrudRepository方式

SpringData Redis CrudRepository方式 Spring Data Redis 的 CrudRepository 是 Spring Data 框架中用于提供基础 CRUD&#xff08;创建、读取、更新和删除&#xff09;操作的一个接口。在与 Redis 集成时&#xff0c;尽管 Redis 是一个键值存储系统&#xff0c;并没有像关系型…

关于福彩历史数据采集器和体彩历史数据采集器的下载安装说明

前段时间因为研究基于人工神经网络&#xff08;深度学习&#xff0c;所谓的“AI”算法&#xff09;对3D开奖数据进行预测&#xff0c;开发了两款浏览器插件----“福彩历史数据采集器”和“体彩历史数据采集器”。之所以开发这两款插件&#xff0c;是因为不管是基于什么样的方式…

【QT+QGIS跨平台编译】之六十三:【QGIS_CORE跨平台编译】—【错误处理:未定义的类QgsMapLayer - QgsMapLayerModel】

文章目录 一、未定义的类QgsMapLayer二、解决办法 一、未定义的类QgsMapLayer 报错&#xff1a; 二、解决办法 QgsMapLayerModel.h文件中 ①第27行修改为&#xff1a; #include "QgsMapLayer.h" ②第23行增加&#xff1a; #include <QPointer>

Github 2024-03-03 开源项目日报Top9

根据Github Trendings的统计&#xff0c;今日(2024-03-03统计)共有9个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量非开发语言项目4Rust项目1C项目1Jupyter Notebook项目1Python项目1Shell项目1 任天堂Switch模拟器yuzu&#x…