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等。
易于部署: 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