SpringBoot+Vue项目部署上线

部署前准备

注册京东云

京东云: https://www.jdcloud.com/

117.72.32.65

在这里插入图片描述

vue本地部署

新建文件.env.development

在这里插入图片描述

VUE_APP_BASEURL='http://localhost:9191'

新建文件 .env.production

VUE_APP_BASEURL='http://117.72.32.65:9191'

main.js 设置全局变量$baseUrl

Vue.prototype.$baseUrl =process.env.VUE_APP_BASEURL

搜索

在这里插入图片描述

替换

在这里插入图片描述

替换request.js

const request = axios.create({
    baseURL: process.env.VUE_APP_BASEURL,  
    timeout: 5000
})

vue全局搜索localhost:9191 替换成$baseUrl

方式一:request.post(this.$baseUrl+"/role") 
方式二::action="$baseUrl+'/file/upload'"

打包

添加插件

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.7.13</version> 可选
            </plugin>
        </plugins>
    </build>
npm run build

SpringBoot部署

打包

mvn clean package

在这里插入图片描述

服务器

部署java项目

mkdir -p /home/server/ElectronicMallApi
mkdir -p /home/server/ElectronicMallVue

在这里插入图片描述

上传jar 包到服务器/home/server/ElectronicMallApi目录

设置application.yml覆盖

server:
  port: 9191
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://${ip}:3306/electronic_mall
    username: root
    password: root
  servlet:
    multipart:
      max-file-size: 30MB
  redis:
    database: 0
    host: ${ip}
    port: 6379
    lettuce:
      pool:
        min-idle: 0
        max-active: 8
        max-idle: 8
        max-wait: -1ms
    connect-timeout: 30000ms

mybatis:
  mapper-locations: classpath:mapper/*.xml
  configuration:
    map-underscore-to-camel-case: true
ip:
  117.72.32.65

在这里插入图片描述

添加启动和停止脚本

start.sh

NAME=ElectronicMallApi-0.0.1-SNAPSHOT.jar
nohup java -jar $NAME > server.log 2>&1 & 
echo 'start success'

stop.sh

#!/bin/bash
PID=$(ps -ef | grep "ElectronicMallApi-0.0.1-SNAPSHOT.jar" | grep -v grep | awk '{print $2}')
if [ -z "$PID" ]; then
    echo "ElectronicMallApi-0.0.1-SNAPSHOT.jar 进程不存在"
else
    kill -9 $PID
    echo "已停止 ElectronicMallApi-0.0.1-SNAPSHOT.jar 进程"
fi

授权

chmod +x *

在这里插入图片描述

vue远程部署

上传dist 文件到服务器/home/server/ElectronicMallVue

安装jdk 1.8

tar -zxvf /tmp/jdk-8u371-linux-x64.tar.gz -C /usr/local/
mv /usr/local/jdk1.8.0_371 /usr/local/java

vi /etc/profile

	export JAVA_HOME=/usr/local/java
	export PATH=$JAVA_HOME/bin:$PATH

source /etc/profile #让配置文件生效

#验证
java -version

在这里插入图片描述

安装nginx

#安装gcc
yum install gcc - c++
#安装PCRE pcre-devel
yum install -y pcre pcre-devel
#安装zlib
yum install -y zlib zlib-devel
#安装open SSL
yum install -y openssl openssl-devel

下载nginx到/tmp

mkdir /usr/local/nginx
tar -zxvf /tmp/nginx-1.24.0.tar.gz -C /usr/local/nginx

cd /usr/local/nginx/nginx-1.24.0
#编译安装
./configure --with-http_stub_status_module --with-http_ssl_module
make && make install

在这里插入图片描述

nginx 命令

cd /usr/local/nginx/sbin
./nginx #启动

ps -ef | grep nginx #查看
./nginx -s stop #停止
./nginx -s reload #重启

在这里插入图片描述

访问:http://117.72.32.65/

在这里插入图片描述

nginx.conf 配置

 location / {
            root   /home/server/ElectronicMallVue/dist;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html; #防止手动输入项目地址报错
        }

在这里插入图片描述

重启nginx

cd /usr/local/nginx/sbin

./nginx -s reload 

在这里插入图片描述

安装mysql

mkdir -p /data/mysql
tar -zxvf /tmp/mysql-5.7.42-el7-x86_64.tar.gz -C /usr/local
mv /usr/local/mysql-5.7.42-el7-x86_64 /usr/local/mysql

#添加用户组
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /data/mysql

cd /usr/local/mysql
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql --initialize

报错:/usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解决:yum install  libaio-devel.x86_64 -y

# 将mysql加入到服务中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
#mysql 快捷方式
ln -s /usr/local/mysql/bin/mysql /usr/bin
ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5

/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/
–datadir=/data/mysql --initialize执行完

零时密码:r4siIs:k(9Z7

在这里插入图片描述

mysql配置文件my.cnf

vi /etc/my.cnf
[mysqld]
datadir=/data/mysql
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

报错

 vi my.cnf
vi: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

解决

sudo yum update ncurses
启动mysql: service mysql start
开机启动: chkconfig mysql on
登录mysql :mysql -uroot -p

修改密码并设置 权限

set password = password('root');

use mysql;
update user set host='%' where user='root' and host='localhost';
flush privileges;

在这里插入图片描述

开3306端口

在这里插入图片描述

Navicat连接

在这里插入图片描述

导入数据

在这里插入图片描述

安装redis

mkdir /usr/local/redis
tar -zxvf /tmp/redis-stable.tar.gz -C /usr/local/redis

编译make

cd /usr/local/redis/redis-stable

make

执行完 make 命令后,redis-stable 的 src 目录下会出现编译后的 redis 服务程序 redis-server,还有用于测试的客户端程序 redis-cli

默认启动

cd src # 进入src目录
 ./redis-server

配置文件启动

./redis-server ../redis.conf # 或用配置启动

后台进程方式启动
修改redis.conf,将daemonize设置为yes

在这里插入图片描述

配置文件启动
./redis-server ../redis.conf # 或用配置启动

设置外网可以访问

打开redis-conf
在这里插入图片描述

修改redis.conf配置

# 找到protected-mode 设置为no
protected-mode no

# bind 设置为0.0.0.0
bind 0.0.0.0

# 取消requirepass注释,设置密码 (可选)
requirepass "password"

修改application.yml 里面的ip为服务器的公网ip

启动java

cd /home/server/ElectronicMallApi 
./start.sh
 tail -100f server.log #查看日志
 ps -ef | grep ElectronicMallApi-0.0.1-SNAPSHOT.jar 

在这里插入图片描述

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

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

相关文章

《学成在线》微服务实战项目实操笔记系列(P92~P120)【下】

史上最详细《学成在线》项目实操笔记系列【下】&#xff0c;跟视频的每一P对应&#xff0c;全系列18万字&#xff0c;涵盖详细步骤与问题的解决方案。如果你操作到某一步卡壳&#xff0c;参考这篇&#xff0c;相信会带给你极大启发。 四、课程发布模块 4.1 (课程发布)模块需求…

ElementUI Form:Cascader 级联选择器

ElementUI安装与使用指南 Cascader 级联选择器 点击下载learnelementuispringboot项目源码 效果图 el-cascader.vue&#xff08;Cascader 级联选择器&#xff09;页面效果图 项目里el-cascader.vue代码 <script> let id 0; export default {name: el_cascader,dat…

MySQL数据库基础(五):SQL语言讲解

文章目录 SQL语言讲解 一、SQL概述 二、SQL语句分类 1、DDL 2、DML 3、DQL 4、DCL 三、SQL基本语法 1、SQL语句可以单行或多行书写&#xff0c;以分号结尾 2、可使用空格和缩进来增强语句的可读性 3、MySQL数据库的SQL语句不区分大小写&#xff0c;关键字建议使用大写…

数据结构-邻接矩阵

介绍 邻接矩阵&#xff0c;是表示图的一种常见方式&#xff0c;具体表现为一个记录了各顶点连接情况的呈正方形的矩阵。 假设一共有以下顶点&#xff0c;其连接关系如图所示 那么&#xff0c;怎么表示它们之间的连接关系呢&#xff1f; 我们发现&#xff0c;各条边所连接的都…

Spring学习笔记(三)--Spring中的Bean的管理

一、什么是Bean Bean是注册到Spring容器中的Java类&#xff0c;控制反转和依赖注入都是通过Bean实现的&#xff0c;任何一个Java类都可以是一个Bean。Bean由Spring进行管理&#xff0c;可以通过xml文件对bean进行配置和管理。 二、BeanFactory接口和ApplicationContext接口&a…

Java基于微信小程序的医院挂号小程序,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

神经网络算法原理

目录 得分函数 数学表示 计算方法 损失函数 ​编辑 前向传播 反向传播 ​编辑 整体架构 正则化的作用 数据预处理 ​过拟合解决方法 得分函数 得分函数是在机器学习和自然语言处理中常用的一种函数&#xff0c;用于评估模型对输入数据的预测结果的准确性或匹配程度。…

全新工业制造时代当中,EM-I12U加固平板终端起到了哪些决定性作用?

随着人们的物质生活水平、经济水平发生改变&#xff0c;行业当上面的竞争也由原来的传统行业向着科技产业转型&#xff0c;就连传统的工业生产、流水线操作都进入了智能化模式当中&#xff0c;可见效率、质量、价格、数据化已经摆到了每个行业的面前。 数字化转型意味着企业会…

P2024 [NOI2001] 食物链 带权并查集 循环关系

题目&#xff1a; P2024 [NOI2001] 食物链 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 本文学习自&#xff1a; 题解 P2024 【食物链】 - RE: 从零开始的异世界信竞生活 - 洛谷博客 (luogu.com.cn) ———— 关系并查集其实就是在普通并查集的基础上额外开个数组r…

Pandas Series Mastery: 从基础到高级应用的完整指南【第83篇—Series Mastery】

Pandas Series Mastery: 从基础到高级应用的完整指南 Pandas是Python中一流的数据处理库&#xff0c;它为数据科学家和分析师提供了强大的工具&#xff0c;简化了数据清理、分析和可视化的流程。在Pandas中&#xff0c;Series对象是最基本的数据结构之一&#xff0c;它为我们处…

【STM32 CubeMX】SPI层次结构SPI协议与SPI控制器结构

文章目录 前言一、SPI 程序层次1.1 硬件原理图1.2 硬件框图1.3 软件层次 二、SPI协议2.1 硬件连线2.2 如何访问SPI设备2.3 SPI 框图 总结 前言 随着嵌入式系统的迅猛发展&#xff0c;STM32系列微控制器在各种应用中得到广泛应用。在嵌入式系统设计中&#xff0c;串行外设接口&…

洗眼镜机是什么原理?眼镜适合用超声波清洗机洗吗?

洗眼镜机是一种通过超声波技术进行清洗的设备&#xff0c;它利用超声波振动在清洗液中产生微小气泡并将其释放到眼镜表面&#xff0c;从而去除污垢、油脂和细菌。洗眼镜机也是相当于超声波清洗机&#xff0c;超声波清洗机能够清洗的物品是有非常的多&#xff0c;不止可以清洗眼…

phpstrom创建thinkphp项目

安装php和composer 参考 安装phpstrom 创建项目 查看thinkphp版本 https://packagist.org/packages/topthink/think 打开所在项目编辑配置 即可调试运行

清除Django的管理员admin站点中“Recent Actions“最近活动面板上的所有信息

清除Django的管理员admin站点中"Recent Actions"最近活动面板上的所有信息 本文主要介绍了如何清除Django的管理员admin站点中"Recent Actions"最近活动面板上的所有信息 操作步骤如下 进入Django项目目录中运行代python manage.py shell进入Django shell…

没有PFMEA分析的检测过程会有什么风险?

随着科技的快速发展&#xff0c;产品复杂度不断提升&#xff0c;检测过程的重要性日益凸显。然而&#xff0c;在这个过程中&#xff0c;如果没有进行PFMEA分析&#xff0c;将会带来怎样的风险呢&#xff1f;本文将对此进行深入探讨。 众所周知&#xff0c;检测是确保产品质量的…

挑战杯 YOLOv7 目标检测网络解读

文章目录 0 前言1 yolov7的整体结构2 关键点 - backbone关键点 - head3 训练4 使用效果5 最后 0 前言 世界变化太快&#xff0c;YOLOv6还没用熟YOLOv7就来了&#xff0c;如果有同学的毕设项目想用上最新的技术&#xff0c;不妨看看学长的这篇文章&#xff0c;学长带大家简单的…

JDK1.8安装教程

目录 下载安装环境配置打开系统高级设置环境配置 验证安装是否成功 下载 https://www.oracle.com/java/technologies/downloads/#java8-windows 安装 打开安装包&#xff0c;点击下一步。 选择好自己熟悉的目的安装目录&#xff0c;点击下一步。 等待安装 选择好jre的安装目…

【深度优先搜索】【图论】【树】2646. 最小化旅行的价格总和

作者推荐 【数位dp】【动态规划】【状态压缩】【推荐】1012. 至少有 1 位重复的数字 涉及知识点 深度优先搜索 图论 树 LeetCode2646. 最小化旅行的价格总和 现有一棵无向、无根的树&#xff0c;树中有 n 个节点&#xff0c;按从 0 到 n - 1 编号。给你一个整数 n 和一个长…

elementui 中el-date-picker 选择年后输出的是Wed Jan 01 2025 00:00:00 GMT+0800 (中国标准时间)

文章目录 问题分析 问题 在使用 el-date-picker 做只选择年份的控制器时&#xff0c;出现如下问题&#xff1a;el-date-picker选择年后输出的是Wed Jan 01 2025 00:00:00 GMT0800 (中国标准时间)&#xff0c;输出了两次如下 分析 在 el-date-picker 中&#xff0c;我们使用…

核心篇 - 集成IS-IS配置实战

文章目录 一. 实验专题1.1. 实验1&#xff1a;配置单区域集成IS-IS1.1.1. 实验目的1.1.2. 实验拓扑1.1.3. 实验步骤&#xff08;1&#xff09;配置IP地址&#xff08;2&#xff09;配置IS-IS 1.1.4. 实验调试&#xff08;1&#xff09;查看邻接表&#xff08;2&#xff09;查看…