9、Ubuntu安装Tomcat配置部署web

news2024/11/15 17:40:57

1、安装 Java

这里使用Ubuntu22.04 其他版本也差不多

tomcat是基于Java开发的,安装前需确保已经按照了jdk

apt update
apt install openjdk-8-jdk

验证是否按照成功

java -version

环境变量

 2、安装 Tomcat

下载链接
Tomcat: Apache Tomcat® - Apache Tomcat 8 Software Downloads

然后再终端输入:

但在这之前我们先在/usr/local建一个文件夹

cd /usr/local

mkdir tomcat

cd tomcat

复制这个链接

wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.84/bin/apache-tomcat-8.5.84.tar.gz

wget 后面是刚刚复制的链接
就开始下载了虽然有亿点点慢

我当然不会告诉你, 我是在Windows上下好了用MobaXterm传上去的

ll

解压Tomcat

下载完了就该解压了

 但在这之前我们先在/usr/local建一个文件夹

tar -zxvf apache-tomcat-8.5.84.tar.gz

ll

启动Tomcat服务器

./apache-tomcat-8.5.84/bin/startup.sh

如果不能执行, 就修改下权限

chmod -R 755 ./apache-tomcat-8.5.75

如果没报错那就是成功了

验证安装

这时候我们就可以打开浏览器访问一下
在浏览器地址栏而不是搜索框输入ip:8080
如果你在本机上布置的Tomcat那就是

localhost:8080

不出意外的话你将会看到

 如果没看到,欢迎给我留言或者在评论区讨论🤪

 右上方有三颗按钮如果你点一下的话,可能会看到:

 What? Access Denied
这是因为我们还没有修改配置文件, 这时候服务器还不认识他的主人

3、配置Tomcat帐号密码权限

修改tomcat下的配置文件 tomcat-users.xml

vim /usr/local/tomcat/apache-tomcat-8.5.84/conf/tomcat-users.xml

在末尾添加:

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

其中:username="tomcat" password="mypasswd"是你自定义的

重启一下 tomcat,再去访问应该就可以了, 如果不可以, 欢迎评论区讨论😉

./usr/local/tomcat/apache-tomcat-8.5.84/bin/shutdown.sh
./usr/local/tomcat/apache-tomcat-8.5.84/bin/startup.sh

但这样服务器重启了Tomcat 并不会跟着启动

4、配置Tomcat开机自启动

复制你bin下的catalina.sh文件到/etc/init.d目录下,ubuntu命令如下

cp /usr/local/tomcat/apache-tomcat-8.5.84/bin/catalina.sh /etc/init.d/

将你复制好的catalina.sh重命名

cd /etc/init.d/
mv catalina.sh tomcat

更改你复制的catalina.sh(重命名后是tomcat)

vim /etc/init.d/tomcat

这时候就需要知道JDK装在哪儿了

vim /etc/profile

CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.84
JAVA_HOME=/usr/local/jdk/jdk1.8.0_351

 

如果你的JDK装在其他位置(手动安装的), 就写你安装的位置

在 第一行 #!/bin/sh下面贴上如下代码,如果不贴将会报找不到LBS错误

### BEGIN INIT INFO
# Provides:         tangquanwei.top
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: tomcat service
# Description:       tomcat service daemon
### END INIT INFO

 

将tomcat加入自启动项

update-rc.d -f tomcat defaults

重启的服务器,再输入项目网址测试, 能打开就可以了不能的话,评论区

再然后就是最最重要的:

5、部署web项目

修改tomcat fonf目录下的server.xml

vim /usr/local/tomcat/apache-tomcat-8.5.84/conf/server.xml

在Engine节点内新添加 Host节点

<Host name="hello.top">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
             prefix="hello.top_access_log." suffix=".txt"
             pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      <Context path="" docBase="/root/workingItem/top.hello" />
</Host>

不同版本的tomcat配置可能稍有不同,可以参考下上面默认配置的
注意别把默认配置的删了,新添加一个节点就行

下面是默认配置

 

这里还有一个要注意的里面hello.top是我注册的域名, 你需要自行注册域名, 并做相应的ip映射
如果仅是本地测试, 可以修改本机的host文件, 添加记录:你的ip 域名 (比如 192.168.28.132 mycom.com) ,将mycom.com的访问映射到192.168.28.132这台服务器中

如果你不知道你的ip的话, 在控制台输入

ip addr

下面划红圈的就是你的ip

 现在就可以使用域名+端口访问网站了
比如上面192.168.28.132mycom.com,在地址栏输入

mycom.com:8080

就可以访问服务器上docBase=/root/workingItem/top.hello这个文件夹,如果文件夹里面没有东西也是会出错的, 但没有关系, 把文件放进去就好了
比如

在top.hello/ 这个目录里面

mkdir -p ./root/workingItem/top.hello
cd /root/workingItem/top.hello
touch index.html
echo 'Hola Tomcat' >> index.html

再访问就可以看见了

mytomcat.com:8080

修改端口

因为tomcat默认端口是8080而http的默认端口是80端口
为了避免访问的时候再输端口, 我们把tomcat的端口号改成80
还是在刚刚那个文件找到Connector节点把里面port改成80就可以了

vim /usr/local/tomcat/apache-tomcat-8.5.84/conf/server.xml

 

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

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

相关文章

Python备份网络设备配置实验-ensp

一、实验简介 实验拓扑 简介 本实验为物理主机(windows电脑)通过物理主机的环回口虚拟网卡与ENSP模拟器中的Cloud建立通信,再与Cloud下面连接的虚拟网络设备通信。从而实现物理主机上面的python脚本抓取ENSP中网络设备的配置信息,并保存在物理主机磁盘指定位置。 本实验…

零入门容器云实战之测试环境介绍、网盘、联系方式

本篇文章主要介绍: 对测试环境的要求介绍一下我的测试环境都有哪些设备&#xff0c;分享一下我在学习中是如何测试的。 1、网盘资源 我已经将相关资源上传到了网盘 零入门容器云网络实战 链接: https://pan.baidu.com/s/1nPLRkAwjItAHmtEU2T1F4g 提取码: rrpd 2、技术交流…

vue3实现一个抽奖小项目

前言 在公司年会期间我做了个抽奖小项目&#xff0c;我把它分享出来&#xff0c;有用得着的可以看下。浏览链接&#xff1a;http://xisite.top/original/luck-draw/index.html项目链接&#xff1a;https://gitee.com/xi1213/luck-draw (欢迎star!)项目截图&#xff1a; 实现目…

UNIAPP学习点滴记录

一、事件处理 1&#xff09;tap和click的区别 在HbuilderX中&#xff0c;两者都是点击时触发事件;不同的是: 1.click是组件被点击时触发&#xff0c;会有约300ms的延迟(内置处理优化了) 2.tap是手指触摸离开时触发&#xff0c;没有300ms的延迟&#xff0c;但是会员事件穿透…

两种分类方法的比较

一个物体既可以按照元素分类法去分类&#xff0c;也可以按照形态分类法去分类。但似乎很难用元素去分类形态&#xff0c;也很难用形态去分类元素。 想用元素分类形态就得加入位置变量。而所谓的位置变量显然是一种空间变量。是粒子在空间中&#xff0c;所以所谓的空间变量似乎…

SpringBoot学习笔记【part14】Spring Cache + Redis 集成缓存数据

Spring Cache 是一个非常优秀的缓存组件&#xff0c;方便切换各种底层Cache&#xff08;如&#xff1a;redis&#xff09; 使用Spring Cache的好处&#xff1a; 提供基本的Cache抽象&#xff0c;方便切换各种底层Cache&#xff1b;通过注解Cache可以实现类似于事务一样&#x…

基于MMdet的Cascade MASKRCNN 原理及源码解读

目录 一、原理 二、源码解读 1、总参数文件configs/cascade_rcnn/cascade_mask_rcnn_r50_fpn_1x_coco.py 2、模型配置字典../_base_/models/cascade_mask_rcnn_r50_fpn.py 3、基于检测器类搭建模型 CascadeRCNN 4、backbone&#xff08;ResNet&#xff09; 5、neck&am…

深度学习数据标注_Lableme

图像标注工具Lable labelme 是一款图像标注工具&#xff0c;主要用于神经网络构建前的数据集准备工作&#xff0c;因为是用 Python 写的&#xff0c;所以使用前需要先安装 Python 集成环境 anaconda。 anaconda 安装 anaconda下载地址如下&#xff1a; https://www.anaconda…

数据结构:循环链表、双向链表和有序表

1、循环链表 循环链表(circular linked list)是线性表的另一种形式的链式存储表示。它的特点是表中最后一个结点的指针域指向第一个结点,整个链表成为一个由链指针相链接的环。对于循环链表,通常还在表中第一个结点之前“附加”一个“头结点”,并令“头指针”指向最后一个结点…

【算法基础】基础算法之排序

&#x1f63d;PREFACE&#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐ 评论&#x1f4dd;&#x1f4e2;系列专栏&#xff1a;https://blog.csdn.net/weixin_59954106/category_12108349.html&#x1f4aa;种一棵树最好是十年前其次是现在目录 1.快排 步骤 思路方法 题目…

ABB机器人仿真软件robotstudio v6.08安装教程

ABB机器人仿真软件robotstudio v6.08安装教程 具体步骤可参考以下内容: 注意:安装之前,最好将电脑的名称改为英文,否则可能会安装不成功, 第1步:将下载的安装包解压缩, 第2步:找到解压后的文件中的RobotStudio6.08, 第3步:找到“setup.exe”, 第4步:软件正在…

Open3D 深度图像转点云数据(Python版本)

文章目录 一、简介二、代码实现三、实现效果测试数据参考文献一、简介 深度图像的获取有很多方式,如激光雷达、结构光以及深度相机等,网上很多教程都是在讲解通过深度相机所获取的深度图像转换为三维点云数据(相机内参、外参),但是通过激光雷达所生成的深度相机通常与相机…

数据分析-决策树

我们生活中遇到很多问题其实把他们抽象成一个数学模型&#xff0c;都可以抽象为一个决策树。&#xff08;比如打篮球&#xff09; 我们总是会经历两个阶段&#xff1a;构造、剪枝 构造 什么是构造呢&#xff1f;构造就是生成一棵完整的决策树。简单来说&#xff0c;构造的过程…

【MySQL基础】MySQL多表操作详解

序号系列文章4【MySQL基础】MySQL表的七大约束5【MySQL基础】字符集与校对集详解6【MySQL基础】MySQL单表操作详解7【MySQL基础】运算符及相关函数详解文章目录前言MySQL多表操作1&#xff0c;多表关系1.1&#xff0c;一对一1.2&#xff0c;一对多1.3&#xff0c;多对多2&#…

Prometheus 配置身份认证

Prometheus 版本 2.41.0 平台统一监控的介绍和调研直观感受PromQL及其数据类型PromQL之选择器和运算符PromQL之函数Prometheus 配置身份认证 Prometheus 使用默认方式安装是不带有身份证认证和TLS&#xff0c;需要单独配置开启。 Prometheus 配置文件为yaml格式&#xff0c;并…

【自然语言处理】文本表示(一):One-Hot、BOW、TF-IDF、N-Gram

文本表示&#xff08;一&#xff09;&#xff1a;One-Hot、BOW、TF-IDF、N-Gram1.One-Hot 编码 One-Hot 编码&#xff0c;又称 “独热编码”&#xff0c;是比较常用的文本特征提取方法。这种方法把每个词表示为一个很长的向量。这个向量的维度是词表大小&#xff0c;只有一个维…

4. 基础语法

1. 标识符 a. 第一个字符必须是字母表中字母或下划线 _&#xff1b; b. 标识符的其他的部分由字母、数字和下划线组成&#xff1b; c. 标识符对大小写敏感&#xff1b; 在 Python 3 中&#xff0c;可以用中文作为变量名&#xff0c;非 ASCII 标识符也是允许的&#xff1b; 2.…

【JavaGuide面试总结】计算机网络·中

【JavaGuide面试总结】计算机网络中1.说说断开连接 - TCP 四次挥手2.为什么要四次挥手&#xff1f;3.为什么不能把服务器发送的 ACK 和 FIN 合并起来&#xff0c;变成三次挥手&#xff1f;4.如果第二次挥手时服务器的 ACK 没有送达客户端&#xff0c;会怎样&#xff1f;5.为什么…

第五届字节跳动青训营 前端进阶学习笔记(五)CSS进阶

文章目录前言CSS的重要特性1.选择器特指度&#xff08;1&#xff09;选择器优先级&#xff08;2&#xff09;选择器特指度2.继承&#xff08;1&#xff09;默认继承&#xff08;2&#xff09;显式继承3.初始值4.CSS属性值的计算过程布局&#xff08;Layout&#xff09;1.布局相…

搜索?——P3956 [NOIP2017 普及组] 棋盘

传送门: [NOIP2017 普及组] 棋盘 - 洛谷 思路: 将棋盘的每一个格子看做一个点&#xff0c;建一个无向图用来跑最短路. 这道题本应用搜索来做&#xff0c;但是转换成最短路好像简单点 建图: 1.对于已经有颜色的格子&#xff0c;在扫描四个方向的格子对相同颜色的建条长度为0…