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

linux部署spring项目

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

  

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

  

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

  

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

  

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

  

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前缀名称一致,否则访问不到

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

Linux部署项目 shell脚本启动 及 Centos7开放指定端口的更多相关文章

  1. centos7 开放指定端口

    centos7 开放指定端口 #开放8080端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent #重载防火墙 firewall- ...

  2. 如何在java程序中调用linux命令或者shell脚本

    转自:http://blog.sina.com.cn/s/blog_6433391301019bpn.html 在java程序中如何调用linux的命令?如何调用shell脚本呢? 这里不得不提到ja ...

  3. Linux生产服务器Shell脚本分享

    Linux生产服务器Shell脚本分享 2012-6-6 86市场网 linux 作为一名Linux/unix系统管理员,我经常遇到人问这个问题:shell能做什么?PHP这么强大,为什么不用PHP来 ...

  4. Linux下添加shell脚本使得nginx日志每天定时切割压缩

    Linux下添加shell脚本使得nginx日志每天定时切割压缩一 简介 对于nginx的日志文件,特别是access日志,如果我们不做任何处理的话,最后这个文件将会变得非常庞大 这时,无论是出现异常 ...

  5. linux下实现shell脚本自动连接mongodb数据库并创建索引

    在linux下创建shell脚本

  6. 2019.11.13课堂实验之用Linux下的shell脚本完成两文本交替输出

    有两个文本如下,实际中并不知道两文本各有多少行: 文本1.txt aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ccccccccccccccccccccccccccc ...

  7. Java执行cmd命令、bat脚本、linux命令,shell脚本等

    1.Windows下执行cmd命令 如复制 D:\tmp\my.txt 到D:\tmp\my_by_only_cmd.txt 现文件如图示: 执行代码: private static void run ...

  8. CentOS 6、CentOS7 防火墙开放指定端口

    当我们在CentOS服务器中装了一些开发环境(如 tomcat.mysql.nginx 等...)时,希望能从外界访问,就需要配置防火墙对指定端口开放. CentOS 6.51.开放指定端口/sbin ...

  9. Linux开放指定端口命令(CentOS)

    1.开启防火墙 systemctl start firewalld 2.开放指定端口 ##linux打开防火墙3389端口 firewall-cmd --zone=public --add-port= ...

随机推荐

  1. BigDecimal除法问题

    BigDecimal类的主要功能是进行小数的大数计算,而且最重要的是可以精确到指定的四舍五入位数. 如果要进行四舍五入的操作,则必须依靠以下的方法:public BigDecimal divide(B ...

  2. Spoj4060 game with probability Problem

    题目链接:Click here Solution: 刚开始还以为博弈论加概率,然而并不是... 设两个状态:\(f(i)\)表示当前剩下\(i\)个石头时,先手的获胜概率,\(g(i)\)为后手的获胜 ...

  3. ModelSerializer 使用知识点_serializers.SerializerMethodField()使用场景总结

    serializers.SerializerMethodField和钩子方法结合,可以实现对ModelSerializer类的一些字段进行二次加工,返回,如下:1.对以ModelSerializer的 ...

  4. 值不能为空。参数名viewinfo(microsoft.sqlserver.management.sqlstudio.explorer)

    打开MSSQL 2008 R2的时候,展开数据库都显示以下的错误提示: 值不能为空.参数名viewinfo(microsoft.sqlserver.management.sqlstudio.explo ...

  5. 【TIL】today i learned

    20191115 JSON解析网站 https://www.json.cn/    方便简洁,左侧放JSON表达式,右侧自动解析 联系英文盲打网站 https://www.keybr.com/  字母 ...

  6. Java synchronized到底锁住的是什么?

    使用环境:多线程java程序中. 作用:在多线程的环境下,控制synchronized代码段不被多个线程同时执行.synchronized既可以加在一段代码上,也可以加在方法上. 使用:synchro ...

  7. Linux驱动开发10——内核环形双向链表

    Linux内核环形双向链表本身不实现锁机制,需要驱动本身完成锁机制实现. 1.1.list_head结构体 #include <linux/list.h> struct list_head ...

  8. html readonly 和 disable 区别

    readonly 和 disable的区别Readonly和Disabled它们都能够做到使用户不能够更改表单域中的内容.但是它们之间有着微小的差别,总结如下: Readonly只针对input(te ...

  9. String 部分源码分析

    String 无参数构造函数 /** * 底层存储字符串的目标字节数组, * Jdk 8 之前都是字符数组 private final char[] value; */ @Stable private ...

  10. 使用C#分层查询多个表数据

    下面我来给大家叙述一下视野分层加载多张表数据: 首先创建一个StudentExtends类: 在DAL层studentDAL类写如下代码: 在BLL层写如下代码,引用DAL层的LoadStudentI ...