Linux 之九:CentOS 上 Tomcat 安装、SpringBoot 项目打包和部署

安装 Tomcat

下载

a. 方式一:可以在windows 真机上下载后,再上传到服务器

b. 方式二:可以在服务器端使用 wget 下载命令来下载

登录官网https://tomcat.apache.org/download-90.cgi,选择 linux 版本

右键,获取下载链接地址,复制。

然后在 xshell 客户端使用wget 下载,下载前注意所在目录。

[root@zhangpeng soft]# wget https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-9/v9.0.52/bin/apache-tomcat-9.0.52.tar.gz
--2021-08-16 14:58:51--  https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-9/v9.0.52/bin/apache-tomcat-9.0.52.tar.gz
Resolving mirrors.bfsu.edu.cn (mirrors.bfsu.edu.cn)... 39.155.141.16, 2001:da8:20f:4435:4adf:37ff:fe55:2840
Connecting to mirrors.bfsu.edu.cn (mirrors.bfsu.edu.cn)|39.155.141.16|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11524133 (11M) [application/octet-stream]
Saving to: ‘apache-tomcat-9.0.52.tar.gz’

100%[=====================================================================================================>] 11,524,133  10.2MB/s   in 1.1s   

2021-08-16 14:58:52 (10.2 MB/s) - ‘apache-tomcat-9.0.52.tar.gz’ saved [11524133/11524133]

[root@zhangpeng soft]# ls
apache-tomcat-9.0.52.tar.gz

第二种方式:

先下载文件到本地,然后再使用 xftp 客户端,直接上传文件到服务器。

或 使用rz命令上传

解压

tar -xvf apache-tomcat-9.0.52.tar.gz 解压到当前目录

tar -xvf apache-tomcat-9.0.52.tar.gz -C /usr/tomcat :解压到指定的目录下。

注意: -C 大写的c ,解压到指定的目录中

1)先解压到 /usr 目录下
# tar -xvf  apache-tomcat-9.0.52.tar.gz -C /usr
2)查看目录
[root@zhangpeng apache-tomcat-9.0.52]# ls
bin  BUILDING.txt  conf  CONTRIBUTING.md  lib  LICENSE  logs  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
[root@zhangpeng apache-tomcat-9.0.52]# 

bin 目录:存放的是可执行文件

conf : 存放配置文件,修改端口、编码、设置用户、角色等

lib : 存放的是类库文件

logs: 运行日志文件

webapps: 项目发布目录

work : jsp 编译后的文件目录

启动

先进入 /tomcat安装目录/bin,运行startup.sh

[root@zhangpeng apache-tomcat-9.0.52]# cd bin   #进入bin 目录
[root@zhangpeng bin]# ls
bootstrap.jar  catalina-tasks.xml  commons-daemon.jar            configtest.sh  digest.sh     setclasspath.bat  shutdown.sh  tomcat-juli.jar    
catalina.bat   ciphers.bat         commons-daemon-native.tar.gz  daemon.sh      makebase.bat  setclasspath.sh   startup.bat  tomcat-native.tar.g
catalina.sh    ciphers.sh          configtest.bat                digest.bat     makebase.sh   shutdown.bat      startup.sh   tool-wrapper.bat   
[root@zhangpeng bin]# ./startup.sh                        ## 启动
Using CATALINA_BASE:   /usr/apache-tomcat-9.0.52
Using CATALINA_HOME:   /usr/apache-tomcat-9.0.52
Using CATALINA_TMPDIR: /usr/apache-tomcat-9.0.52/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/apache-tomcat-9.0.52/bin/bootstrap.jar:/usr/apache-tomcat-9.0.52/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.                ### 表示启动成功
测试

先进入VM 虚拟机中,打开火狐浏览器,先访问 http://127.0.0.1:8080 看是否能正常访问。

如果服务器正常可以访问 Tomcat 后,再出虚拟机,到物理真机上打开浏览器,访问

注意:访问时,使用的ip 是虚拟机中linux 的ip http://192.168.184.139:8080

发现访问不成功

防火墙和端口

先关闭防火墙:systemctl stop firewalld 停止防火墙

[root@zhangpeng bin]# systemctl stop firewalld

然后再访问,就可以了。

但是,关闭防火墙不安全。只需要开放端口8080 即可。没有必要全部开放。

先开启防火墙,然后再开放指定的8080端口

命令:firewall-cmd --zone=public --add-port=8080/tcp --permanent

[root@zhangpeng apache-tomcat-9.0.52]# systemctl start firewalld    ##启动防火墙
[root@zhangpeng apache-tomcat-9.0.52]# firewall-cmd --zone=public --add-port=8080/tcp --permanent ## 开放8080端口
success

上面默认,仍没起作用。原因:需要重启防火墙或重新加载规则

[root@zhangpeng apache-tomcat-9.0.52]# firewall-cmd --reload
success

再次访问,OK 成功!

注意添加端口,更新的配置文件:/etc/firewalld/zones

项目打包

修改 pom.xml

添加插件的配置

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>${spring-boot.version}</version>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
执行打包命令
  • 先 clean 清理删除之前的包文件
  • 在 package 打包

打开 Idea 右边侧边栏 Maven ,依次点击刷新和打包

打包过程中注意查看控制台日志,正常完成后,日志中会有打包文件所在的目录位置

根据日志提示的目录位置,找到 jar

启动测试
  • 先在 window 本地测试
  • 再上传 linux 服务器启动测试

在 jar 所在目录打开cmd 命令窗口,在所在的目录资源管理器地址输入 cmd 然后回车即可打开命令窗口

使用命令

java -jar bookmark.jar

到此正常启动了 SpringBoot 项目,接下来打开浏览器访问测试即可。

linux 上部署
  • 上面启动正常后,表示 jar 包文件没有问题,此时可以上传到 linux 服务器测试运行

  • xftp 上传至 linux 的/usr/local 目录下

  • xshell 切换到 /usr/local 下,java -jar bookmark.jar 启动运行

  • 外部浏览器访问

    • 防火墙关闭或开启端口

    • 数据库的访问 ip ,如果要访问物理机上 mysql 注意修改远程访问的权限

      CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
      FLUSH PRIVILEGES;

使用 xftp 上传到 /usr/local

使用 xshell 进入 /usr/local 目录

[root@localhost ~]# cd /usr
[root@localhost usr]# ls
apache-tomcat-9.0.50  bookmark-0.0.1-SNAPSHOT.jar  games    java  lib64    local  share  tmp
bin                   etc                          include  lib   libexec  sbin   src
[root@localhost usr]# cd local/
[root@localhost local]# ls
bin  bookmark-0.0.1-SNAPSHOT.jar  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@localhost local]# java -jar bookmark-0.0.1-SNAPSHOT.jar 

正常启动后

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

有点炫酷有点diao的免费wordpress模板主题

这是一款经典的免费wordpress主题&#xff0c;被广泛应用于多个行业的网站。 https://www.wpniu.com/themes/189.html

Vue 监听器:让你的应用实时响应变化

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Python 一步一步教你用pyglet制作汉诺塔游戏

目录 汉诺塔游戏 1. 抓取颜色 2. 绘制圆盘 3. 九层汉塔 4. 绘制塔架 5. 叠加圆盘 6. 游戏框架 汉诺塔游戏 汉诺塔&#xff08;Tower of Hanoi&#xff09;&#xff0c;是一个源于印度古老传说的益智玩具。这个传说讲述了大梵天创造世界的时候&#xff0c;他做了三根金刚…

【刷题】Leetcode 415 字符串相加 和 34 字符串相乘

刷题 Leetcode 415 字符串相加题目描述 思路一&#xff08;模拟大法版&#xff01;&#xff01;&#xff01;&#xff09;Leetcode 34 字符串相乘题目描述 思路一&#xff08;模拟大法版&#xff09;Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;&…

Angular基础---HelloWorld---Day3

文章目录 0.ng-model 的几种不同的class属性1.ng-model 的引用与属性的调用2.表单验证&#xff1a; (模版引用变量、ngModel 、ngif一起使用&#xff09;3.根据class属性的值ng-invalid &#xff0c;设置动态变化的样式 0.ng-model 的几种不同的class属性 引用ng-model 元素的c…

2024年软件测试怎么自我提升?“我“该如何做?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、掌握基本的测试…

【C#图解教程】笔记

文章目录 1. C#和.NET框架.NET框架的组成.NET框架的特点CLRCLICLI的重要组成部分各种缩写 2. C#编程概括标识符命名规则&#xff1a; 多重标记和值格式化数字字符串对齐说明符格式字段标准数字格式说明符标准数字格式说明符 表 3. 类型、存储和变量数据成员和函数成员预定义类型…

有什么针对新闻媒体行业的安全解决方案

对媒体行业而言&#xff0c;门户网站是最易受到攻击的地方。常见的攻击方式有网页篡改、挂马和被植入暗链等。门户网站作为新闻媒体对外的第一扇门&#xff0c;通常承载了大量的流量&#xff0c;一旦遭到攻击&#xff0c;造成的影响会更具有可怕的“传播力”。那么我们应该如何…

车载诊断协议DoIP系列 —— AL IPv6地址分配通用DoIP报头结构

车载诊断协议DoIP系列 —— AL IPv6地址分配&通用DoIP报头结构 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自…

Python栅格数据克里金插值

目录 结果输入文件核心代码 结果 输入文件 1、需要有经纬度信息以及对应的单点值 2、还要用到一个研究区的矢量文件&#xff0c;当然上面点的经纬度信息要在该矢量文件以内 核心代码 file_path workspace1# Attempt to read the Excel filedf readDataFile(file_path)dat…

vxe-table配合Export2Excel导出object类型数据{type,count}。表格数据呈现是利用插槽,导出只要count该怎么做

先贴一张数据来&#xff1a; 一、然后是vxe-grid的columns配置&#xff1a; 然后就正常用封装好的Export2Excel就行。 碰到一次在控制台报错&#xff1a; 没复现出来&#xff0c;大概就说是count咋样咋样。 以后碰到的话再说&#xff0c;各位要用的话也注意看看 二、或者 用js…

适配器模式已经在SpringMVC中的源码实现

介绍&#xff1a; 1、适配器模式将某个类的接口转换成客户端期望的另一种接口表示 2、目的&#xff1a;兼容性&#xff0c;让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为&#xff1a;包装器。 3、属于&#xff1a;结构型模式 4、分3类&#xff1a;1&#xff0…

ESP8266开发板 + DHT11+远程开关+ThingsCloud+APP+QQ邮件推送告警

ESP32 是乐鑫公司推出的 WiFi 芯片&#xff0c;它不仅支持 WiFi 和 BLE&#xff0c;还可以作为可编程的 MCU&#xff0c;通过 Espressif IDF、Arduino 等框架编写固件&#xff0c;用于非常广泛的物联网场景。 这个教程我们分享如何在 Arduino IDE 中使用 ThingsCloud ESP SDK&…

ElasticSearch之排序,fielddata和docvalue

写在前面 es搜索返回结果的排序默认是按照得分的高低来排的&#xff0c;本文来看下如何按照字段来排序&#xff0c;实现类似于MySQL的order by xxx的效果。 1&#xff1a;什么是fileddata和doc_value 参考ElasticSearch之零碎知识点 和一文带你彻底弄懂ES中的doc_values和fi…

Igraph入门指南 5

2、graph_from系列&#xff0c;将其他R数据结构转换成图 2-1 邻接矩阵转图&#xff1a;graph_from_adjacency_matrix 可以接受Matrix包创建的稀疏矩阵作为参数 邻接矩阵中行的顺序被保留&#xff0c;并作为图中顶点的顺序。 本函数几个重要的参数&#xff1a; weighted&am…

【组合递归】【StringBuilder】Leetcode 17. 电话号码的字母组合

【组合递归】【StringBuilde】Leetcode 17. 电话号码的字母组合 StringBulider常用方法&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;17. 电…

Java宝典-抽象类和接口

目录 1. 抽象类1.1 抽象类的概念1.2 抽象类的语法1.3 抽象类的特点 2. 接口2.1 接口的概念2.2 接口的语法2.3 接口的特点2.4 实现多个接口2.5 接口的继承 3. 接口使用案例 铁汁们好,今天我们学习抽象类和接口~ 1. 抽象类 1.1 抽象类的概念 什么是抽象类?在面向对象中,如果一…

【Leetcode】top 100 双指针

283 移动零 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 分析&#xff1a;双指针初始为0&#xff1b;left指针找零值&#xff0c;right指针找非零值&#xff1b;由于需要保持非零元素的相对顺序&#xff0c…

02-组件化编程与Vu额 Click脚手架

1.Vue组件化编程(只有1个数字是一级标题) 1.1 模块与组件、模块化与组件化(两个数字组成是二级标题) 1.1.1模块(三个数字是三级标题 依次类推) 理解&#xff1a;向外提供特定功能的 js 程序&#xff0c;一般就是一个 js 文件为什么&#xff1a;js 文件很多很复杂作用&#xf…

【性能测试】性能测试各知识第1篇:性能测试大纲【附代码文档】

性能测试完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;性能测试大纲。。。。。。。。。。。。。。 全套笔记资料代码移步&#xff1a; 前往gitee仓库查看 感兴趣的小伙伴可以自取哦&#xff0c;欢迎大家点赞转发~ 性能测试大纲 |序号|阶段|概述| |--…