Thứ năm, 05/07/2018 | 00:00 GMT+7

Cách cài đặt Apache Tomcat 8 trên Ubuntu 16.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 8 trên server Ubuntu 16.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 16.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-get.

Đầu tiên, hãy cập nhật index gói apt-get của bạn:

  • sudo apt-get update

Sau đó cài đặt gói Bộ công cụ phát triển Java với apt-get:

  • sudo apt-get 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 8 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 8 tại trang Download Tomcat 8 . Tại thời điểm viết bài, version mới nhất là 8.5.5 , 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”.

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 http://apache.mirrors.ionfish.org/tomcat/tomcat-8/v8.5.5/bin/apache-tomcat-8.5.5.tar.gz

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-8*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 , templogs :

  • 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
Output
java-1.8.0-openjdk-amd64 1081 /usr/lib/jvm/java-1.8.0-openjdk-amd64

Biến JAVA_HOME đúng có thể được xây dựng bằng cách lấy kết quả từ cột cuối cùng (được đánh dấu màu đỏ) và thêm /jre vào cuối. 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.8.0-openjdk-amd64/jre

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 :

/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.8.0-openjdk-amd64/jre 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 browser
http://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-guiadmin-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.xml - Admin-user
<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:

file context.xml cho ứng dụng web Tomcat
<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 browser
http://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 đó:

Gốc Tomcat

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 Tomcat

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/ :

Trình quản lý  server  ảo Tomcat

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 .


Tags:

Các tin liên quan

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
Cách viết lại URL bằng mod_rewrite cho Apache trên Debian 8
2017-01-27