如何在Ubuntu中安裝Apache Tomcat

如果您想運行包含Java服務器頁面編碼或Java servlet的網頁,您可以使用Apache Tomcat。它是由Apache Software Foundation發布的開源網絡服務器和servlet容器。

Tomcat可以作為獨立產品使用,搭配其自己的網絡服務器,或者與其他網絡服務器結合,如ApacheIIS。Tomcat的最新版本是9.0.14,它建立在Tomcat 88.5的基礎上,並實現了Servlet 4.0、JSP 2.2。

閱讀更多: 如何在CentOS/RHEL中安裝Apache Tomcat 9

新版本中已經進行了以下改進:

  • 新增了對HTTP/2的支持。
  • 新增了使用OpenSSL與JSSE連接器支持TLS的支持。
  • 新增了對TLS虛擬主機(SNI)的支持。

在本教程中,我們將向您展示如何在Ubuntu 18.10和舊版本的Ubuntu上安裝Apache Tomcat 9

第1步:安裝Java

要運行Java web應用程序,Tomcat需要在服務器上安裝Java。為了滿足這一要求,我們將安裝OpenJDK,如下所示。

$ sudo apt update
$ sudo apt install default-jdk

第2步:創建一個Tomcat用戶

出於安全考慮,Tomcat應該以非特權使用者運行,即非 root。這就是為什麼我們將創建一個名為 tomcat 的使用者和群組,來運行服務。首先創建 tomcat 群組:

$ sudo groupadd tomcat

接下來我們將創建一個tomcat 使用者,並將其加入 tomcat 群組。這個使用者的家目錄將設置為/opt/tomcat,因為這是我們將安裝 Tomcat 的地方。shell 設置為/bin/false

$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

現在我們準備進行下一步,下載 Tomcat。

第 3 步:安裝 Apache Tomcat

要下載最新可用的軟件包,請前往Tomcat 的下載頁面並獲取最新版本。

在編寫本教程時,最新版本的Tomcat9.0.14。要下載該版本,可以將當前目錄切換到其他目錄。例如,您可以使用/tmp

# cd /tmp

然後使用wget 命令下載 Tomcat 存檔:

$ wget http://apache.cbox.biz/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz
$ wget https://www.apache.org/dist/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz.sha512

如果要驗證文件的 sha512 摘要,可以運行:

$ sha512sum apache-tomcat-9.0.14.tar.gz
$ cat apache-tomcat-9.0.14.tar.gz.sha512

這兩個文件的結果值(哈希)應該相同。

如前所述,我們將在/opt/tomcat安裝 Tomcat。我們需要創建該目錄:

$ sudo mkdir /opt/tomcat

現在我們可以在該新目錄中解壓下載的軟件包:

$ sudo tar xzvf apache-tomcat-9.0.14.tar.gz -C /opt/tomcat --strip-components=1

現在導航到 /opt/tomcat 從那裡我們將更新文件夾所有權和權限:

# cd /opt/tomcat

並將 /opt/tomcat 的群組所有者設置為 tomcat:

$ sudo chgrp -R tomcat /opt/tomcat

接下來我們將更新 tomcat 群組對 conf 目錄的讀取訪問權限並將執行權限設置為該目錄:

$ sudo chmod -R g+r conf
$ sudo chmod g+x conf

接下來我們將使 tomcat 用戶成為 webappsworktemplogs 目錄的所有者:

$ sudo chown -R tomcat webapps/ work/ temp/ logs/

現在已經設置了正確的權限和所有權,我們準備創建一個 systemd 啟動文件,這將幫助我們管理 Tomcat 進程。

第 4 步:為 Tomcat 創建一個 SystemD 服務文件

因為我們想要將 Tomcat 作為一個服務運行,我們需要一個文件來幫助我們輕鬆管理進程。為此,我們將創建一個 systemd 服務文件。 Tomcat 將需要知道您系統上 Java 的位置。

使用以下命令找到該位置:

$ sudo update-java-alternatives -l

該命令的輸出將顯示 JAVA_HOME 的位置。

Find Java Home

現在,使用該信息,我們準備創建我們的 Tomcat 服務文件。

$ sudo vim  /etc/systemd/system/tomcat.service

將下面的代碼粘貼到文件中:

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
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 設置為您系統的 JAVA_HOME。準備就緒後,保存文件並關閉它。現在,使用以下命令重新加載 systemd 守護進程,以便找到我們的新服務文件:

$ sudo systemctl daemon-reload

然後啟動 Tomcat 服務:

$ sudo systemctl start tomcat

您可以使用以下命令驗證服務狀態:

$ sudo systemctl status tomcat
Verify Apache Tomcat Status

您可以使用系統的 IP 地址,後跟服務默認端口 8080,在瀏覽器中測試 Tomcat

http://ip-address:8080

您應該看到的結果類似於下面的圖片:

Apache Tomcat Web Page

如果您沒有看到上述輸出,可能需要在防火牆中允許端口 8080

$ sudo ufw allow 8080

如果您希望 Tomcat 在系統啟動時啟動,運行:

$ systemctl enable tomcat

第 5 步:配置 Apache Tomcat

Tomcat具有預安裝的 Web 管理器應用程序。為了使用它,我們需要在我們的 tomcat-users.xml 文件中設置身份驗證。使用您喜歡的文本編輯器打開並編輯該文件:

$ sudo vim /opt/tomcat/conf/tomcat-users.xml

我們將添加一個能夠訪問 管理器管理 接口的用戶。要配置此類用戶,在 <tomcat-users> </tomcat-users> 標籤之間,添加以下行:

<user username="Username" password="Password" roles="manager-gui,admin-gui"/>

請確保更改:

  • 用戶名 – 為您希望進行身份驗證的用戶。
  • 密碼 – 為您希望用於身份驗證的密碼。
Configure Apache Tomcat

由於默認情況下訪問 主機管理器管理器 受限,我們將需要刪除或更改這些限制。要進行此類更改,您可以加載以下文件:

對於管理器應用程序:

$ sudo vim /opt/tomcat/webapps/manager/META-INF/context.xml

對於主機管理器應用程序:

$ sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml

在這些文件中,您可以註釋IP限制或在其中允許您的公共IP地址。為了這個教程的目的,我已經註釋了這行:

Allow Apache Tomcat Access

為了使我們的更改生效,重新啟動tomcat服務:

$ sudo systemctl restart tomcat 


您現在可以通過訪問http://ipaddress:8080/manager/來測試
管理應用程序。在提示輸入用戶名和密碼時,請使用您之前配置的用戶名和密碼。之後您應該看到的界面如下:

Access Apache Tomcat Manager

要訪問主機管理員,您可以使用http://ip-address:8080/host-manager/

Access Apache Tomcat Virtual Host Manager

使用虛擬主機管理員,您可以為您的Tomcat應用程序創建虛擬主機。

第6步:通過創建測試文件來測試Apache Tomcat

您可以通過在/opt/tomcat/webapps/ROOT/目錄中創建一個測試文件來檢查一切是否運行順利。

讓我們創建這樣的文件:

$ sudo vim /opt/tomcat/webapps/ROOT/tecmint.jsp

在該文件中粘貼以下代碼:

<html>
<head>
<title>Tecmint post:TomcatServer</title>
</head>
<body>

<START OF JAVA CODES>
<%
    out.println("Hello World! I am running my first JSP Application");
    out.println("<BR>Tecmint is an Awesome online Linux Resource.");
%>
<END OF JAVA CODES>

</body>
</html>

保存文件並設置所有權如下所示。

$ sudo chown tomcat: /opt/tomcat/apache-tomcat-8.5.14/webapps/ROOT/tecmint.jsp

現在通過使用http://ip-address:8080/tecmint.jsp在您的瀏覽器中加載該文件。

Test Apache Tomcat

就是這樣!您已經完成了Apache Tomcat服務器的設置並運行了您的第一個Java代碼。我們希望這個過程對您來說是簡單而直接的。如果您遇到任何問題,請通過下面的評論表分享您的問題。

Source:
https://www.tecmint.com/install-apache-tomcat-in-ubuntu/