Tomcat 设置
目录
简介
有几种方法可以设置 Tomcat 以在不同平台上运行。此内容的主要文档是一个名为 RUNNING.txt 的文件。如果您对以下信息仍有疑问,我们建议您参考该文件。
Windows
使用 Windows 安装程序可以轻松地在 Windows 上安装 Tomcat。其界面和功能与其他基于向导的安装程序类似,只有少数几个值得关注的项目。
- 作为服务安装:无论选择哪种设置,Tomcat 都将作为 Windows 服务安装。使用组件页面上的复选框将服务设置为“自动”启动,以便在 Windows 启动时自动启动 Tomcat。为了获得最佳安全性,应以具有较低权限的单独用户身份运行该服务(请参阅 Windows 服务管理工具及其文档)。
- Java 位置:安装程序将提供用于运行服务的默认 JRE。安装程序使用注册表确定 Java 11 或更高版本 JRE 的基本路径,包括作为完整 JDK 一部分安装的 JRE。在 64 位操作系统上运行时,安装程序将首先查找 64 位 JRE,并且仅在未找到 64 位 JRE 时才查找 32 位 JRE。如果在 64 位操作系统上运行时找不到 JRE,安装程序将查找 64 位 JDK。最后,如果未找到 JRE 或 JDK,安装程序将尝试使用
JAVA_HOME
环境变量。不必使用安装程序检测到的默认 JRE。可以使用任何已安装的 Java 11 或更高版本 JRE(32 位或 64 位)。 - 托盘图标:当 Tomcat 作为服务运行时,在 Tomcat 运行时不会出现任何托盘图标。请注意,在安装结束时选择运行 Tomcat 时,即使 Tomcat 已作为服务安装,也会使用托盘图标。
- 默认值:可以使用
/C=<config file>
命令行参数覆盖安装程序使用的默认值。配置文件使用name=value
格式,每对值位于单独的行上。可用配置选项的名称为- JavaHome
- TomcatPortShutdown
- TomcatPortHttp
- TomcatMenuEntriesEnable
- TomcatShortcutAllUsers
- TomcatServiceDefaultName
- TomcatServiceName
- TomcatServiceFileName
- TomcatServiceManagerFileName
- TomcatAdminEnable
- TomcatAdminUsername
- TomcatAdminPassword
- TomcatAdminRoles
/C=...
与/S
和/D=
一起使用,可以执行完全配置的无人值守 Apache Tomcat 安装。 - 请参阅 Windows 服务操作指南,了解如何管理 Tomcat 作为 Windows 服务的信息。
安装程序将创建允许启动和配置 Tomcat 的快捷方式。请务必注意,仅当 Tomcat 正在运行时才能使用 Tomcat 管理 Web 应用程序。
Unix 守护进程
可以使用 commons-daemon 项目中的 jsvc 工具将 Tomcat 作为守护进程运行。jsvc 的源 tarball 包含在 Tomcat 二进制文件中,并且需要进行编译。构建 jsvc 需要 C ANSI 编译器(例如 GCC)、GNU Autoconf 和 JDK。
在运行脚本之前,应将 JAVA_HOME
环境变量设置为 JDK 的基本路径。或者,在调用 ./configure
脚本时,可以使用 --with-java
参数指定 JDK 的路径,例如 ./configure --with-java=/usr/java
。
使用以下命令应生成已编译的 jsvc 二进制文件,该文件位于 $CATALINA_HOME/bin
文件夹中。这假定使用了 GNU TAR,并且 CATALINA_HOME
是指向 Tomcat 安装基本路径的环境变量。
请注意,在 FreeBSD 系统上,您应使用 GNU make (gmake) 而不是本机 BSD make。
cd $CATALINA_HOME/bin
tar xvfz commons-daemon-native.tar.gz
cd commons-daemon-1.1.x-native-src/unix
./configure
make
cp jsvc ../..
cd ../..
然后可以使用以下命令将 Tomcat 作为守护进程运行。
CATALINA_BASE=$CATALINA_HOME
cd $CATALINA_HOME
./bin/jsvc \
-classpath $CATALINA_HOME/bin/bootstrap.jar:$CATALINA_HOME/bin/tomcat-juli.jar \
-outfile $CATALINA_BASE/logs/catalina.out \
-errfile $CATALINA_BASE/logs/catalina.err \
--add-opens=java.base/java.lang=ALL-UNNAMED \
--add-opens=java.base/java.io=ALL-UNNAMED \
--add-opens=java.base/java.util=ALL-UNNAMED \
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED \
--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED \
-Dcatalina.home=$CATALINA_HOME \
-Dcatalina.base=$CATALINA_BASE \
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties \
org.apache.catalina.startup.Bootstrap
如果 JVM 默认使用服务器 VM 而不是客户端 VM,您可能还需要指定 -jvm server
。已在 OSX 上观察到这一点。
jsvc 具有其他有用的参数,例如 -user
,它会导致在守护进程初始化完成后切换到另一个用户。例如,这允许以非特权用户身份运行 Tomcat,同时仍然能够使用特权端口。请注意,如果您使用此选项并将 Tomcat 作为 root 启动,则需要禁用 org.apache.catalina.security.SecurityListener
检查,该检查可防止 Tomcat 在作为 root 运行时启动。
jsvc --help
将返回完整的 jsvc 使用信息。特别是,-debug
选项对于调试运行 jsvc 的问题很有用。
文件 $CATALINA_HOME/bin/daemon.sh
可用作从 /etc/init.d
使用 jsvc 在启动时自动启动 Tomcat 的模板。
请注意,Commons-Daemon JAR 文件必须在您的运行时类路径中才能以这种方式运行 Tomcat。Commons-Daemon JAR 文件位于 bootstrap.jar 清单的类路径条目中,但是如果您为 Commons-Daemon 类收到 ClassNotFoundException 或 NoClassDefFoundError,请在启动 jsvc 时将 Commons-Daemon JAR 添加到 -cp 参数中。