Cara Install Apache Tomcat 9 di Ubuntu 18.04
Apache Tomcat adalah aplikasi web server dengan lisensi open source untuk menjalankan Java Servlet, JavaServer Pages, Java Expression Language, dan Java WebSocket.
Install Apache Tomcat
Sebelum install Apache Tomcat, update terlebih dahulu dan install default-jdk.
1 2 | sudo apt update sudo apt install default-jdk -y |
Membuat group dan user tomcat.
1 2 | sudo addgroup tomcat sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat |
Download Apache Tomcat 9
1 | wget -c https://www-eu.apache.org/dist/tomcat/tomcat-9/v9.0.31/bin/apache-tomcat-9.0.31.tar.gz |
Mengekstrak file apache-tomcat-*.tar.gz, mengcopy ke folder tomcat, dan mengubah owner dan permissionnya.
1 2 3 4 5 6 7 8 | tar xzvf apache-tomcat-*tar.gz -C /opt cd /opt sudo mv apache-tomcat-9.0.31 tomcat sudo chgrp -R tomcat /opt/tomcat cd tomcat sudo chmod -R g+r conf sudo chmod g+x conf sudo chown -R tomcat webapps/ work/ temp/ logs/ |
Mengecek di mana folder Java-JDK untuk dimasukkan ke dalam konfigurasi tomcat service. Hasilnya berada di /usr/lib/jvm/java-1.11.0-openjdk-amd64.
1 2 3 | sudo update-java-alternatives -l java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64 |
Membuat file konfigurasi tomcat service.
1 | sudo nano /etc/systemd/system/tomcat.service |
Isi dari file konfigurasi tomcat service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | [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 |
Reload konfigurasi service, jalankan dan aktifkan tomcat service. Status service harus active (running).
1 2 3 4 | sudo systemctl daemon-reload sudo systemctl start tomcat sudo systemctl enable tomcat sudo systemctl status tomcat |
Browse http://ip-server:8080 untuk menguji apakah Apache Tomcat sudah berjalan dengan baik.
Konfigurasi Tomcat Web Management Interface
Konfigurasi user yang mengakses web management interface.
1 | sudo nano /opt/tomcat/conf/tomcat-users.xml |
Masukkan konfigurasi user di bawah ini di antara tag tomcat-users. User ini yang dapat mengakses manager-gui dan admin-gui.
1 | <user username="admin" password="password" roles="manager-gui,admin-gui"/> |
Secara default, Tomcat membatasi akses ke Manager dan Host Manager, hanya bisa diakses dari localhost atau 127.0.0.1 saja. Karena Tomcat web management interface diakses secara remote, maka konfigurasi pembatasan akses harus dinonatkifkan atau menuliskan IP Publik dari internet yang kita gunakan untuk mengakses Tomcat web management interface.
File konfigurasi untuk Manager.
1 | sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml |
File konfigurasi untuk Host Manager.
1 | sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml |
Beri komentar pada konfigurasi Valve className=”org.apache.catalina.valves.RemoteAddrValve.
1 2 3 4 5 | ... <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" /> --> ... |
Restart tomcat service.
1 2 | sudo systemctl restart tomcat sudo systemctl status tomcat |
Browse http://ip-server:8080.
Uji klik menu Server Status, Manager App, dan Host Manager, harus bisa diakses.
Menjalankan File JSP
Selanjutnya menguji menjalankan file JSP.
Folder Document Root berada di /opt/tomcat/webapps/ROOT.
1 2 | cd /opt/tomcat/webapps/ROOT sudo nano date.jsp |
Menampilkan tanggal dengan JSP.
1 2 3 4 5 6 7 8 9 10 11 | <%@ page language="java" contentType="text/html"%> <%@ page import="java.text.*,java.util.*" %> <html> <head> <title>Date JSP</title> </head> <% SimpleDateFormat sdf=new SimpleDateFormat("MM/dd/yyyy"); %> <body> <h1>Welcome to Tomcat! Today is <%= sdf.format(new Date()) %></h1> </body> </html> |
1 2 | sudo chown tomcat:tomcat date.jsp sudo chmod 640 date.jsp |
Browse http://ip-server:8080/date.jsp
Redirect Port
Secara default, Tomcat web server berjalan di port 8080. Agar Tomcat dapat diakses melalui port 80, kita dapat melakukannya dengan cara menambahkan rules di iptables.
Rules ini akan mem-forward atau me-redirect permintaan akses port 80 ke 8080 (HTTP) dan 443 ke 8443 (HTTPS)
1 2 3 4 5 6 | sudo apt install iptables-persistent -y sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 sudo iptables -t nat -I PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443 sudo iptables -L sudo netfilter-persistent save sudo netfilter-persistent reload |
Browse http://ip-server, apakah sudah bisa diakses melalui port 80.
Selamat mencoba 🙂