文章目录
(根据参考文档整理而成)
1. 为什么要设置环境变量?
如果环境变量没有被设置,Tomcat启动脚本有一些逻辑,可以根据启动脚本在Linux中的位置和窗口中的当前目录自动设置该变量。这种逻辑可能不适用于所有情况,因此建议显式设置变量。
2. Tomcat主要环境变量
2.1 设置CATALINA_HOME (必须) 和 CATALINA_BASE (可选)
从https://tomcat.apache.org/下载tomcat二进制发行版。我使用的命令为:
wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.59/bin/apache-tomcat-8.5.59.tar.gz
解压二进制发行版,使其驻留在自己的目录中(通常命名为"apache-tomcat-[version]")。
Tomcat是一个Java应用程序,不直接使用环境变量。Tomcat启动脚本使用环境变量来准备启动Tomcat的命令。
在本文档的其余部分中,名称"CATALINA_HOME"用于指代该目录的完整路径名,也就是说,CATALINA_HOME环境变量应设置为Tomcat发行版的根目录位置。
apache-tomcat-8.5.59.tar.gz解压缩之后是名为apache-tomcat-8.5.59的文件夹,放到/usr/local下,文件夹重命名为tomcat,因此:
CATALINA_HOME=/usr/local/tomcat
CATALINA_BASE环境变量指定Tomcat“动态配置”的根目录的位置。它是可选的。它默认等于CATALINA_HOME。
建议对CATALINA_HOME和CATALINA_BASE变量使用不同的值,以简化进一步的升级和维护。
2.2 设置JRE_HOME 或 JAVA_HOME (必须)
这些变量用于明确JRE或JDK的位置。
JRE_HOME变量用于指定JRE的位置。JAVA_HOME变量用于指定JDK的位置。
使用JAVA_HOME可以访问某些附加的启动选项,这些选项在使用JRE_HOME时是不允许的。
如果同时指定了JRE_HOME和JAVA_HOME,则使用JRE_HOME。
建议在“setenv”脚本中指定这些变量。详情见下文。
3. 使用 setenv 脚本(可选,推荐)
除了CATALINA_HOME和CATALINA_BASE外,所有环境变量都可以
在 setenv 脚本中指定。脚本放置在CATALINA_BASE/bin或CATALINA_HOME/bin目录,并命名为 setenv.bat(在Windows上)或setenv.sh(在* nix上)。该文件必须是可读的。
默认情况下,不存在setenv脚本文件。如果脚本文件同时存在于CATALINA_BASE和CATALINA_HOME中,CATALINA_BASE中的是首选。
例如,要配置JRE_HOME和CATALINA_PID变量,您可以创建以下脚本文件:
在 *nix, $CATALINA_BASE/bin/setenv.sh:
JRE_HOME=/usr/java/latest
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
CATALINA_HOME和CATALINA_BASE变量无法在setenv脚本中配置,因为它们用于查找该文件。
这里描述的所有环境变量和“setenv”脚本仅在使用标准脚本启动Tomcat时使用。例如,如果在Windows上安装了Tomcat作为服务,那么 service wrapper将直接启动Java,而不使用脚本文件。
参考文档
[1]ASF.Running The Apache Tomcat 8.5 Servlet/JSP Container[EB/OL].https://tomcat.apache.org/tomcat-8.5-doc/RUNNING.txt,2020-10-06.