簡介

目錄

簡介

對於管理員和 Web 開發人員來說,在開始之前,有一些重要的資訊您應該熟悉。本文件簡要介紹 Tomcat 容器背後的一些概念和術語。此外,說明在需要協助時如何取得協助。

術語

在閱讀這些文件時,您將會遇到許多術語;有些是 Tomcat 特有的,有些則是由 Servlet 和 JSP 規範 所定義。

  • Context - 簡而言之,Context 是 Web 應用程式。

就是這樣。如果您發現我們需要將更多術語新增到本節,請務必告知我們。

目錄和檔案

以下是 Tomcat 的一些主要目錄

  • /bin - 啟動、關閉和其他腳本。*.sh 檔案(適用於 Unix 系統)是 *.bat 檔案(適用於 Windows 系統)的功能性副本。由於 Win32 命令列缺乏某些功能,因此這裡有一些額外的檔案。
  • /conf - 組態檔和相關的 DTD。此處最重要的檔案是 server.xml。它是容器的主要組態檔。
  • /logs - 預設情況下,日誌檔會在此處。
  • /webapps - 這是您的 Web 應用程式放置的位置。

CATALINA_HOME 和 CATALINA_BASE

在整個文件中,會參照下列兩個屬性

  • CATALINA_HOME:表示 Tomcat 安裝的根目錄,例如 /home/tomcat/apache-tomcat-9.0.10C:\Program Files\apache-tomcat-9.0.10
  • CATALINA_BASE:表示特定 Tomcat 執行個體執行時間組態的根目錄。如果您要在同一台機器上擁有多個 Tomcat 執行個體,請使用 CATALINA_BASE 屬性。

如果您將屬性設定為不同的位置,CATALINA_HOME 位置會包含靜態來源,例如 .jar 檔案或二進位檔。CATALINA_BASE 位置會包含組態檔、日誌檔、已部署應用程式和其他執行時間需求。

為何使用 CATALINA_BASE

預設情況下,CATALINA_HOME 和 CATALINA_BASE 指向同一個目錄。當您需要在同一台機器上執行多個 Tomcat 執行個體時,請手動設定 CATALINA_BASE。這樣做會提供下列好處

  • 更輕鬆地管理升級到 Tomcat 的較新版本。由於所有具有單一 CATALINA_HOME 位置的執行個體都共用一組 .jar 檔案和二進位檔,因此您可以輕鬆地將檔案升級到較新版本,並將變更傳播到使用相同 CATALIA_HOME 目錄的所有 Tomcat 執行個體。
  • 避免重複相同的靜態 .jar 檔案。
  • 可以共用某些設定,例如 setenv shell 或 bat 指令碼檔案(視您的作業系統而定)。

CATALINA_BASE 的內容

在您開始使用 CATALINA_BASE 之前,請先考慮並建立 CATALINA_BASE 使用的目錄樹。請注意,如果您未建立所有建議的目錄,Tomcat 會自動建立目錄。如果它無法建立必要的目錄,例如由於權限問題,Tomcat 將無法啟動或可能無法正常運作。

請考慮下列目錄清單

  • 包含 setenv.shsetenv.battomcat-juli.jar 檔案的 bin 目錄。

    建議:否。

    查詢順序:首先檢查 CATALINA_BASE;提供備援至 CATALINA_HOME。

  • 包含要新增到類別路徑的進一步資源的 lib 目錄。

    建議:是的,如果您的應用程式依賴外部程式庫。

    查詢順序:首先檢查 CATALINA_BASE;其次載入 CATALINA_HOME。

  • 特定執行個體的日誌檔的 logs 目錄。

    建議:是的。

  • 自動載入 Web 應用程式的 webapps 目錄。

    建議:是的,如果您要部署應用程式。

    查詢順序:僅 CATALINA_BASE。

  • 包含已部署 Web 應用程式的暫時工作目錄的 work 目錄。

    建議:是的。

  • JVM 用於暫存檔案的 temp 目錄。

    建議:是的。

我們建議您不要變更 tomcat-juli.jar 檔案。不過,如果您需要自己的記錄實作,您可以替換特定 Tomcat 實例的 CATALINA_BASE 位置中的 tomcat-juli.jar 檔案。

我們也建議您將所有組態檔案從 CATALINA_HOME/conf 目錄複製到 CATALINA_BASE/conf/ 目錄。如果 CATALINA_BASE 中缺少組態檔案,則不會備援到 CATALINA_HOME。因此,這可能會導致失敗。

至少,CATALINA_BASE 必須包含

  • conf/server.xml
  • conf/web.xml
這包括 conf 目錄。否則,Tomcat 會無法啟動,或無法正常運作。

如需進階組態資訊,請參閱 RUNNING.txt 檔案。

如何使用 CATALINA_BASE

CATALINA_BASE 屬性是環境變數。您可以在執行 Tomcat 啟動指令碼前設定它,例如

  • 在 Unix 上:CATALINA_BASE=/tmp/tomcat_base1 bin/catalina.sh start
  • 在 Windows 上:CATALINA_BASE=C:\tomcat_base1 bin/catalina.bat start

組態 Tomcat

此區段將讓您熟悉在組態容器期間使用的基本資訊。

組態檔案中的所有資訊都在啟動時讀取,表示對檔案的任何變更都需要重新啟動容器。

如何取得協助

雖然我們已盡力確保這些文件撰寫清楚且易於理解,但我們可能遺漏了一些內容。如果您遇到問題,下方提供了各種網站和郵件清單。

請記住,某些問題和解決方案會因 Tomcat 的主要版本而異。當您在網路上搜尋時,會有一些文件與 Tomcat 10 無關,而僅適用於較早版本。

  • 目前的說明文件 - 大部分文件都會列出潛在的停頓。務必完整閱讀相關文件,因為這將為您節省大量時間和精力。沒有什麼比在網路上搜尋後才發現答案一直就在您眼前更令人沮喪的了!
  • Tomcat 常見問題
  • Tomcat WIKI
  • jGuru 上的 Tomcat 常見問題 jGuru
  • Tomcat 郵件清單檔案 - 許多網站會將 Tomcat 郵件清單檔案化。由於連結會隨著時間而變更,因此按一下這裡會搜尋 Google
  • TOMCAT-USER 郵件清單,您可以 在此 訂閱。如果您沒有收到回覆,則您的問題很可能已在清單檔案或其中一個常見問題中獲得解答。雖然有時會詢問和回答關於一般網路應用程式開發的問題,但請將您的問題重點放在 Tomcat 特定的問題上。
  • TOMCAT-DEV 郵件清單,您可以 在此 訂閱。此清單專門用於討論 Tomcat 本身的開發。關於 Tomcat 組態的問題,以及您在開發和執行應用程式時遇到的問題,通常會更適合在 TOMCAT-USER 清單中討論。

此外,如果您認為某些內容應該納入文件,請務必在 TOMCAT-DEV 清單中告知我們。