tomcat介绍、配置和使用

1、tomcat介绍

官方介绍文档 https://tomcat.apache.org/tomcat-10.1-doc/introduction.html

Apache Tomcat(通常简称为Tomcat)是一个开源的Java Servlet容器,属于Apache软件基金会的一个项目。它提供了一个实现了Java Servlet和JavaServer Pages(JSP)等Java EE规范的运行环境,使得Java应用程序可以在Web服务器上运行。

以下是关于Tomcat的一些主要特点和信息:

Servlet容器: Tomcat主要用于执行Java Servlet,这是一种服务器端的Java程序,用于处理客户端请求并生成动态的Web内容。Servlets是Java EE平台的一部分,它们通过Tomcat提供的环境来运行。

JSP支持: Tomcat支持JavaServer Pages(JSP),这是一种在Java代码中嵌入HTML的技术,使得开发者可以更轻松地创建动态Web页面。Tomcat负责解释和执行JSP页面。

开源: Tomcat是一个开源项目,遵循Apache License。这意味着它是免费可用的,并且用户可以自由地查看、修改和分发源代码。

轻量级: Tomcat被设计为一个轻量级的Servlet容器,其核心重点是提供简洁、高效的Java Web应用程序运行环境。它注重性能和资源效率。

模块化: Tomcat是模块化的,允许用户根据需要添加或删除特定的功能。用户可以根据应用程序的需求选择性地启用或禁用不同的组件。

跨平台: Tomcat是跨平台的,可以在各种操作系统上运行,包括Windows、Linux、macOS等。

扫描二维码关注公众号,回复: 17324782 查看本文章

易于部署: Tomcat提供了简单而有效的部署机制,可以通过将Web应用程序的WAR(Web Application Archive)文件放置在指定目录来轻松地部署应用程序。

管理工具: Tomcat包含了用于管理和监视服务器的一些实用工具。这包括Web应用程序管理、连接池管理、日志查看等。

可扩展性: Tomcat是可扩展的,支持各种扩展和插件。用户可以通过添加第三方组件或插件来扩展Tomcat的功能。

总体而言,Tomcat是一个广泛用于托管Java Web应用程序的开源Servlet容器,它的简单性、轻量级和可扩展性使其成为Java开发者首选的Web服务器之一。

2、tomcat安装、配置、文件目录

官方安装文档 https://tomcat.apache.org/tomcat-10.1-doc/setup.html

2.1、下载tomcat

根据需要选取tomcat版本

在这里插入图片描述

本例下载tomcat 9.0.84
下载链接: https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gz

文件名:apache-tomcat-9.0.84.tar.gz
sha512:85a42ab5e7e4cb1923888e96a78a0f277a870d06e76147a95457878c124001c9a317eade4ad69c249a460ffe2cbefe894022b84389cdf33038bc456e3699c8e3

2.2、设置环境变量

使用centos 7.6 安装apache-tomcat-9.0.84.tar.gz
把apache-tomcat-9.0.84.tar.gz 上传到 /root/package/tomcat 目录下

cd /root/package/tomcat
tar -xzvf apache-tomcat-9.0.84.tar.gz -C /usr/local
cd /usr/local
ln -s apache-tomcat-9.0.84/ tomcat

设置java环境变量
在/etc/profile最后面添加2行(/usr/local/jdk1.8.0_202 是JDK根目录)

JAVA_HOME=/usr/local/jdk1.8.0_202
PATH=$JAVA_HOME/bin:$PATH

设置CATALINA_HOME环境变量
在/etc/profile最后面添加一行

CATALINA_HOME=/usr/local/tomcat

在这里插入图片描述

source /etc/profile

2.3、编译安装jsvc binary (linux上tomcat运行的必要库)

编译安装jsvc binary (linux上tomcat运行的必要库)

cd $CATALINA_HOME/bin
tar xvfz commons-daemon-native.tar.gz
cd commons-daemon-1.3.4-native-src/unix
./configure
make
cp jsvc ../..
cd ../..

编译安装jsvc binary的命令记录

[root@centos bin]# cd $CATALINA_HOME/bin
[root@centos bin]# 
[root@centos bin]# tar xvfz commons-daemon-native.tar.gz
commons-daemon-1.3.4-native-src/LICENSE.txt
commons-daemon-1.3.4-native-src/NOTICE.txt
commons-daemon-1.3.4-native-src/RELEASE-NOTES.txt
commons-daemon-1.3.4-native-src/unix/
commons-daemon-1.3.4-native-src/unix/man/
commons-daemon-1.3.4-native-src/unix/native/
commons-daemon-1.3.4-native-src/unix/support/
commons-daemon-1.3.4-native-src/unix/INSTALL.txt
commons-daemon-1.3.4-native-src/unix/Makedefs.in
commons-daemon-1.3.4-native-src/unix/Makefile.in
commons-daemon-1.3.4-native-src/unix/configure.in
commons-daemon-1.3.4-native-src/unix/man/README.txt
commons-daemon-1.3.4-native-src/unix/man/jsvc.1.xml
commons-daemon-1.3.4-native-src/unix/native/.indent.pro
commons-daemon-1.3.4-native-src/unix/native/Makefile.in
commons-daemon-1.3.4-native-src/unix/native/arguments.c
commons-daemon-1.3.4-native-src/unix/native/arguments.h
commons-daemon-1.3.4-native-src/unix/native/debug.c
commons-daemon-1.3.4-native-src/unix/native/debug.h
commons-daemon-1.3.4-native-src/unix/native/dso-dlfcn.c
commons-daemon-1.3.4-native-src/unix/native/dso-dyld.c
commons-daemon-1.3.4-native-src/unix/native/dso.h
commons-daemon-1.3.4-native-src/unix/native/help.c
commons-daemon-1.3.4-native-src/unix/native/help.h
commons-daemon-1.3.4-native-src/unix/native/home.c
commons-daemon-1.3.4-native-src/unix/native/home.h
commons-daemon-1.3.4-native-src/unix/native/java.c
commons-daemon-1.3.4-native-src/unix/native/java.h
commons-daemon-1.3.4-native-src/unix/native/jsvc-unix.c
commons-daemon-1.3.4-native-src/unix/native/jsvc.h
commons-daemon-1.3.4-native-src/unix/native/location.c
commons-daemon-1.3.4-native-src/unix/native/location.h
commons-daemon-1.3.4-native-src/unix/native/locks.c
commons-daemon-1.3.4-native-src/unix/native/locks.h
commons-daemon-1.3.4-native-src/unix/native/replace.c
commons-daemon-1.3.4-native-src/unix/native/replace.h
commons-daemon-1.3.4-native-src/unix/native/signals.c
commons-daemon-1.3.4-native-src/unix/native/signals.h
commons-daemon-1.3.4-native-src/unix/native/version.h
commons-daemon-1.3.4-native-src/unix/support/apfunctions.m4
commons-daemon-1.3.4-native-src/unix/support/apjava.m4
commons-daemon-1.3.4-native-src/unix/support/apsupport.m4
commons-daemon-1.3.4-native-src/unix/support/config.guess
commons-daemon-1.3.4-native-src/unix/support/config.sub
commons-daemon-1.3.4-native-src/unix/configure
commons-daemon-1.3.4-native-src/unix/man/fetch.sh
commons-daemon-1.3.4-native-src/unix/support/buildconf.sh
commons-daemon-1.3.4-native-src/unix/support/install.sh
commons-daemon-1.3.4-native-src/windows/
commons-daemon-1.3.4-native-src/windows/apps/
commons-daemon-1.3.4-native-src/windows/apps/prunmgr/
commons-daemon-1.3.4-native-src/windows/apps/prunsrv/
commons-daemon-1.3.4-native-src/windows/include/
commons-daemon-1.3.4-native-src/windows/resources/
commons-daemon-1.3.4-native-src/windows/src/
commons-daemon-1.3.4-native-src/windows/xdocs/
commons-daemon-1.3.4-native-src/windows/README.txt
commons-daemon-1.3.4-native-src/windows/apps/prunmgr/Makefile
commons-daemon-1.3.4-native-src/windows/apps/prunmgr/prunmgr.c
commons-daemon-1.3.4-native-src/windows/apps/prunmgr/prunmgr.h
commons-daemon-1.3.4-native-src/windows/apps/prunmgr/prunmgr.manifest
commons-daemon-1.3.4-native-src/windows/apps/prunsrv/Makefile
commons-daemon-1.3.4-native-src/windows/apps/prunsrv/prunsrv.c
commons-daemon-1.3.4-native-src/windows/apps/prunsrv/prunsrv.h
commons-daemon-1.3.4-native-src/windows/apps/prunsrv/prunsrv.manifest
commons-daemon-1.3.4-native-src/windows/include/Makefile.inc
commons-daemon-1.3.4-native-src/windows/include/apxwin.h
commons-daemon-1.3.4-native-src/windows/include/cmdline.h
commons-daemon-1.3.4-native-src/windows/include/console.h
commons-daemon-1.3.4-native-src/windows/include/gui.h
commons-daemon-1.3.4-native-src/windows/include/handles.h
commons-daemon-1.3.4-native-src/windows/include/javajni.h
commons-daemon-1.3.4-native-src/windows/include/log.h
commons-daemon-1.3.4-native-src/windows/include/registry.h
commons-daemon-1.3.4-native-src/windows/include/rprocess.h
commons-daemon-1.3.4-native-src/windows/include/security.h
commons-daemon-1.3.4-native-src/windows/include/service.h
commons-daemon-1.3.4-native-src/windows/resources/license.rtf
commons-daemon-1.3.4-native-src/windows/src/cmdline.c
commons-daemon-1.3.4-native-src/windows/src/console.c
commons-daemon-1.3.4-native-src/windows/src/gui.c
commons-daemon-1.3.4-native-src/windows/src/handles.c
commons-daemon-1.3.4-native-src/windows/src/javajni.c
commons-daemon-1.3.4-native-src/windows/src/log.c
commons-daemon-1.3.4-native-src/windows/src/mclib.c
commons-daemon-1.3.4-native-src/windows/src/mclib.h
commons-daemon-1.3.4-native-src/windows/src/private.h
commons-daemon-1.3.4-native-src/windows/src/registry.c
commons-daemon-1.3.4-native-src/windows/src/rprocess.c
commons-daemon-1.3.4-native-src/windows/src/security.c
commons-daemon-1.3.4-native-src/windows/src/service.c
commons-daemon-1.3.4-native-src/windows/src/utils.c
commons-daemon-1.3.4-native-src/windows/xdocs/index.xml
commons-daemon-1.3.4-native-src/windows/apps/prunmgr/prunmgr.rc
commons-daemon-1.3.4-native-src/windows/apps/prunsrv/prunsrv.rc
commons-daemon-1.3.4-native-src/windows/resources/commons.bmp
commons-daemon-1.3.4-native-src/windows/resources/procrunr.ico
commons-daemon-1.3.4-native-src/windows/resources/procruns.ico
commons-daemon-1.3.4-native-src/windows/resources/procrunw.ico
commons-daemon-1.3.4-native-src/windows/resources/susers.bmp
[root@centos bin]# ls -l
total 908
-rw-r-----. 1 root root  35467 Dec  8 03:27 bootstrap.jar
-rw-r-----. 1 root root  16856 Dec  8 03:27 catalina.bat
-rwxr-x---. 1 root root  25323 Dec  8 03:27 catalina.sh
-rw-r-----. 1 root root   1664 Dec  8 03:27 catalina-tasks.xml
-rw-r-----. 1 root root   2123 Dec  8 03:27 ciphers.bat
-rwxr-x---. 1 root root   1997 Dec  8 03:27 ciphers.sh
drwxr-xr-x. 4 root root   4096 Jan  7 23:03 commons-daemon-1.3.4-native-src
-rw-r-----. 1 root root  25661 Dec  8 03:27 commons-daemon.jar
-rw-r-----. 1 root root 214214 Dec  8 03:27 commons-daemon-native.tar.gz
-rw-r-----. 1 root root   2040 Dec  8 03:27 configtest.bat
-rwxr-x---. 1 root root   1922 Dec  8 03:27 configtest.sh
-rwxr-x---. 1 root root   9100 Dec  8 03:27 daemon.sh
-rw-r-----. 1 root root   2091 Dec  8 03:27 digest.bat
-rwxr-x---. 1 root root   1965 Dec  8 03:27 digest.sh
-rw-r-----. 1 root root   3606 Dec  8 03:27 makebase.bat
-rwxr-x---. 1 root root   3382 Dec  8 03:27 makebase.sh
-rw-r-----. 1 root root   3814 Dec  8 03:27 setclasspath.bat
-rwxr-x---. 1 root root   4317 Dec  8 03:27 setclasspath.sh
-rw-r-----. 1 root root   2020 Dec  8 03:27 shutdown.bat
-rwxr-x---. 1 root root   1902 Dec  8 03:27 shutdown.sh
-rw-r-----. 1 root root   2022 Dec  8 03:27 startup.bat
-rwxr-x---. 1 root root   1904 Dec  8 03:27 startup.sh
-rw-r-----. 1 root root  49609 Dec  8 03:27 tomcat-juli.jar
-rw-r-----. 1 root root 438209 Dec  8 03:27 tomcat-native.tar.gz
-rw-r-----. 1 root root   4576 Dec  8 03:27 tool-wrapper.bat
-rwxr-x---. 1 root root   5540 Dec  8 03:27 tool-wrapper.sh
-rw-r-----. 1 root root   2026 Dec  8 03:27 version.bat
-rwxr-x---. 1 root root   1908 Dec  8 03:27 version.sh
[root@centos bin]# cd commons-daemon-1.3.4-native-src
[root@centos commons-daemon-1.3.4-native-src]# ls -l
total 28
-rw-rw-r--. 1 root root 11358 Apr 23  2023 LICENSE.txt
-rw-rw-r--. 1 root root   175 Apr 23  2023 NOTICE.txt
-rw-rw-r--. 1 root root  1749 Apr 23  2023 RELEASE-NOTES.txt
drwxrwxr-x. 5 root root  4096 Apr 23  2023 unix
drwxrwxr-x. 7 root root  4096 Apr 23  2023 windows
[root@centos commons-daemon-1.3.4-native-src]# cd unix/
[root@centos unix]# ls -l
total 180
-rwxrwxr-x. 1 root root 147628 Apr 23  2023 configure
-rw-rw-r--. 1 root root   5038 Apr 23  2023 configure.in
-rw-rw-r--. 1 root root   2598 Apr 23  2023 INSTALL.txt
-rw-rw-r--. 1 root root   1081 Apr 23  2023 Makedefs.in
-rw-rw-r--. 1 root root   1110 Apr 23  2023 Makefile.in
drwxrwxr-x. 2 root root   4096 Jan  7 23:03 man
drwxrwxr-x. 2 root root   4096 Jan  7 23:03 native
drwxrwxr-x. 2 root root   4096 Jan  7 23:03 support
[root@centos unix]# ./configure 
*** Current host ***
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking cached host system type... ok
*** C-Language compilation tools ***
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... -std=gnu11
checking for ranlib... ranlib
checking for strip... strip
*** Host support ***
checking C flags dependant on host system type... ok
*** Java compilation tools ***
checking for JDK location... /usr/local/jdk1.8.0_202
checking for JDK os include directory...  linux
gcc flags added
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for sys/capability.h... no
configure: WARNING: cannot find headers for libcap
*** Writing output files ***
configure: creating ./config.status
config.status: creating Makefile
config.status: creating Makedefs
config.status: creating native/Makefile
*** All done ***
Now you can issue "make"
[root@centos unix]# ls -l
total 240
-rw-r--r--. 1 root root  21923 Jan  7 23:04 config.log
-rwxr-xr-x. 1 root root     58 Jan  7 23:04 config.nice
-rwxr-xr-x. 1 root root  24479 Jan  7 23:04 config.status
-rwxrwxr-x. 1 root root 147628 Apr 23  2023 configure
-rw-rw-r--. 1 root root   5038 Apr 23  2023 configure.in
-rw-rw-r--. 1 root root   2598 Apr 23  2023 INSTALL.txt
-rw-r--r--. 1 root root   1209 Jan  7 23:04 Makedefs
-rw-rw-r--. 1 root root   1081 Apr 23  2023 Makedefs.in
-rw-r--r--. 1 root root   1110 Jan  7 23:04 Makefile
-rw-rw-r--. 1 root root   1110 Apr 23  2023 Makefile.in
drwxrwxr-x. 2 root root   4096 Jan  7 23:03 man
drwxrwxr-x. 2 root root   4096 Jan  7 23:04 native
drwxrwxr-x. 2 root root   4096 Jan  7 23:03 support
[root@centos unix]# make
(cd native; make  all)
make[1]: Entering directory `/usr/local/apache-tomcat-9.0.84/bin/commons-daemon-1.3.4-native-src/unix/native'
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c jsvc-unix.c -o jsvc-unix.o
jsvc-unix.c: In function ‘run_controller’:
jsvc-unix.c:1311:20: warning: assignment from incompatible pointer type [enabled by default]
     act.sa_handler = controller;
                    ^
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c arguments.c -o arguments.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c debug.c -o debug.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c dso-dlfcn.c -o dso-dlfcn.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c dso-dyld.c -o dso-dyld.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c help.c -o help.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c home.c -o home.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c java.c -o java.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c location.c -o location.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c replace.c -o replace.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c locks.c -o locks.o
gcc -std=gnu11 -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"amd64\" -Wall -Wstrict-prototypes   -I/usr/local/jdk1.8.0_202/include -I/usr/local/jdk1.8.0_202/include/linux -c signals.c -o signals.o
ar cr libservice.a arguments.o debug.o dso-dlfcn.o dso-dyld.o help.o home.o java.o location.o replace.o locks.o signals.o
ranlib libservice.a
gcc -std=gnu11   jsvc-unix.o libservice.a -ldl -lpthread -o ../jsvc
make[1]: Leaving directory `/usr/local/apache-tomcat-9.0.84/bin/commons-daemon-1.3.4-native-src/unix/native'
[root@centos unix]# ls -l
total 416
-rw-r--r--. 1 root root  21923 Jan  7 23:04 config.log
-rwxr-xr-x. 1 root root     58 Jan  7 23:04 config.nice
-rwxr-xr-x. 1 root root  24479 Jan  7 23:04 config.status
-rwxrwxr-x. 1 root root 147628 Apr 23  2023 configure
-rw-rw-r--. 1 root root   5038 Apr 23  2023 configure.in
-rw-rw-r--. 1 root root   2598 Apr 23  2023 INSTALL.txt
-rwxr-xr-x. 1 root root 180080 Jan  7 23:05 jsvc
-rw-r--r--. 1 root root   1209 Jan  7 23:04 Makedefs
-rw-rw-r--. 1 root root   1081 Apr 23  2023 Makedefs.in
-rw-r--r--. 1 root root   1110 Jan  7 23:04 Makefile
-rw-rw-r--. 1 root root   1110 Apr 23  2023 Makefile.in
drwxrwxr-x. 2 root root   4096 Jan  7 23:03 man
drwxrwxr-x. 2 root root   4096 Jan  7 23:05 native
drwxrwxr-x. 2 root root   4096 Jan  7 23:03 support
[root@centos unix]# ls -l jsvc 
-rwxr-xr-x. 1 root root 180080 Jan  7 23:05 jsvc
[root@centos unix]# cp jsvc ../..
[root@centos unix]# cd ../..
[root@centos bin]# ls -l
total 1084
-rw-r-----. 1 root root  35467 Dec  8 03:27 bootstrap.jar
-rw-r-----. 1 root root  16856 Dec  8 03:27 catalina.bat
-rwxr-x---. 1 root root  25323 Dec  8 03:27 catalina.sh
-rw-r-----. 1 root root   1664 Dec  8 03:27 catalina-tasks.xml
-rw-r-----. 1 root root   2123 Dec  8 03:27 ciphers.bat
-rwxr-x---. 1 root root   1997 Dec  8 03:27 ciphers.sh
drwxr-xr-x. 4 root root   4096 Jan  7 23:03 commons-daemon-1.3.4-native-src
-rw-r-----. 1 root root  25661 Dec  8 03:27 commons-daemon.jar
-rw-r-----. 1 root root 214214 Dec  8 03:27 commons-daemon-native.tar.gz
-rw-r-----. 1 root root   2040 Dec  8 03:27 configtest.bat
-rwxr-x---. 1 root root   1922 Dec  8 03:27 configtest.sh
-rwxr-x---. 1 root root   9100 Dec  8 03:27 daemon.sh
-rw-r-----. 1 root root   2091 Dec  8 03:27 digest.bat
-rwxr-x---. 1 root root   1965 Dec  8 03:27 digest.sh
-rwxr-xr-x. 1 root root 180080 Jan  7 23:05 jsvc
-rw-r-----. 1 root root   3606 Dec  8 03:27 makebase.bat
-rwxr-x---. 1 root root   3382 Dec  8 03:27 makebase.sh
-rw-r-----. 1 root root   3814 Dec  8 03:27 setclasspath.bat
-rwxr-x---. 1 root root   4317 Dec  8 03:27 setclasspath.sh
-rw-r-----. 1 root root   2020 Dec  8 03:27 shutdown.bat
-rwxr-x---. 1 root root   1902 Dec  8 03:27 shutdown.sh
-rw-r-----. 1 root root   2022 Dec  8 03:27 startup.bat
-rwxr-x---. 1 root root   1904 Dec  8 03:27 startup.sh
-rw-r-----. 1 root root  49609 Dec  8 03:27 tomcat-juli.jar
-rw-r-----. 1 root root 438209 Dec  8 03:27 tomcat-native.tar.gz
-rw-r-----. 1 root root   4576 Dec  8 03:27 tool-wrapper.bat
-rwxr-x---. 1 root root   5540 Dec  8 03:27 tool-wrapper.sh
-rw-r-----. 1 root root   2026 Dec  8 03:27 version.bat
-rwxr-x---. 1 root root   1908 Dec  8 03:27 version.sh
[root@centos bin]# 

2.4、运行tomcat

编辑配置文件

cp /usr/local/tomcat/conf/server.xml /usr/local/tomcat/conf/server.xml.bak
vi /usr/local/tomcat/conf/server.xml

查找 Connector port
更改前

在这里插入图片描述

更改后

在这里插入图片描述

配置开机自启动

vi /etc/init.d/tomcat

添加如下内容

#!/bin/bash
#
# Startup script for Tomcat
#
# chkconfig: 345 82 20
# description: Tomcat is a servlet runner

JAVA_HOME=/usr/local/jdk1.8.0_202
CATALINA_HOME=/usr/local/tomcat
CATALINA_BASE=/usr/local/tomcat
XMFILE=$CATALINA_HOME/conf/server.xml
JAVA_OPTS="-server -Xms3g -Xmx3g -Xmn1g -Xss256k -XX:+UseParallelGC"
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
export JAVA_HOME CATALINA_HOME CATALINA_BASE JAVA_OPTS

# See how we were called.
case "$1" in
  start)
    cd $CATALINA_HOME
    ./bin/startup.sh -config $XMFILE
    ;;
  stop)
    cd $CATALINA_HOME
    ./bin/shutdown.sh -config $XMFILE
    ;;
  restart)
    $0 stop
    sleep 3
    $0 start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac

exit 0
chmod +x /etc/init.d/tomcat
chkconfig --add tomcat

启动tomcat

/etc/init.d/tomcat start

访问 http://server-ip:8080 出现如下页面即为Tomcat安装成功

在这里插入图片描述

2.5、文件目录

tomcat根目录如下

在这里插入图片描述

  • bin
    /bin - Startup, shutdown, and other scripts. The *.sh files (for Unix systems) are functional duplicates of the *.bat files (for Windows systems). Since the Win32 command-line lacks certain functionality, there are some additional files in here.
  • conf
    /conf - Configuration files and related DTDs. The most important file in here is server.xml. It is the main configuration file for the container.
  • lib
    放置.jar
  • logs
    /logs - Log files are here by default.
[root@centos tomcat]# ls -lh logs/
total 64K
-rw-r-----. 1 root root 1.7K Jan  7 23:56 catalina.2024-01-07.log
-rw-r-----. 1 root root  21K Jan  8 21:28 catalina.2024-01-08.log
-rw-r-----. 1 root root  22K Jan  8 21:28 catalina.out
-rw-r-----. 1 root root    0 Jan  7 23:56 host-manager.2024-01-07.log
-rw-r-----. 1 root root    0 Jan  8 00:00 host-manager.2024-01-08.log
-rw-r-----. 1 root root    0 Jan  7 23:56 localhost.2024-01-07.log
-rw-r-----. 1 root root 1.7K Jan  8 21:28 localhost.2024-01-08.log
-rw-r-----. 1 root root 1.4K Jan  8 21:41 localhost_access_log.2024-01-08.txt
-rw-r-----. 1 root root    0 Jan  7 23:56 manager.2024-01-07.log
-rw-r-----. 1 root root    0 Jan  8 00:00 manager.2024-01-08.log

其中localhost_access_log.2024-01-08.txt 是访问日志 形如
配置访问日志: https://tomcat.apache.org/tomcat-9.0-doc/config/valve.html#Access_Logging

在这里插入图片描述

catalina.out
catalina.out是tomcat的标准输出(stdout)和标准错误(stderr),这是在tomcat的启动脚本catalina.sh里指定的,如果没有修改的话stdout和stderr会重定向到这里。

[root@centos tomcat]# grep -C5 CATALINA_OUT bin/catalina.sh 
#
#   CATALINA_BASE   (Optional) Base directory for resolving dynamic portions
#                   of a Catalina installation.  If not present, resolves to
#                   the same directory that CATALINA_HOME points to.
#
#   CATALINA_OUT    (Optional) Full path to a file where stdout and stderr
#                   will be redirected.
#                   Default is $CATALINA_BASE/logs/catalina.out
#
#   CATALINA_OUT_CMD (Optional) Command which will be executed and receive
#                   as its stdin the stdout and stderr from the Tomcat java
#                   process. If CATALINA_OUT_CMD is set, the value of
#                   CATALINA_OUT will be used as a named pipe.
#                   No default.
#                   Example (all one line)
#                   CATALINA_OUT_CMD="/usr/bin/rotatelogs -f $CATALINA_BASE/logs/catalina.out.%Y-%m-%d.log 86400"
#
#   CATALINA_OPTS   (Optional) Java runtime options used when the "start",
#                   "run" or "debug" command is executed.
#                   Include here and not in JAVA_OPTS all options, that should
#                   only be used by Tomcat itself, not by the stop process,
--
if [ ! -z "$CLASSPATH" ] ; then
  CLASSPATH="$CLASSPATH":
fi
CLASSPATH="$CLASSPATH""$CATALINA_HOME"/bin/bootstrap.jar

if [ -z "$CATALINA_OUT" ] ; then
  CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi

if [ -z "$CATALINA_TMPDIR" ] ; then
  # Define the java.io.tmpdir to use for Catalina
  CATALINA_TMPDIR="$CATALINA_BASE"/temp
--
      fi
    fi
  fi

  shift
  if [ -z "$CATALINA_OUT_CMD" ] ; then
    touch "$CATALINA_OUT"
  else
    if [ ! -e "$CATALINA_OUT" ]; then
      if ! mkfifo "$CATALINA_OUT"; then
        echo "cannot create named pipe $CATALINA_OUT. Start aborted."
        exit 1
      fi
    elif [ ! -p "$CATALINA_OUT" ]; then
      echo "$CATALINA_OUT exists and is not a named pipe. Start aborted."
      exit 1
    fi
    $CATALINA_OUT_CMD <"$CATALINA_OUT" &
  fi
  if [ "$1" = "-security" ] ; then
    if [ $have_tty -eq 1 ]; then
      echo "Using Security Manager"
    fi
--
      -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
      org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 "&"

  else
    eval $_NOHUP "\"$_RUNJAVA\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
      -classpath "\"$CLASSPATH\"" \
      -Dcatalina.base="\"$CATALINA_BASE\"" \
      -Dcatalina.home="\"$CATALINA_HOME\"" \
      -Djava.io.tmpdir="\"$CATALINA_TMPDIR\"" \
      org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_OUT" 2>&1 "&"

  fi

  if [ ! -z "$CATALINA_PID" ]; then
    echo $! > "$CATALINA_PID"
[root@centos tomcat]# 
[root@centos tomcat]# 

catalina.xxxx-xx-xx.log
可以理解所有的catalina.xxxx-xx-xx.log 加起来就是catalina.out
从文件大小可以看出来 1650+20614=22264

在这里插入图片描述

  • temp
    The temp directory used by the JVM for temporary files.
  • webapps
    This is where your webapps go.
  • work
    The work directory that contains temporary working directories for the deployed web applications.

2.6、配置SSL

参考链接: https://tomcat.apache.org/tomcat-9.0-doc/ssl-howto.html

3、使用tomcat开发自己的web应用

Tomcat应用部署文档 https://tomcat.apache.org/tomcat-9.0-doc/appdev/index.html

猜你喜欢

转载自blog.csdn.net/OceanWaves1993/article/details/135313202