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…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...