linux安装Tomcat及部署jpress的详细教程!!!

news2024/11/19 8:28:30

一、YUM在线安装

 1、查看Tomcat相关安装包

[root@localhost ~]# yum list | grep tomcat
tomcat.noarch                               7.0.76-16.el7_9            updates  
tomcat-admin-webapps.noarch                 7.0.76-16.el7_9            updates  
tomcat-docs-webapp.noarch                   7.0.76-16.el7_9            updates  
tomcat-el-2.2-api.noarch                    7.0.76-16.el7_9            updates  
tomcat-javadoc.noarch                       7.0.76-16.el7_9            updates  
tomcat-jsp-2.2-api.noarch                   7.0.76-16.el7_9            updates  
tomcat-jsvc.noarch                          7.0.76-16.el7_9            updates  
tomcat-lib.noarch                           7.0.76-16.el7_9            updates  
tomcat-servlet-3.0-api.noarch               7.0.76-16.el7_9            updates  
tomcat-webapps.noarch                       7.0.76-16.el7_9            updates  
tomcatjss.noarch

2、安装相关软件包

[root@localhost ~]# yum install -y tomcat.noarch

[root@localhost ~]# yum install -y tomcat-webapps.noarch

3、启动Tomcat并开机自启动

[root@localhost ~]# systemctl enable --now tomcat
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service.

[root@localhost ~]# systemctl status tomcat
● tomcat.service - Apache Tomcat Web Application Container
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2023-08-02 17:58:12 CST; 31s ago
 Main PID: 1633 (java)
   CGroup: /system.slice/tomcat.service
           └─1633 /usr/lib/jvm/jre/bin/java -Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceF...

Aug 02 17:58:13 localhost.localdomain server[1633]: Aug 02, 2023 5:58:13 PM org.apache.catalina.startup.TldConf...cute
Aug 02 17:58:13 localhost.localdomain server[1633]: INFO: At least one JAR was scanned for TLDs yet contained n...ime.
Aug 02 17:58:13 localhost.localdomain server[1633]: Aug 02, 2023 5:58:13 PM org.apache.catalina.startup.HostCon...tory
Aug 02 17:58:13 localhost.localdomain server[1633]: INFO: Deployment of web application directory /var/lib/tomc...9 ms
Aug 02 17:58:13 localhost.localdomain server[1633]: Aug 02, 2023 5:58:13 PM org.apache.coyote.AbstractProtocol start
Aug 02 17:58:13 localhost.localdomain server[1633]: INFO: Starting ProtocolHandler ["http-bio-8080"]
Aug 02 17:58:13 localhost.localdomain server[1633]: Aug 02, 2023 5:58:13 PM org.apache.coyote.AbstractProtocol start
Aug 02 17:58:13 localhost.localdomain server[1633]: INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Aug 02 17:58:13 localhost.localdomain server[1633]: Aug 02, 2023 5:58:13 PM org.apache.catalina.startup.Catalina start
Aug 02 17:58:13 localhost.localdomain server[1633]: INFO: Server startup in 1120 ms
Hint: Some lines were ellipsized, use -l to show in full.

4、通过浏览器进行测试Tomcat是否可以成功打开

浏览器输入虚拟机IP地址:192.168.x.x:8080

注意:这里需要关闭虚拟机的防火防(或放行该服务端口),selinux需要设置为宽容模式

到这里在线安装TomCat已经完成啦!!! 

二、RPM包离线安装

1、上传Tomcat的rpm包、java的jdk包

2、安装JAVA的jdk包

[root@localhost ~]# yum localinstall -y jdk-8u261-linux-x64.rpm

[root@localhost ~]# java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

3、解压安装Tomcat的rpm包,配置相关文件

[root@localhost ~]# tar -xf apache-tomcat-8.5.70.tar.gz -C /usr/local/

[root@localhost ~]# ln -sv /usr/local/apache-tomcat-8.5.70/ /usr/local/tomcat

[root@localhost ~]# tree -d -L 1 /usr/local/tomcat/
/usr/local/tomcat/
├── bin
├── conf
├── lib
├── logs
├── temp
├── webapps
└── work

7 directories

4、创建新用户tomcat

[root@localhost ~]# groupadd -g 53 tomcat

[root@localhost ~]# useradd -u 53 -g 53 -c "Apache Tomcat" -d /usr/local/tomcat/ -s /sbin/nologin tomcat
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.

[root@localhost ~]# chown -R tomcat.tomcat /usr/local/tomcat/*

5、编辑tomcat.service文件

[root@localhost ~]# vim /usr/lib/systemd/system/tomcat.service

[Unit]
Description=Apache Tomcat
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
Environment=JAVA_HOME=/usr/java/jdk1.8.0_261-amd64
Environment=CATALINA_HOME=/usr/local/tomcat

ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExexStop=/bin/kill -s QUIT $MAINPID
User=tomcat
Group=tomcat
FrivateTmp=true

[Install]
WantedBy=multi-user.target

6、编辑tomcat.conf文件

[root@localhost ~]# vim /usr/local/tomcat/conf/tomcat.conf

TOMCAT_CFG_LOADED="1"

TOMCATS_BASE="/usr/local/tomcat/"

# Where your java installation lives
JAVA_HOME="/usr/java/jdk1.8.0_261-amd64/jre/"

# Where your tomcat installation lives
CATALINA_HOME="/usr/local/tomcat"

# System-wide tmp
CATALINA_TMPDIR="/usr/local/tomcat/temp"

# Set default javax.sql.DataSource factory to apache commons one. See rhbz#1629162
JAVA_OPTS="-Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory"

# Run tomcat under the Java Security Manager
SECURITY_MANAGER="false"

7、启动Tomcat并开机自启动

[root@localhost ~]# systemctl enable --now tomcat
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service.

[root@localhost ~]# systemctl status tomcat
● tomcat.service - Apache Tomcat
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2023-08-02 19:06:12 CST; 5s ago
  Process: 3421 ExecStart=/usr/local/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 3428 (java)
   CGroup: /system.slice/tomcat.service
           └─3428 /usr/java/jdk1.8.0_261-amd64/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logg...

Aug 02 19:06:12 localhost.localdomain systemd[1]: Starting Apache Tomcat...
Aug 02 19:06:12 localhost.localdomain systemd[1]: Started Apache Tomcat.
[root@localhost ~]# ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.16.131  netmask 255.255.255.0  broadcast 192.168.16.255
        inet6 fe80::7b78:36ce:2fc3:c570  prefixlen 64  scopeid 0x20<link>
        inet6 fe80::921e:3b9f:4a3c:f930  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:67:ed:f2  txqueuelen 1000  (Ethernet)
        RX packets 105049  bytes 144206992 (137.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 10163  bytes 1114107 (1.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

8、通过浏览器进行测试Tomcat是否可以成功打开

浏览器输入虚拟机IP地址:192.168.x.x:8080

注意:这里需要关闭虚拟机的防火防(或放行该服务端口),selinux需要设置为宽容模式

 到这里离线安装TomCat已经完成啦!!!

三、部署jpress应用

1、查看是否有足够的熵来用于产生随机数

[root@localhost ~]# cat /proc/sys/kernel/random/entropy_avail 
762

(1)如果不够则安装rngd服务解决

[root@localhost ~]# yum install -y rng-tools

[root@localhost ~]# systemctl enable --now rngd

(2)再次查看

[root@localhost ~]# cat /proc/sys/kernel/random/entropy_avail 
3105

2、Tomcat Web管理功能(注意:需设置可访问管理主机的IP地址,确保安全)

(1)配置tomcat-users.xml文件(注意:在<tomcat-users>和</tomcat-usesr>之间添加)

[root@localhost ~]# vim /usr/local/tomcat/conf/tomcat-users.xml

<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-jmx"/>
<role rolename="manager-script"/>
<role rolename="manager-status"/>
<user username="tomcat" password="tomcat" roles="admin-gui,admin-script,manager-gui,manager-jmx,manager-script,manager-status"/>

(2)允许方式Manager App,更改allow="可访问管理Tomcat的主机地址"

[root@localhost ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml

<Context antiResourceLocking="false" privileged="true" >
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="192.168.16.1" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

(3)允许访问HOST Manager

[root@localhost ~]# vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
  <CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
                   sameSiteCookies="strict" />
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="192.168.16.1" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

3、重启Tomcat,使用浏览器访问 

 

 4、部署jpress应用

(1)安装MariaDB数据库

[root@localhost ~]# yum install -y mariadb-service

[root@localhost ~]# systemctl start mariadb.service

[root@localhost ~]# mysql -e "create database jpress DEFAULT CHARACTER SET utf8;"
[root@localhost ~]# mysql -e "grant all on jpress.* to jpress@'localhost' identified by '123456'"

(2)jpress站点上线(上传war包到指定目录)

[root@localhost ~]# ls /usr/local/tomcat/webapps/jpress-web-newest.war 
/usr/local/tomcat/webapps/jpress-web-newest.war

5、浏览器访问http://192.168.x.x:8080/jpress-web-newest/install,进行安装

  

 

6、到这里就已经部署完成了,一起来欣赏以下吧!!! 

 

四、静态网页和动态网页的区别

静态网页

(1)静态网页不能简单地理解成静止不动的网页,他主要指的是网页中没有程序代码,只有HTML(即:超文本标记语言),一般后缀为.html,.htm,或者.xml等。虽然静态网页的页面一旦做成,内容就不会再改变了。但是,静态网页也包括一些能动的部分,这些主要是一些GIF动画等

(2)静态网页的打开,用户可以直接双击,并且不管任何人任何时间打开的页面的内容都是不变的。

动态网页

(1)动态网页是指跟静态网页相对的一种网页编程技术。动态网页的网页文件中除了HTML标记以外,还包括一些特定功能的程序代码,这些代码可以使得浏览器和服务器可以交互,所以服务器端根据客户的不同请求动态的生成网页内容。

即:动态网页相对于静态网页来说,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。

(2)动态网页,与网页上的各种动画、滚动字幕等视觉上的动态效果没有直接关系,动态网页也可以是纯文字内容的,也可以是包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,只要是采用了动态网站技术(如PHP、ASP、JSP等)生成的网页都可以称为动态网页。

动态网页和静态网页的区别

(1)更新和维护:  

静态网页内容一经发布到网站服务器上,无论是否有用户访问,这些网页内容都是保存在网站服务器上的。如果要修改网页的内容,就必须修改其源代码,然后重新上传到服务器上。静态网页没有数据库的支持,当网站信息量很大的时候网页的制作和维护都很困难

动态网页可以根据不同的用户请求,时间或者环境的需求动态的生成不同的网页内容,并且动态网页一般以数据库技术为基础,可以大大降低网站维护的工作量

(2)交互性:

静态网页由于很多内容都是固定的,在功能方面有很大的限制,所以交互性较差

动态网页则可以实现更多的功能,如用户的登录、注册、查询等

(3)响应速度:

静态网页内容相对固定,容易被搜索引擎检索,且不需要连接数据库,因此响应速度较快

动态网页实际上并不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页,其中涉及到数据的连接访问和查询等一系列过程,所以响应速度相对较慢

(4)访问特点:

静态网页的每个网页都有一个固定的URL,且网页URL以.htm、.html、.shtml等常见形式为后缀,而不含有“?”,可以直接双击打开

动态网页中的“?”对搜索引擎检索存在一定的问题,搜索引擎一般不可能从一个网站的数据库中访问全部网页,或者出于技术方面的考虑,搜索之中不去抓取网址中“?”后面的内容,不能直接双击打开

五、Webl.0 和 Web2.0 的区别

Web1.0

1、Web1.0时代,互联网的架构主要是以客户端-服务器模式为基础,基于HTML进行静态网页的展示。前端技术相对简单,交互性和动态性较差。
2、在Web1.0时代,互联网主要被用作信息传递和发布的工具。大部分网站是静态的,缺乏社交和协作的功能。
3、Web1.0注重信息展示和传递,网站主要由少数专业人士和机构创建和发布,普通用户的参与度有限。

Web2.0

 1、随着Web2.0的发展,出现了更多的前端技术和开发框架,如AJAX、JavaScript库等,使得网页能够实现更丰富的交互和动态效果。Web2.0采用了更分布式的架构,通过Web服务、API等方式,不同的应用程序可以互相集成和共享数据。
2、Web2.0注重社交和协作,通过各种社交媒体平台和协作工具,用户可以轻松地与他人建立联系、分享信息、合作项目并参与在线社区。
3、前端技术和交互方式得到了改进,引入了AJAX、JavaScript库等,实现了更动态和交互性的网页体验。
4、网站内容更加丰富多样,包括博客、社交媒体、在线论坛、维基百科等。用户可以发表评论、上传图片和视频,与其他用户进行互动和交流。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

msvcr100.dll丢失的解决方法?三招解决msvcr100.dll丢失问题

最近我遇到了一个电脑问题&#xff0c;就是在运行某个软件时提示缺少msvcr100.dll文件。起初我并不知道这个文件是什么&#xff0c;也不知道它的作用&#xff0c;但通过一番搜索和了解&#xff0c;我对这个问题有了更深的理解&#xff0c;并且也得到了解决的办法。 解决方法一&…

分享学习java过程中遇到的一些网址

*****JavaWeb视频教程***** https://www.bilibili.com/video/BV1m84y1w7Tb?p4&spm_id_frompageDriver&vd_source841fee104972680a6cac4dbdbf144b50*****Java前端官网教程&#xff08;HTML、CSS、JS)***** https://www.w3school.com.cn/html/index.asp*****VS Code官网…

阶段性实验汇总

文章目录 前言一、实验目的与要求1.目的2.要求 二、实验拓扑三、实验步骤1.阅读实验拓扑2.配置基础环境3.配置DHCP及其中继服务器&#xff08;一&#xff09;DHCP主服务器&#xff08;二&#xff09;DHCP中继服务器(三)登录客户端验证 4.配置DNS服务器&#xff08;一&#xff0…

faac内存开销较大,为方便嵌入式设备使用进行优化(valgrind使用)

faac内存开销较大&#xff0c;为方便嵌入式设备使用进行优化&#xff0c;在github上提了issues但是没人理我&#xff0c;所以就搞一份代码自己玩吧。 基于faac_1_30版本&#xff0c;原工程https://github.com/knik0/faac faac内存优化: faac内存开销较大&#xff0c;为方便嵌入…

RS232转Profinet网关rs232转网口需要如何设置

大家好&#xff0c;今天我要给大家带来一个很有意思的案例分享。你们猜猜&#xff0c;这回我们要用捷米的一款神奇的网关JM-RS485/232-PN做什么呢&#xff1f;没错&#xff0c;我们要把一台扫码枪设备通过这个RS232转PROFINET网关&#xff0c;接入到一台西门子S7-1200PLC的Prof…

无涯教程-Lua - for语句函数

for 循环是一种重复控制结构&#xff0c;可让您有效地编写需要执行特定次数的循环。 for loop - 语法 Lua编程语言中 for 循环的语法如下- for init,max/min value, increment dostatement(s) end 这是 for 循环中的控制流程- 首先执行 init 步骤&#xff0c;并且仅执行一…

DT MAYA绑定

设置另外一边 控制器 结果 根骨骼 // 错误: line 0: 未应用冻结变换&#xff0c;因为 curve4.scaleX 被锁定。 骨骼旋转 轴向

关于latch up的重读

衬底电流容易导致寄生三极管导通(衬底电阻衬底电流》衬底压差)&#xff0c;更容易触发latchup&#xff1b; 一般常用的实际产品中会用衬底隔离的器件来做负压器件&#xff1b;用DNW&NBL组成一个隔离盆将整个负压区和正常电路分开&#xff0c;DNW&NBL接高电压&#xff1…

【福建事业单位-语言理解】03 语序选择-填空-接语

【福建事业单位-语言理解】03 语序选择-填空-接语 一、语句排序1.1 确定首句1.2 确定捆绑集团/确定局部顺序/确定尾句1.3确定尾句总结 二、语句填空题句子首句&#xff08;概括下文&#xff09;句尾&#xff08;总结前文/提对策&#xff09;句中&#xff08;承上启下&#xff0…

spring-bean配置信息重用(继承)和bean创建顺序是什么以及bean 对象的单例和多例讲解

&#x1f600;前言 本章是spring基于XML 配置bean系类中第5篇讲解spring-bean配置信息重用(继承)和bean创建顺序是什么以及bean 对象的单例和多例讲解 &#x1f3e0;个人主页&#xff1a;尘觉主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是尘觉&#xff0c;希…

Java-SPI机制详解

Java之SPI机制详解 1: SPI机制简介 SPI 全称是 Service Provider Interface&#xff0c;是一种 JDK 内置的动态加载实现扩展点的机制&#xff0c;通过 SPI 技术我们可以动态获取接口的实现类&#xff0c;不用自己来创建。这个不是什么特别的技术&#xff0c;只是 一种设计理念…

【MySQL】MVCC的实现原理

MVCC的实现原理 1.前期准备1.2.隐式字段1.3.undo log日志1.4.readView 2.MVCC的实现流程2.1.R C&#xff08;读已提交---隔离级别&#xff09;2.2.R R&#xff08;可重复读---隔离级别&#xff09; 3.面试题---->事务中的隔离性是如何保证的呢&#xff1f;(你解释一下MVCC) …

减少错误和重复工作:PDM系统的智能排错功能

减少错误和重复工作&#xff1a;PDM系统的智能排错功能 在产品开发和制造过程中&#xff0c;错误和重复工作常常是企业面临的挑战。这不仅浪费了宝贵的时间和资源&#xff0c;还可能导致产品质量下降和生产延误。PDM系统&#xff08;Product Data Management&#xff0c;产品数…

Jmeter阶梯式加压测试

熟悉阿里云性能测试PTS的都可以看到压测配置设置如下图&#xff0c;相比Jmeter简单的线程设置&#xff0c;要合理更直观。 但是我们会去研究&#xff0c;性能测试中&#xff0c;有时需要模拟一种实际生产中经常出现的情况&#xff0c; 即&#xff1a;从某个值开始不断增加压力…

【Linux】常用的基本指令

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章对…

matplotlib绘制方波圆周分解动画

1 方波的圆周分解 在学习傅里叶变换的时候&#xff0c;有一个经典的示例是方波的分解。我们知道&#xff0c;方波可以分解为无数个正弦波的叠加。而正弦波&#xff0c;又可以看作是圆周运动在一条直线上的投影。当时为了理解这个事情&#xff0c;恐怕大家也花了不少时间。 学…

【MyBtis】各种查询功能

目录 【MyBtis】配置和映射 11.1 示例:实现表数据的增、删、改、查 1.创建工程mybatis_DML demo 2.创建数据库操作的工具类&#xff1a;DBOperatorMgr.java 3.创建映射接口 4.创建XML映射文件 5.测试 【MyBtis】配置和映射 MyBatis 的真正强大之外在于它的映射语句&#xf…

jest单元测试的代码覆盖率显示不出来

jest.config.js配置文件 const path require(path)// 添加 verbose: true, testURL: http://localhost/module.exports {verbose: true,testURL: http://localhost/,rootDir: path.resolve(__dirname, ../../),moduleFileExtensions: [js,json,vue],moduleNameMapper: {^/(…

Java基础篇_1.4——程序流程控制之选择结构if语句

程序流程控制 关于程序控制的关键字&#xff1a; 程序控制关键字breakdowhileforcontinueswitchcasedefaultreturninstanceofifelse 程序运行时的一个顺序&#xff0c;程序的结构分为&#xff1a;顺序结构、选择结构和循环结构。 顺序结构是指按照代码的书写顺序执行。选择结…

如何手动创建EFI引导分区?

EFI系统分区是数据存储设备上的分区&#xff0c;供遵循统一可扩展固件接口的计算机使用。当计算机启动时&#xff0c;UEFI固件加载存储在可扩展系统分区上的文件&#xff0c;以启动安装的操作系统和各种实用程序。在GPT磁盘上启动Windows时&#xff0c;必须有EFI系统分区。如果…