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.data
    return 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.Driver
    url: jdbc:mysql://localhost:3306/demo
    username: root
    password: 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(* ̄▽ ̄*)ブ

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux: Network: socket: sendto 如果返回0,是否一定代表发送成功?

最近遇到一个问题&#xff0c;虽然应用层使用的系统调用send已经返回成功&#xff0c;而且没有错误日志产生&#xff0c;也没有errno的设置。那是不是代表一定是没有问题&#xff1f;从抓包的结果看&#xff0c;虽然上层应用已经显示发出去&#xff0c;但是实际抓包的时候&…

WP外贸营销型网站模板

WordPress外贸独立站主题 简洁实用的WordPress外贸独立站主题&#xff0c;适合时尚服装行业搭建wordpress企业官网使用。 零件配件WordPress外贸建站模板 汽车行业零配件WordPress外贸建站模板&#xff0c;卖配件、零件的外贸公司可以使用的WordPress主题。 https://www.jia…

windows 系统上搭建 Phpstudy 集成环境 + DVWA 靶场!超详细教程!

作为安全测试或渗透测试学习者&#xff0c;需要搭建一些靶场来进行技术练习&#xff0c;靶场类型有很多&#xff0c;搭建方式也支持多样&#xff0c;本文给你详细介绍windows系统下如何通过phpstudy集成环境搭建DVWA靶场&#xff01; 一、前言 网站是由中间件、网站程序、数据库…

暗九之凶险,更甚于明九

俗话说“逢九必衰”&#xff0c;逢九年是人运程变化的一个过程&#xff0c;这是古人长期以来对于命运的一种总结。“九”是转弯之数&#xff0c;故 “逢九”之人当年的运程容易大起大落、易招变数&#xff0c;若是严重一些&#xff0c;则有可能会殒命在这一年&#xff0c;一定要…

【计算机网络通信】计算机之间的局域网通信和互联网通信方法(附Python和C#代码)

文章目录 前言一、局域网通信1.1 基本原理和方法1.1.1 获取本地ip1.1.2 实现局域网内的广播1.1.3 进行局域网通信 1.2 实现多客户端连接1.3 Python源码1.4 C#源码1.5 可能存在的问题 二、互联网通信2.1 实现原理2.1.1 内网穿透软件2.1.2 实现互联网通信 2.2 Python源码2.3 C#源…

中国电子学会2019年12月份青少年软件编程Scratch图形化等级考试试卷四级真题。

第 1 题 【 单选题 】 1.以下模块&#xff0c;可以“说”出“我喜欢Apple”的是&#xff1f; A&#xff1a; B&#xff1a; C&#xff1a; D&#xff1a; 2.某学校为教师外出提供车辆服务&#xff0c;当外出人数小于5人时&#xff0c;派轿车&#xff1b;当外出人数为5至7人的话…

初阶数据结构:二叉树

目录 1. 树的相关概念1.1 简述&#xff1a;树1.2 树的概念补充 2. 二叉树2.1 二叉树的概念2.2 二叉树的性质2.3 二叉树的存储结构与堆2.3.1 存储结构2.3.2 堆的概念2.3.3 堆的实现2.3.3.1 堆的向上调整法2.3.3.2 堆的向下调整算法2.3.3.3 堆的实现 1. 树的相关概念 1.1 简述&a…

链表基础知识详解(非常详细简单易懂)

概述&#xff1a; 链表作为 C 语言中一种基础的数据结构&#xff0c;在平时写程序的时候用的并不多&#xff0c;但在操作系统里面使用的非常多。不管是RTOS还是Linux等使用非常广泛&#xff0c;所以必须要搞懂链表&#xff0c;链表分为单向链表和双向链表&#xff0c;单向链表很…

[Linux]如何理解kernel、shell、bash

文章目录 概念总览kernelshell&bash 概念总览 内核(kernel) &#xff0c;外壳(shell) &#xff0c;bash kernel kernel是指操作系统中的核心部分&#xff0c;用户一般是不能直接使用kernel的。它主要负责管理硬件资源和提供系统服务&#xff0c;如内存管理、进程管理、文件…

国内chatgpt写作软件,chatgpt国内使用

随着人工智能技术的不断发展&#xff0c;国内涌现出了一些基于ChatGPT模型的写作软件&#xff0c;这些软件不仅能够实现智能化的文章写作&#xff0c;还支持批量生成各种类型的文章。本文将深入探讨国内ChatGPT写作软件&#xff0c;以及它们在批量文章创作方面的应用与优势。 C…

如何使用Docker搭建StackEdit编辑器并结合内网穿透实现远程办公

文章目录 前言1. ubuntu安装VNC2. 设置vnc开机启动3. windows 安装VNC viewer连接工具4. 内网穿透4.1 安装cpolar【支持使用一键脚本命令安装】4.2 创建隧道映射4.3 测试公网远程访问 5. 配置固定TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址5.3 测试…

K线实战分析系列之十七:三法形态——接连犹豫后再次坚定

K线实战分析系列之十七&#xff1a;三法形态——接连犹豫后再次坚定 一、三法形态二、总结三法形态 一、三法形态 前后两根长K线中间夹了三根短小的K线 二、总结三法形态 中间的几根小阴线数量限制没有那么严苛中间小K线的颜色不一定是依次下降的小阴线或小阳线&#xff0c;也…

NOC2023软件创意编程(学而思赛道)python小高组复赛真题

目录 下载原文档打印做题: 软件创意编程 一、参赛范围 1.参赛组别:小学低年级组(1-3 年级)、小学高年级组(4-6 年级)、初中组。 2.参赛人数:1 人。 3.指导教师:1 人(可空缺)。 4.每人限参加 1 个赛项。 组别确定:以地方教育行政主管部门(教委、教育厅、教育局) 认…

【C++】vector的使用和模拟实现(超级详解!!!!)

文章目录 前言1.vector的介绍及使用1.1 vector的介绍1.2 vector的使用1.2.1 vector的定义1.2.2 vector iterator 的使用1.2.3 vector 空间增长问题1.2.3 vector 增删查改1.2.4 vector 迭代器失效问题。&#xff08;重点!!!!!!&#xff09;1.2.5 vector 在OJ中有关的练习题 2.ve…

朱维群将出席用碳不排碳碳中和顶层科技路线设计开发

演讲嘉宾&#xff1a;朱维群 演讲题目&#xff1a;“用碳不排碳”碳中和顶层科技路线设计开发 简介 姓名&#xff1a;朱维群 性别&#xff1a;男 出生日期&#xff1a;1961-09-09 职称&#xff1a;教授 1998年毕业于大连理工大学精细化工国家重点实验室精细化工专业&…

AWTK 开源串口屏开发(11) - 天气预报

# AWTK 开源串口屏开发 - 天气预报 天气预报是一个很常用的功能&#xff0c;在很多设备上都有这个功能。实现天气预报的功能&#xff0c;不能说很难但是也绝不简单&#xff0c;首先需要从网上获取数据&#xff0c;再解析数据&#xff0c;最后更新到界面上。 在 AWTK 串口屏中…

探索那些能唤起情感共鸣的壁纸

1、方小童在线工具集 网址&#xff1a; 方小童 该网站是一款在线工具集合的网站&#xff0c;目前包含PDF文件在线转换、随机生成美女图片、精美壁纸、电子书搜索等功能&#xff0c;喜欢的可以赶紧去试试&#xff01;

基于Beego 1.12.3的简单website实现

参考 用Beego开发web应用 https://www.cnblogs.com/zhangweizhong/p/10919672.htmlBeego官网 Homepage - beego: simple & powerful Go app frameworkbuild-web-application-with-golang https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/pr…

概率基础——多元正态分布

概率基础——多元正态分布 介绍 多元正态分布是统计学中一种重要的多维概率分布&#xff0c;描述了多个随机变量的联合分布。在多元正态分布中&#xff0c;每个随机变量都服从正态分布&#xff0c;且不同随机变量之间可能存在相关性。本文将以二元标准正态分布为例&#xff0…

PVLAN组网实验

一&#xff0c;PVLAN类型 主VLAN 主VLAN可以由多个辅助私用VLAN组成&#xff0c;而这些辅VLAN与主VLAN属于同一子网。 辅助VLAN ① 团体VLAN&#xff1a;如果某个端口属于团体VLAN&#xff0c;那么它就不仅能够与相同团体VLAN中的其他端口进行通信&#xff0c;而且还能够与…