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.Driverurl: jdbc:mysql://${ip}:3306/electronic_mallusername: rootpassword: rootservlet:multipart:max-file-size: 30MBredis:database: 0host: ${ip}port: 6379lettuce:pool:min-idle: 0max-active: 8max-idle: 8max-wait: -1msconnect-timeout: 30000msmybatis:mapper-locations: classpath:mapper/*.xmlconfiguration: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" ]; thenecho "ElectronicMallApi-0.0.1-SNAPSHOT.jar 进程不存在"
elsekill -9 $PIDecho "已停止 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/javavi /etc/profileexport JAVA_HOME=/usr/local/javaexport PATH=$JAVA_HOME/bin:$PATHsource /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/nginxcd /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/mysqlcd /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-stablemake

执行完 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 

在这里插入图片描述

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

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

相关文章

精品springboot基于大数据的电脑主机硬件选购助手-可视化大屏

《[含文档PPT源码等]精品基于springboot基于大数据的电脑主机硬件选购助手[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; Java——涉及技术&#xff1a; 前端使用技术&a…

11.【CPP】模版(深入理解模版的实例化,从编译链接的原理理解模版为何无法分离编译)

非类型模版参数 1.模版参数分为类型模版参数和非类型模版参数&#xff0c;非类型模版参数一般都是整形常量&#xff08;整形&#xff1a;size_t,int,char等&#xff09; 2.浮点数、类对象以及字符串是不允许作为非类型模版参数的。非类型模版的参数必须在编译的时候就能确定结…

从汇编角度解释线程间互斥-mutex互斥锁与lock_guard的使用

多线程并发的竞态问题 我们创建三个线程同时进行购票&#xff0c;代码如下 #include<iostream> #include<thread> #include<list> using namespace std; //总票数 int ticketCount100; //售票线程 void sellTicket(int idx) {while(ticketCount>0){cou…

C++ 多起点的bfs(五十九)【第六篇】

今天我们来学习多起点的bfs 1.多起点的bfs 在普通的广度优先搜索问题中&#xff0c;为了得到从初始状态到达目标状态的最小操作数&#xff0c;则将初始状态放入队列中。离初始状态由近及远地不断扩展出新的状态&#xff0c;直到搜索到目的状态&#xff0c;或队列为空&#xff…

【网络安全】什么样的人适合学?该怎么学?

有很多想要转行网络安全或者选择网络安全专业的人在进行决定之前一定会有的问题&#xff1a; 什么样的人适合学习网络安全&#xff1f;我适不适合学习网络安全&#xff1f; 当然&#xff0c;产生这样的疑惑并不奇怪&#xff0c;毕竟网络安全这个专业在2017年才调整为国家一级…

解锁Spring Boot中的设计模式—03.委派模式:探索【委派模式】的奥秘与应用实践!

委派模式 文章目录 委派模式1.简述**应用场景****优缺点****业务场景示例** 2.类图3.具体实现3.1.自定义注解3.2.定义抽象委派接口3.3.定义具体执行者3.4.定义委派者(统一管理委派任务)3.5.定义委派者管理类 4.测试4.1.controller层4.2.测试不同场景4.2.1.测试生产部门计算费用…

MCU看门狗

目录 一、独立看门狗(IWDG) 1、IWDG 主要作用 2、IWDG 主要特性 3、编程控制 4、注意地方 二、窗口看门狗(WWDG) 1、窗口看门狗作用&#xff1a; 2、窗口看门狗产生复位信号有两个条件&#xff1a; 3、WWDG 框图 4、WWDG 将要复位的时间 5、编程控制 一、独立看门…

跟着pink老师前端入门教程(JavaScript)-day02

三、变量 &#xff08;一&#xff09;变量概述 1、什么是变量 白话&#xff1a;变量就是一个装东西的盒子 通俗&#xff1a;变量是用于存放数据的容器&#xff0c;通过变量名获取数据&#xff0c;甚至数据可以修改 2、变量在内存中的存储 本质&#xff1a;变量是程序在内存…

LeetCode---384周赛

题目列表 3033. 修改矩阵 3034. 匹配模式数组的子数组数目 I 3035. 回文字符串的最大数量 3036. 匹配模式数组的子数组数目 II 一、修改矩阵 简单模拟即可&#xff0c;代码如下 class Solution { public:vector<vector<int>> modifiedMatrix(vector<vecto…

SpringCloud-Nacos集群搭建

本文详细介绍了如何在SpringCloud环境中搭建Nacos集群&#xff0c;为读者提供了一份清晰而详尽的指南。通过逐步演示每个关键步骤&#xff0c;包括安装、配置以及Nginx的负载均衡设置&#xff0c;读者能够轻松理解并操作整个搭建过程。 一、Nacos集群示意图 Nacos&#xff0…

VS中设置#define _CRT_SECURE_NO_WARNINGS的原因和设置方式

原因&#xff1a; 在编译老的用C语言的开源项目的时候&#xff0c;可能因为一些老的.c文件使用了strcpy,scanf等不安全的函数&#xff0c;而报警告和错误&#xff0c;而导致无法编译通过。 解决方案&#xff1a; 我们有两种解决方案&#xff1a; 1、在指定的源文件的开头定…

20-k8s中pod的调度-nodeSelector节点选择器

一、概念 我们先创建一个普通的deploy资源&#xff0c;设置为10个副本 [rootk8s231 dns]# cat deploy.yaml apiVersion: apps/v1 kind: Deployment metadata: name: dm01 spec: replicas: 10 selector: matchLabels: k8s: k8s template: metadata: …