Linux部署项目 shell脚本启动 及 Centos7开放指定端口

时间:2021-06-18 18:02:27

  我们首先要在linux上安装好jdk   tomcat   mysql  这些基本环境,这些可以在楼主的  Linux入门   里面找到。

linux部署spring项目

  1. 右击项目,maven clean清理项目,maven install 将项目打成war包。

  Linux部署项目 shell脚本启动 及 Centos7开放指定端口

  2. 查看控制台信息,找到war包生成的目录,上传到tomcat的webapps里面去。

  Linux部署项目 shell脚本启动 及 Centos7开放指定端口

  3. 在bin目录 ./startup.sh 启动tomcat会自动解压这个包,并在tomcat/work/Catalina/localhost目录里面生成工程信息。

  Linux部署项目 shell脚本启动 及 Centos7开放指定端口

  4. 我们刚把war包改名了,可以通过 ip:port/WEB/url 访问,不然默认是通过 ip:port/WEB-0.0.1-SNAPSHOT/url 访问。
    如果是上传到ROOT目录, 访问的时候就不需要带包名称,直接  ip:port/url  就能访问了。

  Linux部署项目 shell脚本启动 及 Centos7开放指定端口

  5. ps aux | grep tomcat 查看进程号,   kill -9 pid 停止进程。

  Linux部署项目 shell脚本启动 及 Centos7开放指定端口

linux部署springBoot项目

打成 jar 包:springboot内置了一个tomcat,我们打成jar包之后,直接执行 nohup java -jar 包名称  & 就可以启动了。
打成war包:当我们没有采用前后端分离,页面和后台都在一个工程里面的时候就需要将项目打成war包来运行。
   注意 :
    1. 将项目打包方式改成war包
    2. springboot默认启动内置tomcat,所以我们需要修改tomcat生命周期的作用域
    3. 主函数继承SpringBootServletInitializer, 重写configure方法
    4. 我用的tomcat8, 用tomcat7会报错,需要添加一个依赖,自行百度。
    5. 项目放在tomcat/webapps目录下
    6. 项目的war包名称必须与项目的url前缀名称一致,否则访问不到

Linux部署项目 shell脚本启动 及 Centos7开放指定端口

shell脚本启动


#!/bin/sh
#指定项目路径
export project_path=/usr/local/wulei/demo
#指定jar包名称
export JAR_NAME=app.jar
#指定java环境变量
export JAVA_HOME=/usr/local/wulei/jdk8


#清空之前的启动日志
echo "" > $project_path/nohup.out


echo -e "\033[47;34;5m ======= 开始启动项目..... ======= \033[0m"
#启动脚本
nohup $JAVA_HOME/bin/java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/log/app.dump -Xms20m -Xmx20m -jar $project_path/$JAR_NAME 2>&1 &


#打印启动日志
tail -f $project_path/nohup.out

Linux开放指定端口

以centos7开放8080端口为例:

添加端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
刷新规则
firewall-cmd --reload
查看指定端口
firewall-cmd --zone=public --query-port=8080/tcp
删除指定端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
查看已开放得所有端口
firewall-cmd --list-ports