ค้นหาเว็บไซต์

วิธีการติดตั้ง Apache Tomcat ใน Ubuntu


หากคุณต้องการเรียกใช้หน้าเว็บที่มีการเขียนโค้ดเพจเซิร์ฟเวอร์ Java หรือเซิร์ฟเล็ต Java คุณสามารถใช้ Apache Tomcat เป็นเว็บเซิร์ฟเวอร์โอเพ่นซอร์สและคอนเทนเนอร์เซิร์ฟเล็ต เผยแพร่โดย Apache Software Foundation

Tomcat สามารถใช้เป็นผลิตภัณฑ์แบบสแตนด์อโลนโดยมีเว็บเซิร์ฟเวอร์ของตัวเองหรือสามารถใช้ร่วมกับเว็บเซิร์ฟเวอร์อื่นๆ เช่น Apache หรือ IIS Tomcat เวอร์ชันล่าสุดคือ 9.0.14 และสร้างขึ้นบน Tomcat 8 และ 8.5 และใช้ Servlet 4.0, JSP 2.2

อ่านเพิ่มเติม: วิธีติดตั้ง Apache Tomcat 9 ใน CentOS/RHEL

มีการปรับปรุงต่อไปนี้ในเวอร์ชันใหม่:

  • เพิ่มการรองรับ HTTP/2
  • เพิ่มการรองรับการใช้ OpenSSL สำหรับการรองรับ TLS ด้วยตัวเชื่อมต่อ JSSE
  • เพิ่มการรองรับโฮสต์เสมือน TLS (SNI)

ในบทช่วยสอนนี้ เราจะแสดงวิธีการติดตั้ง Apache Tomcat 9 ใน Ubuntu 18.10 และ Ubuntu เวอร์ชันเก่า

ขั้นตอนที่ 1: การติดตั้ง Java

หากต้องการเรียกใช้เว็บแอปพลิเคชัน Java Tomcat จำเป็นต้องติดตั้ง Java บนเซิร์ฟเวอร์ เพื่อให้เป็นไปตามข้อกำหนดดังกล่าว เราจะติดตั้ง OpenJDK ตามที่แสดง

sudo apt update
sudo apt install default-jdk

ขั้นตอนที่ 2: การสร้างผู้ใช้ Tomcat

ด้วยเหตุผลด้านความปลอดภัย Tomcat ควรรันกับผู้ใช้ที่ไม่มีสิทธิ์ เช่น ไม่ใช่รูท นั่นคือเหตุผลที่เราจะสร้างผู้ใช้และกลุ่ม Tomcat ที่จะใช้บริการ เริ่มต้นด้วยการสร้างกลุ่ม Tomcat:

sudo groupadd tomcat

ต่อไป เราจะสร้างผู้ใช้ tomcat ซึ่งจะเป็นสมาชิกของกลุ่ม Tomcat ตำแหน่งบ้านของผู้ใช้รายนี้คือ /opt/tomcat เนื่องจากนี่คือที่ที่เราจะติดตั้ง Tomcat เชลล์ถูกตั้งค่าเป็น /bin/false:

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

ตอนนี้เราพร้อมที่จะดำเนินการขั้นตอนต่อไปและดาวน์โหลด Tomcat

ขั้นตอนที่ 3: การติดตั้ง Apache Tomcat

หากต้องการดาวน์โหลดแพ็คเกจล่าสุดที่มีให้ไปที่หน้าดาวน์โหลดของ Tomcat และรับเวอร์ชันล่าสุด

ในขณะที่เขียนบทช่วยสอนนี้ Tomcat เวอร์ชันล่าสุดคือ 9.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

ค่าผลลัพธ์ (แฮช) สำหรับทั้งสองไฟล์ควรเหมือนกัน

ตามที่กล่าวไว้ข้างต้น เราจะติดตั้ง Tomcat ใน /opt/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 เป็นเจ้าของไดเร็กทอรี webapps, work, temp และ logs:

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

ขณะนี้ได้ตั้งค่าการอนุญาตและการเป็นเจ้าของที่เหมาะสมแล้ว และเราพร้อมที่จะสร้างไฟล์ systemd start ซึ่งจะช่วยเราจัดการกระบวนการ Tomcat

ขั้นตอนที่ 4: การสร้างไฟล์บริการ SystemD สำหรับ Tomcat

เนื่องจากเราต้องการเรียกใช้ Tomcat เป็นบริการ เราจึงต้องมีไฟล์ที่จะช่วยให้เราจัดการกระบวนการได้อย่างง่ายดาย เพื่อจุดประสงค์นั้น เราจะสร้างไฟล์บริการ systemd Tomcat จะต้องรู้ว่า Java อยู่ที่ใดในระบบของคุณ

หากต้องการค้นหาตำแหน่งนั้นให้ใช้คำสั่งต่อไปนี้:

sudo update-java-alternatives -l

ผลลัพธ์ของคำสั่งนั้นจะแสดงตำแหน่งของ 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 เป็นอันหนึ่งสำหรับระบบของคุณ เมื่อคุณพร้อม ให้บันทึกไฟล์และปิด ตอนนี้ใช้คำสั่งด้านล่าง รีโหลด systemd daemon เพื่อให้สามารถค้นหาไฟล์บริการใหม่ของเรา:

sudo systemctl daemon-reload

จากนั้นเริ่มบริการ Tomcat:

sudo systemctl start tomcat

คุณสามารถตรวจสอบสถานะการบริการด้วย:

sudo systemctl status tomcat

ตอนนี้คุณสามารถทดสอบ Tomcat ในเบราว์เซอร์ของคุณได้โดยใช้ที่อยู่ IP ของระบบของคุณ ตามด้วยพอร์ตเริ่มต้นของบริการ 8080

http://ip-address:8080

ผลลัพธ์ที่คุณควรเห็นจะคล้ายกับผลลัพธ์ที่แสดงในภาพด้านล่าง:

ในกรณีที่คุณไม่เห็นผลลัพธ์ข้างต้น คุณอาจต้องอนุญาตพอร์ต 8080 ในไฟร์วอลล์ของคุณดังที่แสดง

sudo ufw allow 8080

หากคุณต้องการให้ Tomcat เริ่มต้นการบูตระบบ ให้รัน:

systemctl enable tomcat

ขั้นตอนที่ 5: การกำหนดค่า Apache Tomcat

Tomcat มีแอปตัวจัดการเว็บที่ติดตั้งไว้ล่วงหน้า เพื่อใช้งาน เราจะต้องตั้งค่าการตรวจสอบสิทธิ์ภายในไฟล์ tomcat-users.xml ของเรา เปิดและแก้ไขไฟล์นั้นด้วยโปรแกรมแก้ไขข้อความที่คุณชื่นชอบ:

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

เราจะเพิ่มผู้ใช้ที่จะสามารถเข้าถึงอินเทอร์เฟซ ผู้จัดการ และ ผู้ดูแลระบบ หากต้องการกำหนดค่าผู้ใช้ดังกล่าว ระหว่างแท็ก ให้เพิ่มบรรทัดต่อไปนี้:

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

อย่าลืมเปลี่ยน:

  • ชื่อผู้ใช้ – กับผู้ใช้ที่คุณต้องการตรวจสอบสิทธิ์
  • รหัสผ่าน – ด้วยรหัสผ่านที่คุณต้องการใช้สำหรับการตรวจสอบสิทธิ์

เนื่องจากโดยค่าเริ่มต้นการเข้าถึง ผู้จัดการโฮสต์ และ ผู้จัดการ ถูกจำกัด เราจึงต้องการลบหรือแก้ไขข้อจำกัดเหล่านี้ หากต้องการทำการเปลี่ยนแปลง คุณสามารถโหลดไฟล์ต่อไปนี้:

สำหรับแอปผู้จัดการ:

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

สำหรับแอปผู้จัดการโฮสต์:

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

ภายในไฟล์เหล่านั้น คุณสามารถแสดงความคิดเห็นเกี่ยวกับข้อจำกัด IP หรืออนุญาตให้มีที่อยู่ IP สาธารณะของคุณอยู่ในนั้น สำหรับจุดประสงค์ของบทช่วยสอนนี้ ฉันได้แสดงความคิดเห็นไว้ดังนี้:

หากต้องการให้การเปลี่ยนแปลงมีผล ให้โหลดบริการ Tomcat อีกครั้งด้วย:

sudo systemctl restart tomcat 


ตอนนี้คุณสามารถทดสอบ
แอปผู้จัดการได้โดยเข้าไปที่ http://ipaddress:8080/manager/ เมื่อได้รับแจ้งให้ระบุชื่อผู้ใช้และรหัสผ่าน ให้ใช้ข้อมูลที่คุณกำหนดค่าไว้ก่อนหน้านี้ อินเทอร์เฟซที่คุณควรเห็นหลังจากนั้นจะมีลักษณะดังนี้:

หากต้องการเข้าถึง ผู้จัดการโฮสต์ คุณสามารถใช้ http://ip-address:8080/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

แค่นั้นแหละ! คุณตั้งค่าเซิร์ฟเวอร์ Apache Tomcat ของคุณเสร็จแล้วและรันโค้ด Java แรกของคุณแล้ว เราหวังว่ากระบวนการนี้จะง่ายและตรงไปตรงมาสำหรับคุณ หากคุณประสบปัญหาใด ๆ โปรดแบ่งปันปัญหาของคุณผ่านแบบฟอร์มความคิดเห็นด้านล่าง