Vue+Spring Boot前后端分离项目在Linux系统部署

4 篇文章 0 订阅
3 篇文章 0 订阅

一、Vue项目打包

打包命令:npm run build,具体的可查看package.json文件中的命令

在这里插入图片描述

打包完成后项目会多出dist文件夹,项目部署要用到

在这里插入图片描述

二、Spring Boot项目配置前端资源

在配置文件中配置前端包资源,以.yml文件为例

spring:
  web:
    resources:
      static-locations: file:./dist # 前端资源路径

三、Spring Boot项目打包

  1. 如果是用IDEA开发项目,可以通过右侧的Maven侧边栏双击package进行打包
  2. 或者用Maven打包命令:mvnw -Pprod -DskipTests=true package

在这里插入图片描述

打包成功后会显示jar包的路径,可以直接复制路径找到jar包

在这里插入图片描述
在这里插入图片描述

四、创建Shell脚本

在Linux系统中可以用Shell脚本来启动、停止、重启程序。Shell脚本是以.sh为后缀的文件,下面是一个Shell脚本的内容,可以执行start命令启动程序,stop命令停止程序,restart命令重启程序

#!/bin/bash
cd `dirname $0`

#args='-Xms2g -Xmx2g -Dspring.profiles.active=dev' 
args='-Xms256m -Xmx512m'

# java命令地址
javaRun=../jdk8/bin/java 

cmd=$1 

# 找jar包
for jarFile in `ls *.jar` 
do
  app=$jarFile
done

startup(){
  nohup $javaRun -Dfile.encoding=UTF-8 -jar $args $app >nohup.out 2>&1 &
  tail -f nohup.out
}

stop(){
  for jarFile in `ls *.jar`
  do
    pid=`ps -ef|grep java|grep $jarFile|awk '{print $2}'`
    kill -9 $pid
  done
}

if [ ! $cmd ]; then
  echo "Please specify args 'start|restart|stop'"
  exit 
fi 

if [ $cmd == 'start' ]; then
  for jarFile in `ls *.jar`
  do
    pid=`ps -ef|grep java|grep $jarFile|awk '{print $2}'`
    if [ $pid ]; then
      break;
    fi
  done
  if [ ! $pid ]; then
    startup
  else
    echo "$app is running! pid=$pid"
  fi 
fi 

if [ $cmd == 'restart' ]; then
  echo "$app will be killed after 3 seconds!"
  sleep 3

  stop
  startup 
fi 

if [ $cmd == 'stop' ]; then
  echo "$app will be killed after 3 seconds!"
  sleep 3
  stop
  echo "$app is stopped"
fi

上面的是指定JDK版本的方式,如果直接使用Linux系统安装的JDK按以下修改

# 删除该变量
javaRun=../jdk8/bin/java 

# startup方法修改为
startup(){
  nohup java -Dfile.encoding=UTF-8 -jar $args $app >nohup.out 2>&1 &
  tail -f nohup.out
}

五、传文件到Linux系统

在Linux系统中找个位置存放程序需要的文件,我是新建了service文件夹来存放

在这里插入图片描述

demo文件夹下的文件,外置配置文件方便修改

在这里插入图片描述

六、Linux开启文件权限

需要开启Shell脚本文件和JDK中java命令文件的权限才能使用,开启权限命令如下

chmod 777 ./server.sh ../jdk8/bin/java

七、Linux开启端口权限

需要在防火墙中开启端口的权限,要不项目启动起来也访问不了,命令如下,依次执行

firewall-cmd --zone=public --add-port=端口号/tcp --permanent
firewall-cmd --get-active-zone
firewall-cmd --reload

八、启动程序

进入到程序包所在的文件夹(我的是demo文件夹),输入命令./server.sh start启动程序

在这里插入图片描述

九、浏览器访问程序

在浏览器地址栏输入IP:端口号访问程序,控制台中后端接口也正常返回了数据

在这里插入图片描述

十、Oracle数据库连接失败问题

我的Oracle是装在Windows系统上的,以前在Windows调试程序时配置文件的数据库连接地址一直用的localhost,可以正常连接。但等项目部署Linux时写上具体的IP地址发现数据库连接不上

在这里插入图片描述

这个原因是Oracle的监听程序问题,如下图所示,在Oracle的Net ManagerLISTENER只配置了localhost,需要添加地址把具体的IP地址添加上

在这里插入图片描述

添加具体的IP地址,填写完成后点击左上角文件,点击保存网络配置

在这里插入图片描述

在Windows的服务中重启Oracle监听服务和Oracle主服务

在这里插入图片描述

重启完成后,数据库可正常连接

在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值