Cách cài đặt Apache Tomcat 9 trên Ubuntu 18.04
Apache Tomcat là một web server và containers servlet được sử dụng để phục vụ các ứng dụng Java. Tomcat là một triển khai open-souce của các công nghệ Java Servlet và JavaServer Pages, do Apache Software Foundation phát hành. Hướng dẫn này bao gồm cài đặt cơ bản và một số cấu hình của version mới nhất của Tomcat 9 trên server Ubuntu 18.04 của bạn.Yêu cầu
Trước khi bắt đầu với hướng dẫn này, bạn nên có một user không phải root có quyền sudo
được cài đặt trên server của bạn. Bạn có thể xem cách thực hiện việc này bằng cách hoàn thành hướng dẫn cài đặt server ban đầu Ubuntu 18.04 của ta .
Bước 1 - Cài đặt Java
Tomcat yêu cầu Java phải được cài đặt trên server để có thể thực thi bất kỳ mã ứng dụng web Java nào. Ta có thể đáp ứng yêu cầu đó bằng cách cài đặt OpenJDK với apt.
Đầu tiên, hãy cập nhật index gói apt của bạn:
- sudo apt update
Sau đó cài đặt gói Bộ công cụ phát triển Java với apt:
- sudo apt install default-jdk
Bây giờ Java đã được cài đặt, ta có thể tạo một user tomcat
, user này sẽ được sử dụng để chạy dịch vụ Tomcat.
Bước 2 - Tạo user Tomcat
Vì mục đích bảo mật, Tomcat nên được chạy với quyền user không có quyền (tức là không phải root). Ta sẽ tạo một user mới và group sẽ chạy dịch vụ Tomcat.
Đầu tiên, tạo một group tomcat
mới:
- sudo groupadd tomcat
Tiếp theo, tạo một user tomcat
mới. Ta sẽ đặt user này thành thành viên của group tomcat
, với folder chính là /opt/tomcat
(nơi ta sẽ cài đặt Tomcat) và với shell là /bin/false
(vì vậy không ai có thể đăng nhập vào account ):
- sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Bây giờ user tomcat
của ta đã được cài đặt , hãy download và cài đặt Tomcat.
Bước 3 - Cài đặt Tomcat
Cách tốt nhất để cài đặt Tomcat 9 là download bản phát hành binary mới nhất sau đó cấu hình nó theo cách thủ công.
Tìm version mới nhất của Tomcat 9 tại trang Download Tomcat 9 . Tại thời điểm viết bài, version mới nhất là 9.0.10 , nhưng bạn nên sử dụng version ổn định hơn nếu có. Trong phần Phân phối binary , sau đó trong danh sách Core , sao chép liên kết đến “tar.gz”. Trong hầu hết các trình duyệt, bạn có thể thực hiện việc này bằng cách nhấp chuột phải vào liên kết và chọn Sao chép địa chỉ liên kết hoặc một tùy chọn tương tự.
Tiếp theo, thay đổi thành /tmp
trên server của bạn. Đây là một folder tốt để download các mục tạm thời, như tarball Tomcat, mà ta sẽ không cần sau khi extract nội dung Tomcat:
- cd /tmp
Sử dụng curl
để download liên kết mà bạn đã sao chép từ trang web Tomcat:
- curl -O paste_the_copied_link_here
Ta sẽ cài đặt Tomcat vào folder /opt/tomcat
. Tạo folder , sau đó extract repository vào nó bằng các lệnh sau:
- sudo mkdir /opt/tomcat
- sudo tar xzvf apache-tomcat-*tar.gz -C /opt/tomcat --strip-components=1
Tiếp theo, ta có thể cài đặt quyền user thích hợp cho cài đặt của bạn .
Bước 4 - Cập nhật quyền
User tomcat
mà ta cài đặt cần có quyền truy cập vào cài đặt Tomcat. Ta sẽ cài đặt điều đó ngay bây giờ.
Thay đổi folder mà ta đã extract cài đặt Tomcat:
- cd /opt/tomcat
Cấp quyền sở hữu group tomcat
đối với toàn bộ folder cài đặt:
- sudo chgrp -R tomcat /opt/tomcat
Tiếp theo, cấp cho group tomcat
quyền đọc vào folder conf
và tất cả nội dung của nó, đồng thời thực thi quyền truy cập vào chính folder :
- sudo chmod -R g+r conf
- sudo chmod g+x conf
Đặt user tomcat
làm chủ sở hữu của các folder webapps
, work
, temp
và logs
:
- sudo chown -R tomcat webapps/ work/ temp/ logs/
Bây giờ các quyền thích hợp đã được cài đặt , ta có thể tạo file dịch vụ systemd để quản lý quy trình Tomcat.
Bước 5 - Tạo file dịch vụ systemd
Ta muốn có thể chạy Tomcat như một dịch vụ, vì vậy ta sẽ cài đặt file dịch vụ systemd.
Tomcat cần biết nơi cài đặt Java. Đường dẫn này thường được gọi là “JAVA_HOME”. Cách dễ nhất để tra cứu vị trí đó là chạy lệnh sau:
- sudo update-java-alternatives -l
Outputjava-1.11.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.11.0-openjdk-amd64
JAVA_HOME
của bạn là kết quả từ cột cuối cùng (được đánh dấu màu đỏ). Với ví dụ trên, JAVA_HOME
chính xác cho server này sẽ là:
JAVA_HOME/usr/lib/jvm/java-1.11.0-openjdk-amd64
JAVA_HOME
của bạn có thể khác.
Với phần thông tin này, ta có thể tạo file dịch vụ systemd. Mở một file có tên tomcat.service
trong folder /etc/systemd/system
bằng lệnh :
- sudo nano /etc/systemd/system/tomcat.service
Dán các nội dung sau vào file dịch vụ của bạn. Sửa đổi giá trị của JAVA_HOME
nếu cần để trùng với giá trị bạn tìm thấy trên hệ thống của bạn . Bạn cũng có thể cần sửa đổi cài đặt cấp phát bộ nhớ được chỉ định trong CATALINA_OPTS
:
[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
Khi bạn hoàn tất, hãy lưu file .
Tiếp theo, reload daemon systemd để nó biết về file dịch vụ của ta :
- sudo systemctl daemon-reload
Khởi động dịch vụ Tomcat bằng lệnh :
- sudo systemctl start tomcat
Kiểm tra kỹ xem nó có bắt đầu không có lỗi không bằng lệnh :
- sudo systemctl status tomcat
Bước 6 - Điều chỉnh Tường lửa và Kiểm tra Server Tomcat
Bây giờ dịch vụ Tomcat đã được khởi động, ta có thể kiểm tra đảm bảo rằng trang mặc định có sẵn.
Trước khi làm điều đó, ta cần điều chỉnh firewall để cho phép các yêu cầu của ta đến với dịch vụ. Nếu bạn tuân theo các yêu cầu , bạn sẽ có một firewall ufw
hiện đang được kích hoạt.
Tomcat sử dụng cổng 8080
để chấp nhận các yêu cầu thông thường. Cho phép lưu lượng truy cập vào cổng đó bằng lệnh :
- sudo ufw allow 8080
Với firewall được sửa đổi, bạn có thể truy cập trang giật gân mặc định bằng cách truy cập domain hoặc địa chỉ IP của bạn, theo sau là :8080
trong trình duyệt web:
Open in web browserhttp://server_domain_or_IP:8080
Bạn sẽ thấy trang giật gân Tomcat mặc định, ngoài các thông tin khác. Tuy nhiên, nếu bạn nhấp vào các liên kết cho Ứng dụng Người quản lý, chẳng hạn, bạn sẽ bị từ chối quyền truy cập. Ta có thể cấu hình quyền truy cập đó tiếp theo.
Nếu bạn có thể truy cập thành công Tomcat, bây giờ là thời điểm tốt để kích hoạt file dịch vụ để Tomcat tự động khởi động khi server khởi động :
- sudo systemctl enable tomcat
Bước 7 - Cấu hình giao diện quản lý web Tomcat
Để sử dụng ứng dụng web trình quản lý đi kèm với Tomcat, ta phải thêm thông tin đăng nhập vào server Tomcat của ta . Ta sẽ thực hiện việc này bằng cách chỉnh sửa file tomcat-users.xml
:
- sudo nano /opt/tomcat/conf/tomcat-users.xml
Bạn cần thêm một user có thể truy cập manager-gui
và admin-gui
(các ứng dụng web đi kèm với Tomcat). Bạn có thể thực hiện bằng cách xác định user , tương tự như ví dụ bên dưới, giữa các thẻ tomcat-users
. Đảm bảo thay đổi tên user và password thành một thứ gì đó an toàn:
<tomcat-users . . .> <user username="admin" password="password" roles="manager-gui,admin-gui"/> </tomcat-users>
Lưu file khi bạn hoàn tất.
Theo mặc định, các version Tomcat mới hơn hạn chế quyền truy cập vào ứng dụng Trình quản lý và Trình quản lý server đối với các kết nối đến từ chính server . Vì ta đang cài đặt trên một máy từ xa, có thể bạn cần xóa hoặc thay đổi hạn chế này. Để thay đổi các giới hạn địa chỉ IP đối với các giới hạn này, hãy mở file context.xml
thích hợp.
Đối với ứng dụng Trình quản lý, hãy nhập:
- sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
Đối với ứng dụng Trình quản lý server , hãy nhập:
- sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
Bên trong, hãy comment về giới hạn địa chỉ IP để cho phép kết nối từ mọi nơi. Ngoài ra, nếu bạn chỉ muốn cho phép truy cập vào các kết nối đến từ địa chỉ IP của chính mình, bạn có thể thêm địa chỉ IP công cộng của bạn vào danh sách:
<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>
Lưu và đóng các file khi bạn hoàn tất.
Để các thay đổi của ta có hiệu lực, hãy khởi động lại dịch vụ Tomcat:
- sudo systemctl restart tomcat
Bước 8 — Truy cập giao diện web
Bây giờ ta đã tạo một user , ta có thể truy cập lại vào giao diện quản lý web trong trình duyệt web. , bạn có thể truy cập đúng giao diện bằng lệnh domain hoặc địa chỉ IP của server theo sau trên cổng 8080 trong trình duyệt của bạn:
Open in web browserhttp://server_domain_or_IP:8080
Trang bạn thấy phải giống với trang bạn đã được cung cấp khi bạn kiểm tra trước đó:
Hãy xem qua Ứng dụng Trình quản lý, có thể truy cập thông qua liên kết hoặc http:// server_domain_or_IP :8080/manager/html
. Bạn cần nhập thông tin đăng nhập account mà bạn đã thêm vào file tomcat-users.xml
. Sau đó, bạn sẽ thấy một trang trông như thế này:
Trình quản lý Ứng dụng Web được sử dụng để quản lý các ứng dụng Java của bạn. Bạn có thể Bắt đầu, Dừng, Reload , Triển khai và Hoàn tác tại đây. Bạn cũng có thể chạy một số chẩn đoán trên ứng dụng của bạn (tức là tìm rò rỉ bộ nhớ). Cuối cùng, thông tin về server của bạn có ở cuối trang này.
Bây giờ ta hãy xem qua Trình quản lý server , có thể truy cập qua liên kết hoặc http:// server_domain_or_IP :8080/host-manager/html/
:
Từ trang Trình quản lý server ảo, bạn có thể thêm server ảo để phục vụ các ứng dụng của bạn .
Kết luận
Quá trình cài đặt Tomcat của bạn đã hoàn tất! Như vậy, bạn có thể tự do triển khai các ứng dụng web Java của riêng mình!
Hiện tại, cài đặt Tomcat của bạn vẫn hoạt động, nhưng hoàn toàn không được mã hóa. Điều này nghĩa là tất cả dữ liệu, bao gồm các mục nhạy cảm như password , được gửi ở dạng văn bản thuần túy có thể bị chặn và đọc bởi các bên khác trên internet. Để ngăn điều này xảy ra, bạn nên mã hóa các kết nối của bạn bằng SSL. Bạn có thể tìm hiểu cách mã hóa các kết nối của bạn với Tomcat theo hướng dẫn này ( lưu ý: hướng dẫn này bao gồm mã hóa Tomcat 8 trên Ubuntu 16.04 ).
Các tin liên quan
Cách cài đặt Apache Tomcat 8 trên Ubuntu 16.042018-07-05
Cách tạo chứng chỉ SSL tự ký cho Apache trong Ubuntu 18.04
2018-07-05
Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) trên Ubuntu 18.04
2018-04-27
Cách cài đặt web server Apache trên Ubuntu 18.04
2018-04-27
Kiến thức cơ bản về Apache: Khắc phục sự cố cài đặt và cấu hình
2017-12-12
Cách cài đặt web server Apache trên Ubuntu 16.04
2017-05-26
Cách thiết lập server ảo Apache trên Debian 8
2017-02-06
Cách sử dụng Apache làm reverse-proxy với mod_proxy trên CentOS 7
2017-02-02
Cách sử dụng Apache làm Reverse Proxy với mod_proxy trên Ubuntu 16.04
2017-02-01
Cách sử dụng Apache làm reverse-proxy với mod_proxy trên Debian 8
2017-02-01