简介
有几种方法可以设置 Tomcat 在不同平台上运行。 这方面的主要文档是一个名为 RUNNING.txt 的文件。 如果下面的信息不能解答某些问题,我们建议参考该文件。
Windows
在 Windows 上安装 Tomcat 可使用 Windows 安装程序轻松完成。 它的界面和功能与其他基于向导的安装程序类似,只有少数项目值得关注。
-
作为服务安装: 无论选择何种设置,Tomcat 都将作为 Windows 服务进行安装。使用组件页面上的复选框可将服务设置为 "自动 "启动,这样 Tomcat 就会在 Windows 启动时自动启动。为获得最佳安全性,该服务应以独立用户身份运行,并降低权限(请参阅 Windows 服务管理工具及其文档)。
-
Java 位置: 安装程序将提供用于运行服务的默认 JRE。安装程序使用注册表来确定 Java <min-java-version/> 或更高版本的 JRE 的基本路径,包括作为完整 JDK 的一部分安装的 JRE。安装程序将首先查找 JRE,如果找不到 JRE,则仅查找 JDK。最后,如果未找到 JRE 或 JDK,安装程序将尝试使用
JAVA_HOME
环境变量。使用安装程序检测到的默认 JRE 不是强制性的。可以使用任何已安装的 Java <min-java-version/> 或更高版本的 JRE。 -
托盘图标: 当 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 执行完全配置的无人值守安装。
-
-
有关如何将 Tomcat 作为 Windows 服务进行管理的信息,请参阅 Windows 服务说明。
安装程序将创建快捷方式,以便启动和配置 Tomcat。需要注意的是,Tomcat 管理 Web 应用程序只能在 Tomcat 运行时使用。
Unix 守护进程
Tomcat 可以使用 commons-daemon 项目中的 jsvc 工具作为守护进程运行。 jsvc 的源代码压缩包包含在 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 默认使用服务器虚拟机而非客户端虚拟机,则可能还需要指定 -jvm server
。
在 OSX 上就发现过这种情况。
jsvc 还有其他有用的参数,例如 -user,它会在守护进程初始化完成后切换到另一个用户。
例如,这允许以非特权用户身份运行 Tomcat,同时仍能使用特权端口。
请注意,如果使用该选项并以根用户身份启动 Tomcat,
则需要禁用 org.apache.catalina.security.SecurityListener
检查,
该检查会阻止 Tomcat 以根用户身份运行。
jsvc --help
将返回完整的 jsvc 使用信息。
特别是,-debug
选项可用于调试运行 jsvc 时出现的问题。
文件 $CATALINA_HOME/bin/daemon.sh
可用作模板,
用于在启动时使用 jsvc 从 /etc/init.d
自动启动 Tomcat。
请注意,要以这种方式运行 Tomcat, 运行时 classpath 上必须有 Commons-Daemon JAR 文件。 Commons-Daemon JAR 文件位于 bootstrap.jar 清单的 Class-Path 条目中, 但如果遇到 Commons-Daemon 类的 ClassNotFoundException 或 NoClassDefFoundError 异常, 请在启动 jsvc 时将 Commons-Daemon JAR 添加到 -cp 参数中。