วิธีการติดตั้ง 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 แรกของคุณแล้ว เราหวังว่ากระบวนการนี้จะง่ายและตรงไปตรงมาสำหรับคุณ หากคุณประสบปัญหาใด ๆ โปรดแบ่งปันปัญหาของคุณผ่านแบบฟอร์มความคิดเห็นด้านล่าง