一.yum包安装Tomcat
-
centos系统
1.安装相关软件包
[root@centos7 ~]#yum -y install tomcat tomcat-webapps tomcat-admin-webapps tomcat-docs-webapp
2.将服务设为自启动
[root@centos7 ~]#systemctl enable --now tomcat
Created symlink from/etc/systemd/system/multi-user.target.wants/tomcat.service
to/usr/lib/systemd/system/tomcat.service.
3.查看端口信息
[root@centos7 ~]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 100 [::]:8009 [::]:*
LISTEN 0 100 [::]:8080 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 100 [::1]:25 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 [::]:*
#CentOS 7 yum仓库源中自带的Tomcat 7.0版本安装,此方式安装tomcat版本较低,不推荐
-
rocky系统
1.安装相关软件包
[root@rocky8 ~]#yum -y install tomcat tomcat-admin-webapps tomcat-docs-webapp tomcat-webapps
2.将服务设为自启动
[root@rocky8 ~]#systemctl enable --now tomcat.service
3.查看端口信息
[root@rocky8 ~]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 100 [::]:8009 [::]:*
LISTEN 0 100 [::]:8080 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 100 [::1]:25 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 [::]:*
-
ubuntu系统
1.安装相关软件包
[root@ubuntu2204 ~]#apt update;apt -y install tomcat9 tomcat9-admin tomcat9- docs tomcat9-examples
#ubuntu系统安装服务会自动启动,无需手动启动
2.查看端口信息
[root@ubuntu2204 ~]#ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 100 [::]:8009 [::]:*
LISTEN 0 100 [::]:8080 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 100 [::1]:25 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 [::]:*
二.二进制安装Tomcat
注意: #安装tomcat 前必须先部署JDK
#安装Tomcat之前先安装Java
-
centos系统下部署java环境
1.安装 java-11-openjdk
[root@tomcat ~]#yum -y install java-11-openjdk.x86_64
2.查看版本信息
[root@tomcat ~]# java -version
openjdk version "11.0.22" 2024-01-16 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.22.0.7-1.el7_9) (build 11.0.22+7-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.22.0.7-1.el7_9) (build 11.0.22+7-LTS, mixed mode, sharing)
-
ubuntu系统下部署java环境
1.更新并安装相关软件包
[root@ubuntu1804 ~]#apt update
[root@ubuntu1804 ~]#apt -y install openjdk-8-jdk
2.查看版本信息
[root@ubuntu1804 ~]#java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-8u242-b08-0ubuntu3~18.04-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
-
测试编译运行java程序
1.安装相关软件包
[root@centos7 ~]#dnf -y install java-1.8.0-openjdk-devel
2.编写java代码
[root@centos8 ~]#cat Hello.java
class Hello{
public static void main(String[] args)
{
System.out.println("hello, world");
}
}
3.编译成字节码
[root@centos7 ~]#javac Hello.java
[root@centos7 ~]#ll Hello.*
-rw-r--r-- 1 root root 416 Oct 24 13:00 Hello.class
-rw-r--r-- 1 root root 130 Aug 22 23:38 Hello.java
4.查看文件类型
[root@centos8 ~]#file Hello.class
Hello.class: compiled Java class data, version 52.0 (Java 1.8)
5.运行java程序
[root@centos8 ~]#java Hello
hello, world
-
安装过程
1.下载源码
[root@centos7 ~]# wget
2.解压
[root@centos7 ~]#tar xf apache-tomcat-10.1.19.tar.gz -C /usr/local
3.切换目录并创建软连接
[root@centos7 ~]# cd /usr/local/
[root@centos7 local]# ln -s apache-tomcat-10.1.19/ tomcat
4.指定PATH变量
[root@centos7 local]# echo 'PATH=/usr/local/tomcat/bin:$PATH' >/etc/profile.d/tomcat.sh
[root@centos7 local]# . /etc/profile.d/tomcat.sh
[root@centos7 local]# echo $PATH
/usr/local/tomcat/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
#查看当前变量设置和命令用法
[root@centos7 ~]#catalina.sh
#查看环境变量和版本信息
[root@centos7 ~]#catalina.sh version
5.启动Tomcat并查看端口
第一种方式:
[root@centos7 local]# startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
第二种方式:
[root@centos7 local]# catalina.sh start
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
查看端口:
[root@centos7 local]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 100 [::]:8080 [::]:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 100 [::1]:25 [::]:*
LISTEN 0 1 [::ffff:127.0.0.1]:8005 [::]:*
6.关闭Tomcat并查看端口
第一种方式:
[root@centos7 local]# shutdown.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
第二种方式:
[root@centos7 local]# catalina.sh stop
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
查看端口:
[root@centos7 local]# ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 [::]:22 [::]:*
LISTEN 0 100 [::1]:25 [::]:*
三.tomcat目录结构
目录 | 说明 |
bin | 服务启动、停止等相关程序和文件 |
conf | 配置文件 |
lib | 库目录 |
logs | 日志目录 |
webapps | 应用程序,应用部署目录 |
work | jsp编译后的结果文件,建议提前预热访问,升级应用后,删除此目录数据才能更新 |
-
work目录解析:
1.查看目录
[root@centos8 tomcat]#tree work/Catalina/localhost/
work/Catalina/localhost/
├── docs
├── examples
├── host-manager
├── manager
└── ROOT
5 directories, 0 files
2.访问tomcat服务端
[root@centos7 tomcat]#curl http://10.0.0.108:8080/
3.再次查看目录
#当访问过后,work目录中生成新文件
[root@centos8 tomcat]#tree work/Catalina/localhost/ work/Catalina/localhost/
├── docs
├── examples
├── host-manager
├── manager
└── ROOT
└── org
└── apache
└── jsp
├── index_jsp.class #字节码文件
└── index_jsp.java #servlet文件
#tomcat会自动的将jsp文件生成java源文件,再编译成class文件
[root@centos8 tomcat]#less
work/Catalina/localhost/ROOT/org/apache/jsp/index_jsp.java
/*
* Generated by the Jasper component of Apache Tomcat
* Version: Apache Tomcat/8.5.50
* Generated at: 2020-02-09 03:20:20 UTC
* Note: The last modified time of this file was set to
* the last modified time of the source file after
* generation to assist with modification tracking.
*/
package org.apache.jsp;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent, org.apache.jasper.runtime.JspSourceImports {
private static final javax.servlet.jsp.JspFactory _jspxFactory = javax.servlet.jsp.JspFactory.getDefaultFactory();
private static java.util.Map _jspx_dependants;
四.配置 tomcat 自启动的 service 文件
1.创建tomcat专用账户
[root@centos7 local]# useradd -r -s /sbin/nologin tomcat
useradd:用户“tomcat”已存在
#useradd -s:指定用户登录的shell
#/sbin/nologin:shell类型中的一种,作用是禁止用户登录
2.准备service文件中相关环境文件
[root@centos7 ~]#vim /usr/local/tomcat/conf/tomcat.conf
[root@centos7 ~]#cat /usr/local/tomcat/conf/tomcat.conf
#下面两个变量至少设置一项才能启动 tomcat
JAVA_HOME=/usr/local/jdk
JRE_HOME=/usr/local/jdk/jre
#如果不指定上面变量,/var/log/messages文件中会出现下面无法启动错误提示:
Mar 15 14:30:09 centos8 startup.sh[1530]: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined Mar 15 14:30:09 centos8 startup.sh[1530]: At least one of these environment variable is needed to run this program
3.修改权限
[root@centos7 ~]#chown -R tomcat.tomcat /usr/local/tomcat/
#第1步和第3步的目的:为tomcat服务创建一个用户,禁止此用户登录,修改配置文件的属主和属组为tomcat用户,除管理员root外,其它用户将无法修改配置文件,提高了安全性
4.创建并配置tomcat.service文件
[root@centos7 ~]#vim /lib/systemd/system/tomcat.service
[root@centos8 ~]#cat /lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat #After=syslog.target network.target remote-fs.target nss-lookup.target After=syslog.target network.target
[Service]
Type=forking
#以下二选一
EnvironmentFile=/usr/local/tomcat/conf/tomcat.conf
#或者,如果没有创建上面的/usr/local/tomcat/conf/tomcat.conf文件,可以加下面一行也可
Environment=JAVA_HOME=/usr/local/jdk ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh PrivateTmp=true User=tomcat Group=tomcat
[Install]
WantedBy=multi-user.target
5.重载配置
[root@centos7 ~]#systemctl daemon-reload
6.将tomcat服务设为自启动
[root@centos8 ~]#systemctl enable --now tomcat
Created symlink /etc/systemd/system/multi-user.target.wants/tomcat.service →
/usr/lib/systemd/system/tomcat.service.
7.查看服务状态
[root@centos7 ~]#systemctl status tomcat
● tomcat.service - Tomcat
Loaded: loaded (/usr/lib/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: active (running) since 五 2022-12-09 00:27:55 CST; 21min ago
Process: 1801 ExecStart=/usr/local/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 1815 (java)
CGroup: /system.slice/tomcat.service
└─1815 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logg...
12月 09 00:27:55 tomcat systemd[1]: Starting Tomcat...
12月 09 00:27:55 tomcat systemd[1]: Started Tomcat.