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=<組態檔>
命令列引數覆寫。組態檔使用名稱=值
格式,每一對在個別行上。可用的組態選項名稱為- JavaHome
- TomcatPortShutdown
- TomcatPortHttp
- TomcatMenuEntriesEnable
- TomcatShortcutAllUsers
- TomcatServiceDefaultName
- TomcatServiceName
- TomcatServiceFileName
- TomcatServiceManagerFileName
- TomcatAdminEnable
- TomcatAdminUsername
- TomcatAdminPassword
- TomcatAdminRoles
/C=...
搭配/S
和/D=
,可以執行 Apache Tomcat 的完全組態無人值守安裝。 - 請參閱 Windows 服務操作指南,取得如何將 Tomcat 管理為 Windows 服務的資訊。
安裝程式會建立捷徑,允許啟動和組態 Tomcat。請務必注意,Tomcat 管理網路應用程式只能在 Tomcat 執行時使用。
Unix 守護程式
Tomcat 可以使用 commons-daemon 專案的 jsvc 工具以守護程式身分執行。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,同時仍然可以使用特權埠。請注意,如果您使用此選項並以 root 身分啟動 Tomcat,您需要停用 org.apache.catalina.security.SecurityListener
檢查,以防止 Tomcat 在以 root 身分執行時啟動。
jsvc --help
會傳回完整的 jsvc 使用資訊。特別是,-debug
選項可協助除錯執行 jsvc 的問題。
檔案 $CATALINA_HOME/bin/daemon.sh
可用作使用 jsvc 從 /etc/init.d
在開機時自動啟動 Tomcat 的範本。
請注意,Commons-Daemon JAR 檔案必須在您的執行時期類別路徑中才能以這種方式執行 Tomcat。Commons-Daemon JAR 檔案位於 bootstrap.jar 清單的類別路徑項目中,但如果您對 Commons-Daemon 類別取得 ClassNotFoundException 或 NoClassDefFoundError,請在啟動 jsvc 時將 Commons-Daemon JAR 加入 -cp 引數。