Apache Tomcat 軟體 是一款基於 Java 的 HTTP 伺服器,可以執行 Java Servlet、JavaServer Pages (JSP) 和 Java Expression Language 等 Java 技術。先進的內建自訂選項、高度靈活性和令人印象深刻的穩定性,使該軟體需求量極高,並成為全球開發人員的熱門選擇。讓我們來看看是什麼讓 Apache Tomcat 在競爭對手中脫穎而出:
-
開源
Apache Tomcat 是一款開源應用程式。這意味著任何人都可以免費下載、安裝和使用該應用程式。
-
輕量級
與競爭對手相比,輕量級特性在載入和重新部署時是一項額外的優勢。
-
靈活性
內建的自訂選項允許使用者根據自己的需求和專案要求,將應用程式自訂為自己喜歡的樣子。
-
進階安全性
Tomcat 應用程式還提供進階級別的安全性。
自其 首次發佈 於 1998 年推出以來,Apache 軟體基金會進行了令人難以置信的變革。因此,最近的版本比以往任何時候都更加穩定。在本教學中, 您將學習如何在 Ubuntu 20.04 上安裝 Apache Tomcat 9。
先決條件
在我們繼續在您的 Ubuntu 系統上安裝 Apache Tomcat 之前,請確保您具備以下條件:
您現在已準備就緒。接下來,請繼續按照以下步驟在 Ubuntu 20.04 上安裝 Apache Tomcat
步驟 1 — 安裝 Java
首先,使用以下指令驗證您的系統中是否已安裝 Java:
|
1 |
java -version |
如果 Java 未安裝在您的系統中,則您需要安裝它才能執行基於 Java 的應用程式。您可以使用以下指令安裝 Java 開發套件:
|
1 |
sudo apt install default-jre |
安裝完成後,使用以下指令進行驗證:
|
1 |
java -version |
安裝完成後,是時候建立一個 tomcat 使用者帳戶。出於安全考量,建議以非 root 權限執行 Tomcat。請記住,如果任何頁面指令碼具有 root 權限,您就可以輕鬆地透過頁面指令碼完全修改硬碟檔案。接下來,我們將建立一個執行 Tomcat 服務的新使用者和群組。
步驟 2 – 建立 & 設定 Tomcat 使用者
我們將建立一個使用所有 Tomcat 服務的新使用者和群組。我們將使用以下指令將新群組命名為 tomcat :
|
1 |
sudo groupadd tomcat |
建立群組名稱後,我們將建立一個新的 tomcat 使用者,然後將該使用者新增至群組 tomcat:
- 建立一個新的 tomcat 使用者。
- 將使用者成員資格新增至 tomcat 群組。
將使用者新增至 tomcat 群組時,請務必保持機密,以便無人可以存取您的 tomcat 帳戶。出於安全考量,請將使用者保留在我們將要安裝 tomcat ( /opt/tomcat 的家目錄中,並新增一個 shell /bin/false:
|
1 |
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat |
帳戶設定完成後,讓我們繼續安裝 Tomcat:
步驟 3 – 安裝 Tomcat
我們將從 Tomcat 的 官方網站 進行安裝。為了發揮其最大潛力,請下載最新版本。要升級到最穩定的可用版本,請前往 Binary Distributions 區域,向下滾動到 Core 列表,然後複製 “tar.gz” 的連結。完成後,將目錄切換至 /tmp:
|
1 |
cd /tmp |
接下來,使用 curl 指令,從上述官方網站下載 Tomcat:
|
1 |
sudo curl -O https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.60/bin/apache-tomcat-9.0.60.tar.gz |
讓我們將 Tomcat 安裝在 /opt/tomcat 目錄下。建立該目錄後,使用以下指令解壓縮封存檔案:
|
1 2 |
sudo mkdir /opt/tomcat sudo tar xzvf apache-tomcat-9.0.60.tar.gz -C /opt/tomcat --strip-components=1 |
步驟 4 – 更新權限
在系統中安裝 Tomcat 後,您需要為新建立的 tomcat 使用者設定權限。使用以下命令切換到我們解壓縮 Tomcat 安裝檔案的目錄:
|
1 |
cd /opt/tomcat |
接下來,允許 tomcat 群組擁有整個安裝目錄的所有權:
|
1 2 3 |
sudo chgrp -R tomcat /opt/tomcat sudo chmod -R g+r conf sudo chmod g+x conf |
完成後,將 tomcat 使用者設為 webapps, work, temp、以及 logs 目錄的所有者:
|
1 |
sudo chown -R tomcat webapps/ work/ temp/ logs |
設定好所有必要的權限後,下一步是建立一個 systemd 服務檔案來管理 Tomcat 程序,並將 Tomcat 作為服務執行。
步驟 5 – 建立 systemd 單元檔案
雖然我們已經完成了 Java 的安裝,但 Tomcat 需要知道 Java 安裝在哪裡。要了解 Java 的安裝位置,請執行以下命令:
|
1 |
sudo update-java-alternatives -l |
輸出應該像這樣:
反白顯示的部分是 JAVA_Home 如下所示:
|
1 |
/usr/lib/jvm/java-1.11.0-openjdk-amd64 |
接下來,我們將建立一個 systemd 服務檔案。開啟名為 tomcat.service 的檔案,該檔案位於 /etc/systemd/system 目錄,使用以下命令:
|
1 |
sudo nano /etc/systemd/system/tomcat.service |
使用 VI 編輯器編輯該檔案,並將 JAVA_Home 修改為您的 JAVA_Home 位置:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd6 Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC' Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh User=tomcat Group=tomcat UMask=0007 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target |
新增 JAVA_Home 後,儲存並關閉檔案。接下來,重新載入 systemd 守護程序(daemon),以便它能識別我們的服務檔案:
|
1 |
sudo systemctl daemon-reload |
接下來,使用以下命令啟動 Tomcat 服務:
|
1 |
sudo systemctl start tomcat |
步驟 6 – 防火牆設定
建立 systemd 單元檔案後,接下來要設定防火牆。防火牆設定對於允許我們對 Tomcat 服務的請求和存取至關重要。如果您已正確遵循本指南,那麼您肯定已經啟用了 ufw 防火牆。
Tomcat 使用連接埠 8080 來接收傳統請求。使用以下命令允許流量通過該連接埠:
|
1 |
sudo ufw allow 8080 |
修改後的防火牆可讓您存取 IP 位址後接 :8080 的預設歡迎頁面。您可以透過瀏覽器前往如下所示的 IP 來開啟它:
|
1 |
http://server_domain_or_IP:8080 |
|
1 |
sudo ufw allow 8080 |
步驟 7 — Tomcat 網頁管理介面設定
要使用 Tomcat 隨附的 manager 網頁應用程式,我們必須為 Tomcat 伺服器新增登入資訊。我們可以透過編輯 tomcat-users.xml 檔案來完成此操作,如下所示:
|
1 |
sudo nano /opt/tomcat/conf/tomcat-users.xml |
Tomcat 隨附了網頁應用程式,可讓使用者存取 manager-gui 以及 admin-gui。您可以在 tomcat-users 標籤之間定義使用者,如下所示:
|
1 2 3 |
<tomcat-users . . .> <user username="admin" password="password" roles="manager-gui,admin-gui"/> </tomcat-users> |
完成後儲存並關閉檔案。
所有最新版本的 Tomcat 都將 Manager 和 Host Manager 應用程式的存取權限限制為僅允許來自伺服器本身的連線。若要變更這些應用程式的 IP 地址限制,請開啟對應的 context.xml 檔案。若要存取 Manager 應用程式,請使用以下命令:
|
1 |
sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml |
接下來,若要存取 Host Manager 應用程式,請使用以下命令:
|
1 |
sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml |
您可以根據需求選擇接受或拒絕連線。您可以將 IP 地址限制註解掉,以允許來自任何地方的連線。或者,您可以將公用 IP 地址新增至清單中,以允許來自您 IP 地址的連線:
|
1 2 3 4 |
<Context antiResourceLocking="false" privileged="true" > <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />--> </Context> |
完成後儲存並關閉檔案。若要使變更生效,請使用以下命令重新啟動 Tomcat 服務:
|
1 |
sudo systemctl restart tomcat |
步驟 8 — 網頁介面存取
建立 Tomcat 使用者後,我們現在可以存取網頁管理介面。同樣地,您可以透過前往伺服器的網域名稱或 IP 地址,後跟連接埠 8080:
|
1 |
http://server_domain_or_IP:8080 |
當您點擊此 URL 時,您將看到如下所示的頁面:
您可以透過輸入您新增至 tomcat-users.xml 的帳戶憑證來存取 Tomcat 網頁應用程式。若要存取 Manager 應用程式,請使用以下連結:
|
1 |
http://server_domain_or_IP:8080/manager/html |
當您點擊此 URL 時,您將看到如下所示的頁面:
若要存取 Host Manager 應用程式,請使用以下連結:
|
1 |
http://server_domain_or_IP:8080/host-manager/html |
當您點擊此 URL 時,您將看到如下所示的頁面:
結論
您的 Tomcat 安裝現已完成。您可以自由部署自己的 Java 網頁應用程式並提升您的數位體驗。您會發現,與其他替代方案相比,在 Apache Tomcat 上進行載入和重新部署的速度要快得多。然而,它不適合用於處理靜態網頁。
如需更多關於應用基於 Apache 伺服器的資源,請查看 我們的部落格:
- mod_proxy 擴充功能指南:將 Apache 用作反向代理
- 網頁伺服器的世界:Apache vs. Nginx
- 在 Ubuntu 20.04 上設定 Apache 虛擬主機
- 在 CentOS 7 上安裝 Apache 網頁伺服器
祝您運算愉快!














留言
目前尚無留言。成為第一個留言的人吧。