linux安装Tomcat部署jpress教程
yum在线安装:
查看tomcat相关的安装包:
[root@RHCE ~]# yum list | grep -i tomcat
tomcat.noarch 7.0.76-16.el7_9 @updates
tomcat-el-2.2-api.noarch 7.0.76-16.el7_9 @updates
tomcat-jsp-2.2-api.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
tomcat-admin-webapps.noarch 7.0.76-16.el7_9 updates
tomcat-docs-webapp.noarch 7.0.76-16.el7_9 updates
tomcat-javadoc.noarch 7.0.76-16.el7_9 updates
tomcat-jsvc.noarch 7.0.76-16.el7_9 updates
tomcatjss.noarch 7.2.5-1.el7 base
[root@RHCE ~]#
安装tomcat:
[root@RHCE ~]# yum install tomcat -y
[root@RHCE ~]# yum install tomcat-webapps.noarch -y
启动tomcat:
[root@RHCE ~]# systemctl start tomcat
[root@RHCE ~]# systemctl status tomcat.service
● tomcat.service - Apache Tomcat Web Application Container
Loaded: loaded (/usr/lib/systemd/system/tomcat.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2023-08-05 06:09:35 EDT; 1h 18min ago
Main PID: 2650 (java)
CGroup: /system.slice/tomcat.service
└─2650 /usr/lib/jvm/jre/bin/java -Djavax.sql.DataSource.Factory=org.a...Aug 05 06:09:41 RHCE server[2650]: Aug 05, 2023 6:09:41 AM org.apache.catalina...te
Aug 05 06:09:41 RHCE server[2650]: INFO: At least one JAR was scanned for TLDs...e.
Aug 05 06:09:42 RHCE server[2650]: Aug 05, 2023 6:09:42 AM org.apache.catalina...ry
Aug 05 06:09:42 RHCE server[2650]: INFO: Deployment of web application directo...ms
Aug 05 06:09:42 RHCE server[2650]: Aug 05, 2023 6:09:42 AM org.apache.coyote.A...rt
Aug 05 06:09:42 RHCE server[2650]: INFO: Starting ProtocolHandler ["http-bio-8080"]
Aug 05 06:09:42 RHCE server[2650]: Aug 05, 2023 6:09:42 AM org.apache.coyote.A...rt
Aug 05 06:09:42 RHCE server[2650]: INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Aug 05 06:09:42 RHCE server[2650]: Aug 05, 2023 6:09:42 AM org.apache.catalina...rt
Aug 05 06:09:42 RHCE server[2650]: INFO: Server startup in 3839 ms
Hint: Some lines were ellipsized, use -l to show in full.
检查端口号
[root@RHCE ~]# netstat -lnutp | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 2650/java
使用浏览器测试tomcat是否正常运行,输入主机ip和端口号
RPM包安装:
上传tomcat和jdk包组

安装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)
解压安装tomcat
[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
创建用户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
[root@localhost ~]# chown -R tomcat.tomcat /usr/local/tomcat/*
编辑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
编辑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"
启动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
通过浏览器测试受否能够打开

部署jpress
查看是否有足够的熵来产生随机数
[root@RHCE ~]# cat /proc/sys/kernel/random/entropy_avail
436
不够则安装rngd解决
[root@localhost ~]# yum install -y rng-tools
[root@localhost ~]# systemctl enable --now rngd
Tomcat Web管理功能(注意:需设置可访问管理主机的IP地址,确保安全)
配置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"/>
允许方式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.100.146" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

允许访问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.100.146" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

重启tomcat 浏览器访问访问

输入用户名和密码后出现如下界面

静态网页和动态网页的区别
1. 静态网页:
- 静态网页是由服务器上存储的预先创建好的HTML、CSS和JavaScript等静态文件组成的。
- 当用户请求访问静态网页时,服务器直接将保存在硬盘上的静态网页文件发送给用户的浏览器,并由浏览器解析和呈现网页内容。
- 静态网页内容在每次访问时都是相同的,不会根据用户或其他条件的变化而改变。
- 通常用于展示不需要频繁更新内容的网页,如公司介绍、产品展示等。
2. 动态网页:
- 动态网页的内容是根据用户请求或其他条件在服务器端动态生成的。
- 当用户请求访问动态网页时,服务器通过服务器端脚本处理用户请求,并从数据库中获取数据、进行计算等操作后,生成一个HTML网页文件,并将其发送给用户的浏览器进行解析和呈现。
- 动态网页的内容可以根据用户的特定需求、登录状态、交互操作或其他条件的变化而改变。
- 通常用于需要与用户交互、提供实时更新内容的网页,如社交媒体、电子商务网站等。
web1.0和2.0的区别
1.Web1.0是被动的信息消费模式,只允许用户在网站上接受信息,不能进行交互和参与;而Web2.0则是一种更加交互式的网络环境,用户可以像参与社交网络那样自由地发布、共享信息,并通过评论、点赞等方式与其他用户互动。
2.内容形式:Web1.0主要是静态页面,内容主要以文字、图片、声音和视频资料为主;而Web2.0则更注重多媒体交互效果,包括在线直播、社交分享、流畅的动画效果等。
3.技术手段:Web1.0采用的是前端开发技术如HTML、CSS和JavaScript,后端则主要是静态网页服务器(如Apache);而Web2.0则采用了更多的技术手段如AJAX、HTML5、WEB API等,能够更好地支持多媒体展示、即时通信、云计算等功能。
4.数据处理:Web1.0主要强调数据的呈现,网页信息的发布、分类、搜索等都是围绕着展示信息本身进行设计的;而Web2.0则更关注数据的处理和分析,用户行为数据、动态社交关系等成为业务中重要的一环。
相关文章:
linux安装Tomcat部署jpress教程
yum在线安装: 查看tomcat相关的安装包: [rootRHCE ~]# yum list | grep -i tomcat tomcat.noarch 7.0.76-16.el7_9 updates tomcat-el-2.2-api.noarch 7.0.76-16.el7_9 updat…...
高并发负载均衡---LVS
目录 前言 一:负载均衡概述 二:为啥负载均衡服务器这么快呢? 编辑 2.1 七层应用程序慢的原因 2.2 四层负载均衡器LVS快的原因 三:LVS负载均衡器的三种模式 3.1 NAT模式 3.1.1 什么是NAT模式 3.1.2 NAT模式实现LVS的缺点…...
微前端中的 CSS
本文为翻译 本文译者为 360 奇舞团前端开发工程师原文标题:CSS in Micro Frontends 原文作者:Florian Rappl 原文地址:https://dev.to/florianrappl/css-in-micro-frontends-4jai 我被问得最多的问题之一是如何在微前端中处理 CSS。毕竟&…...
在CSDN学Golang场景化解决方案(分布式日志系统)
一,传统 elk 解决方案及其弊端 传统ELK(Elasticsearch Logstash Kibana)方案是一种流行的分布式日志系统解决方案,但也存在一些弊端: 依赖性:ELK使用Java编写,需要安装JVM,并且还…...
电脑第一次使用屏幕键盘
操作流程 1.在键盘上同时按WinR打开运行; 2.输入control 3.找到设置中心 4.点击屏幕键盘 效果 具体怎么使用 我不咋清除 简单 测试了一下 可以用鼠标点击屏幕键盘的按键 用键盘 按字母键和数字键 是和屏幕键盘不同步的 其他 tab、shift、后退、enter好像同步...
【C#学习笔记】类型转换
文章目录 类型转换字符转数字GetNumericValueConvert.ToInt32隐式转换计算 字符串转数字Parse 或 TryParse 方法 字节数组转整数 as,is强制类型转换isas 用户定义的转换 类型转换 我们简单地将值类型分为5种:整数型,浮点型,布尔型…...
SpringBoot+SSM实战<一>:打造高效便捷的企业级Java外卖订购系统
文章目录 项目简介项目架构功能模块管理端用户端 技术选型用户层网关层应用层数据层工具 项目优缺点结语 黑马程序员最新Java项目实战《苍穹外卖》:让你轻松掌握SpringBootSSM的企业级开发技巧项目简介 《苍穹外卖》是一款为餐饮企业(餐厅、饭店&#x…...
笙默考试管理系统-MyExamTest--calculagraph
笙默考试管理系统-MyExamTest--calculagra(1) 目录 一、 笙默考试管理系统-MyExamTest--calculagra 二、 笙默考试管理系统-MyExamTest--calculagra 三、 笙默考试管理系统-MyExamTest--calculagra 四、 笙默考试管理系统-MyExamTest--calculagra …...
Mysql面试突击班索引,事务与锁
Mysql面试突击班索引,事务与锁 1.为什么Mysql要使用B树做为索引而不用B树 B树能显著减少IO次数,提高效率B树的查询效率更加稳定,因为数据放在叶子节点B树能提高范围查询的效率,因为叶子节点指向下一个叶子节点B树采取顺序读 2.…...
数据结构——AVL树
文章目录 一.AVL树的定义二.AVL树的插入三.插入后更新平衡因子四.AVL树的旋转1.左单旋2.右单旋3.先左单旋再右单旋4.先右单旋再左单旋 五.AVL树的性能分析六.检查是否满足AVL树七.源码 一.AVL树的定义 二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉…...
AI写作宝有哪些,分享两种AI写作工具
AI写作宝是一种基于人工智能技术的写作辅助工具。它可以根据用户输入的关键词和主题快速生成文章。AI写作宝可以为用户节省大量的时间和精力,帮助用户快速生成高质量的文章。今天就为大家推荐两款AI写作宝: 一、AI创作家 AI创作家是一款基于人工智能技…...
【uniapp 控制页面滑动速度】
可以使用 uni-app 提供的 onTouchMove 事件来控制页面滑动速度。 可以在 onTouchMove 事件方法中使用 event.deltaY 计算页面滑动的速度,然后根据需要来调整速度值,最后通过 event.preventDefault() 阻止默认的滑动行为,从而实现控制页面滑动…...
7-24 整数的分类处理 (20 分)
7-24 整数的分类处理 (20 分) 给定 N 个正整数,要求你从中得到下列三种计算结果: A1 能被 3 整除的最大整数 A2 存在整数 K 使之可以表示为 3K1 的整数的个数 A3 存在整数 K 使之可以表示为 3K2 的所有整数的平均值(精确到小数…...
MYSQL事务同时修改单条记录
疑问:Mysql多事务默认情况下,同时修改同一条记录运行修改吗?是否要手动加上for update行锁。 猜想:MySQL 会自动对涉及的数据行加上写锁(排他锁),以确保数据的一致性和隔离性。这是在默认的事务…...
安装skywalking并集成到微服务项目
文章目录 一、前言二、介绍1. 架构 三、安装skywalking服务端四、启动skywalking服务端五、微服务项目开发注册中心网关服务商品服务订单服务支付服务测试 六、下载java客户端七、微服务集成skywalking客户端1. idea启动2. 命令行启动3. 集成效果4. 服务实例5. 修改服务实例名称…...
一支笔,一双手,一道力扣(Leetcode)做一宿
文章目录 一、分享自己相关的经历二、分析可能存在的问题三、根据问题进行分解或建立思维导图四、分享好用的刷题网站并进行介绍 一、分享自己相关的经历 我是一名计算机专业的学生,之前在学习算法和数据结构时,对于简单题目还算能够顺利地刷过去。但是…...
Kubernetes(K8s)从入门到精通系列之九:使用kubeadm工具快速安装K8s集群
Kubernetes K8s从入门到精通系列之九:使用kubeadm工具快速安装K8s集群 一、安装kubeadm二、修改kubeadm的默认配置三、下载K8s相关镜像四、运行kubeadm imit命令安装Master节点五、将新的Node加入集群六、安装CNI网络插件七、验证K8s集群是否工作正常八、搭建高可用K8s集群详细…...
RabbitMQ 教程 | 第11章 RabbitMQ 扩展
👨🏻💻 热爱摄影的程序员 👨🏻🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻🏫 一位高冷无情的编码爱好者 大家好,我是 DevO…...
一分钟完成centos7安装docker
action: 1、下载安装包2、安装docker 1、背景 使用CentOS / Redhat 7 版本的应该偏多。但是,Docker CE在系统中安装的时候,往往会出现一堆依赖包的报错,解决依赖包需要耗费不短的时间。 经验证,目前已找到兼容能力强的版本&am…...
NativePHP:使用PHP构建跨平台桌面应用的新框架
NativePHP是一个用于使用PHP构建桌面应用的框架。它允许PHP开发人员使用熟悉的工具和技术创建跨平台的原生应用。NativePHP具有一系列易于使用的类,一套用于构建和打包应用程序的工具以及一个静态跨平台PHP运行时。 官网地址:https://nativephp.comNati…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
