Apache Tomcat là web server dùng để chạy các ứng dụng web viết bằng Java.
Apache Tomcat triển khai các công nghệ liên quan đến Java như Servlet, JSP. Tính đến thời điểm bài viết này Apache Tomcat 9 đang là phiên bản mới nhất.
Trong bài hướng dẫn ngày hôm nay mình sẽ hướng dẫn bạn cách cài đặt Apache Tomcat 9 trên CentOS 7.
Chuẩn bị
Bạn cần chuẩn bị những thứ sau:
- Một máy chủ Linux mới tinh cài CentOS 7. Mình dùng Linode để hoàn thành bài hướng dẫn này. Bạn có thể tham khảo dịch vụ Java Hosting giá rẻ.
- Đăng nhập máy chủ Linux bằng một phần mềm SSH Client như MobaXTerm với user root.
Bước 1: Cài đặt Java
Đầu tiên bạn cần cập nhật hệ thống. Chạy lệnh sau:
1 |
yum -y update |
Bạn cũng cần một số công cụ tiện ích như wget và nano mà chúng ta sẽ sử dụng tới ở bước sau. Chạy lệnh sau:
1 |
yum install wget nano -y |
Tiếp theo bạn cần cài Java Development Kit (JDK). Đi tới trang tải JDK 8 trên website của Oracle. Click vào vào nút Accept License Agreement và copy link tải package .rpm thích hợp:
Tải về JDK 8 RPM với lệnh sau:
1 |
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.rpm" |
Nhớ thay đổi số phiên bản cho phù hợp với tình huống của bạn. Tiếp theo cài đặt JDK với lệnh sau:
1 |
yum localinstall jdk-8u151-linux-x64.rpm |
Khi Java được cài đặt bạn kiểm tra phiên bản Java bằng lệnh sau:
1 |
java -version |
Bạn sẽ nhìn thấy kết quả giống như thế này:
Thiết lập môi trường Java Home
Trước khi bắt tay vào cài đặt Tomcat bạn cần thiết lập môi trường Java Home, bạn kiểm tra vị trí Java cài đặt với lệnh sau:
1 |
update-alternatives --config java |
Bạn sẽ nhìn thấy kết quả giống như dưới:
Bây giờ bạn sửa lại file môi trường (/etc/environment) bằng trình biên tập nano:
1 |
nano /etc/environment |
Bổ sung thêm biến môi trường như thế này:
1 |
JAVA_HOME="/usr/java/jdk1.8.0_151/jre" |
Lưu lại file và thoát khỏi nano.
Tiếp theo, bạn sửa lại file .bash_profile:
1 |
nano ~/.bash_profile |
Bổ sung biến môi trường như bên dưới:
1 2 |
export JAVA_HOME=/usr/java/jdk1.8.0_151/jre export PATH=$JAVA_HOME/bin:$PATH |
Lưu lại file và thoát khỏi nano.
Tải lại file .bash_profile bằng lệnh sau:
1 |
source ~/.bash_profile |
Kiểm tra lại biến JAVA_HOME bằng lệnh sau:
1 |
echo $JAVA_HOME |
Bạn sẽ nhìn thấy kết quả giống như bên dưới:
Cài đặt Apache Tomcat 9
Đầu tiên chúng ta tạo một group tomcat:
1 |
groupadd tomcat |
Tiếp theo, chúng bổ sung một user tomcat vào group này:
1 |
useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat |
-s /bin/false: disable shell access
-g tomcat: gán user mới vào group tomcat
-d /opt/tomcat: thư mục home của user.
Tải và cài đặt Apache Tomcat:
Di chuyển tới thư mục /opt với lệnh sau:
1 |
cd /opt/ |
Tải về bản Apache Tomcat 9 mới nhất:
1 |
wget http://www-us.apache.org/dist/tomcat/tomcat-9/v9.0.1/bin/apache-tomcat-9.0.1.tar.gz |
Bây giờ giải nén bằng lệnh tar như bên dưới:
1 |
tar -xzvf apache-tomcat-9.0.1.tar.gz |
Di chuyển tất cả file nằm trong apache-tomcat-9.0.1 tới thư mục tomcat:
1 |
mv apache-tomcat-9.0.1/* tomcat/ |
Thay đổi quyền sở hữu thư mục tomcat với lệnh sau:
1 |
chown -hR tomcat:tomcat tomcat |
Tạo file service
Bạn cần tạo file service do vậy nó sẽ dễ dàng để start, stop hay restart apache tomcat service.
Chạy lệnh sau để tạo file service:
1 |
nano /etc/systemd/system/tomcat.service |
Copy và paste nội dung bên dưới vào file service:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[Unit] Description=Apache Tomcat 9 Servlet Container After=syslog.target network.target [Service] User=tomcat Group=tomcat Type=forking Environment=CATALINA_PID=/opt/tomcat/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh Restart=on-failure [Install] WantedBy=multi-user.target |
Lưu và thoát khỏi nano. Sau đó chạy những lệnh sau để khởi động tomcat service và bật service khi khởi động lại máy chủ:
1 2 3 |
systemctl daemon-reload systemctl start tomcat systemctl enable tomcat |
Tomcat sẽ start và lắng nghe ở cổng 8080. Bạn có thể kiểm tra lại bằng lệnh sau:
1 |
netstat -plntu |
Chạy lệnh sau để kiểm tra lại tình trạng tomcat service:
1 |
systemctl status tomcat |
Bây giờ bạn mở trình duyệt và truy cập http://your_ip_address:8080. Bạn sẽ nhìn thấy trang chủ Apache Tomcat như sau:
Cấu hình Tomcat User
Bạn chỉnh tomcat-users.xml sử dụng nano:
1 2 |
cd /opt/tomcat/conf/ nano tomcat-users.xml |
Bổ sung nội dung sau:
1 2 |
<role rolename="manager-gui"/> <user username="admin" password="password" roles="manager-gui,admin-gui"/> |
File cuối cùng như sau:
Mặc định manager gui và admin gui chỉ truy cập từ localhost. Do vậy bạn cần chỉnh sửa file context để truy cập từ xa.
Đầu tiên bạn chỉnh sửa file context.xml trong webapps:
1 2 |
cd /opt/tomcat/webapps/manager/META-INF/ nano context.xml |
Comment code như bên dưới:
1 2 |
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> --> |
Chỉnh sửa file context.xml còn lại với lệnh sau:
1 2 |
cd /opt/tomcat/webapps/host-manager/META-INF/ nano context.xml |
Comment code tương tự như trên:
1 2 |
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> --> |
Lưu lại file và khởi động lại tomcat:
1 |
systemctl restart tomcat |
Cấu hình tường lửa Firewalld
Trong trường hợp bạn chưa cài đặt tường lửa Firewalld bạn có thể cài đặt nó sử dụng lệnh sau:
1 |
yum install firewalld |
Bật tường lửa và để nó chạy khi khởi động lại:
1 2 |
systemctl start firewalld systemctl enable firewalld |
Bây giờ bạn bổ sụng port tomcat 8080 vào tường lửa bằng lệnh sau:
1 |
firewall-cmd --zone=public --permanent --add-port=8080/tcp |
Bạn sẽ nhìn thấy kết quả: success.
Bây giờ bạn tải lại tường lửa sử dụng lệnh sau:
1 |
firewall-cmd --reload |
Bạn có thể kiểm tra lại tất cả các port và service được mở bằng lệnh sau:
1 2 |
firewall-cmd --list-ports firewall-cmd --list-services |
Đến đây bạn đã học được cách cài đặt Apache Tomcat 9 trên Centos 7.
Cách start Tomcat ở cổng 80
Để start Tomcat ở cổng 80 do vậy bạn không còn nhập cổng khi truy cập, chỉ có một cách như sau. Gõ vào 2 lệnh sau. Những lệnh này sẽ forward cổng 80 sang cổng 8080 mà Tomcat đang lắng nghe:
1 2 |
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080 iptables -t nat -A PREROUTING -p udp -m udp --dport 80 -j REDIRECT --to-ports 8080 |
Note: Cách thay đổi file server.xml từ cổng 8080 sang 80 sẽ không làm việc vì chúng ta đang start Tomcat không phải user root. Những use không phải là root sẽ không có quyền mở cổng. Xem thảo luận Ở ĐÂY
Nếu bạn gặp vấn đề với quá trình cài đặt, hãy để lại bình luận bên dưới.