SpringBoot+Vue項(xiàng)目部署上線的實(shí)現(xiàn)示例
部署前準(zhǔn)備
注冊(cè)京東云
京東云: 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 設(shè)置全局變量$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

服務(wù)器
部署java項(xiàng)目
mkdir -p /home/server/ElectronicMallApi mkdir -p /home/server/ElectronicMallVue

上傳jar 包到服務(wù)器/home/server/ElectronicMallApi目錄
設(shè)置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

添加啟動(dòng)和停止腳本
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 進(jìn)程不存在"
else
kill -9 $PID
echo "已停止 ElectronicMallApi-0.0.1-SNAPSHOT.jar 進(jìn)程"
fi
授權(quán)
chmod +x *

vue遠(yuǎn)程部署
上傳dist 文件到服務(wù)器/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 #讓配置文件生效 #驗(yàn)證 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 #啟動(dòng) 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; #防止手動(dòng)輸入項(xiàng)目地址報(bào)錯(cuò)
}

重啟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 報(bào)錯(cuò):/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加入到服務(wù)中 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執(zhí)行完
零時(shí)密碼: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
報(bào)錯(cuò)
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
啟動(dòng)mysql: service mysql start 開機(jī)啟動(dòng): chkconfig mysql on 登錄mysql :mysql -uroot -p
修改密碼并設(shè)置 權(quán)限
set password = password('root');
use mysql;
update user set host='%' where user='root' and host='localhost';
flush privileges;

開3306端口

Navicat連接

導(dǎo)入數(shù)據(jù)

安裝redis
mkdir /usr/local/redis tar -zxvf /tmp/redis-stable.tar.gz -C /usr/local/redis
編譯make
cd /usr/local/redis/redis-stable make
執(zhí)行完 make 命令后,redis-stable 的 src 目錄下會(huì)出現(xiàn)編譯后的 redis 服務(wù)程序 redis-server,還有用于測(cè)試的客戶端程序 redis-cli
默認(rèn)啟動(dòng)
cd src # 進(jìn)入src目錄 ./redis-server
配置文件啟動(dòng)
./redis-server ../redis.conf # 或用配置啟動(dòng)
后臺(tái)進(jìn)程方式啟動(dòng)
修改redis.conf,將daemonize設(shè)置為yes

配置文件啟動(dòng)
./redis-server ../redis.conf # 或用配置啟動(dòng)
設(shè)置外網(wǎng)可以訪問
打開redis-conf

修改redis.conf配置
# 找到protected-mode 設(shè)置為no protected-mode no # bind 設(shè)置為0.0.0.0 bind 0.0.0.0 # 取消requirepass注釋,設(shè)置密碼 (可選) requirepass "password"
修改application.yml 里面的ip為服務(wù)器的公網(wǎng)ip
啟動(dòng)java
cd /home/server/ElectronicMallApi ./start.sh
tail -100f server.log #查看日志 ps -ef | grep ElectronicMallApi-0.0.1-SNAPSHOT.jar

到此這篇關(guān)于SpringBoot+Vue項(xiàng)目部署上線的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)SpringBoot Vue項(xiàng)目部署上線內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot + Vue 項(xiàng)目部署上線到Linux 服務(wù)器的教程詳解
- SpringBoot+Vue項(xiàng)目打包部署完整步驟教程
- vue打包部署到springboot的實(shí)現(xiàn)示例
- 打包部署若依(RuoYi)SpringBoot后端和Vue前端圖文教程
- vue打包部署到springboot并通過tomcat運(yùn)行的操作方法
- SpringBoot+Vue 前后端合并部署的配置方法
- 部署vue+Springboot前后端分離項(xiàng)目的步驟實(shí)現(xiàn)
- springboot+vue項(xiàng)目從第一行代碼到上線部署全流程
相關(guān)文章
jd-easyflow中inclusive的用法示例小結(jié)
文章介紹了在jd-easyflow中使用inclusive進(jìn)行條件分支配置的方法,當(dāng)conditionType設(shè)置為inclusive時(shí),所有條件分支都會(huì)被評(píng)估,而不僅僅是一個(gè)條件滿足就終止,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-11-11
超詳細(xì)講解Java秒殺項(xiàng)目登陸模塊的實(shí)現(xiàn)
這是一個(gè)主要使用java開發(fā)的秒殺系統(tǒng),項(xiàng)目比較大,所以本篇只實(shí)現(xiàn)了登陸模塊,代碼非常詳盡,感興趣的朋友快來看看2022-03-03
Java中基于Shiro,JWT實(shí)現(xiàn)微信小程序登錄完整例子及實(shí)現(xiàn)過程
這篇文章主要介紹了Java中基于Shiro,JWT實(shí)現(xiàn)微信小程序登錄完整例子 ,實(shí)現(xiàn)了小程序的自定義登陸,將自定義登陸態(tài)token返回給小程序作為登陸憑證。需要的朋友可以參考下2018-11-11
Java網(wǎng)絡(luò)編程實(shí)現(xiàn)的簡(jiǎn)單端口掃描器示例
這篇文章主要介紹了Java網(wǎng)絡(luò)編程實(shí)現(xiàn)的簡(jiǎn)單端口掃描器,涉及Java網(wǎng)絡(luò)編程Socket組建、swing組建及多線程相關(guān)操作技巧,需要的朋友可以參考下2018-04-04
maven項(xiàng)目錯(cuò)誤:找不到或無法加載主類?XXX問題
這篇文章主要介紹了maven項(xiàng)目錯(cuò)誤:找不到或無法加載主類?XXX問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
Idea導(dǎo)入多個(gè)maven項(xiàng)目到同一目錄下的方法示例
這篇文章主要介紹了Idea導(dǎo)入多個(gè)maven項(xiàng)目到同一目錄下,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

