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 , 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.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 :
[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 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 .
Các tin liên quan
Cách tạo chứng chỉ SSL tự ký cho Apache trong Ubuntu 18.042018-07-05
Cách cài đặt web server Apache trên Ubuntu 18.04
2018-04-27
Cách cài đặt Linux, Apache, MySQL, PHP (LAMP) 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 Debian 8
2017-02-01
Cách sử dụng Apache làm Reverse Proxy với mod_proxy trên Ubuntu 16.04
2017-02-01
Cách viết lại URL bằng mod_rewrite cho Apache trên Debian 8
2017-01-27
 

