Apache Tomcat adalah implementasi open source Java Servlet, JavaServer Pages, Java Expression Language, dan teknologi Java WebSocket. Tomcat adalah salah satu aplikasi dan server web yang paling banyak diadopsi di dunia saat ini. Tomcat mudah digunakan dan memiliki ekosistem addons yang kuat.

Tutorial ini membahas cara menginstal Tomcat 8.5 di CentOS 7.

Diharapkan Anda membuka Linux Terminal / Baris perintah di Linux untuk mengikuti dan menerapkan panduan di halaman ini.

Kami juga sarankan Anda untuk menguji setiap tutorial atau panduan apapun yang ada di Internet di virtual machine (vmware atau virtualbox) sebelum menerapkan ke server produksi, agar tidak mengacaukan sistem yang aktif berjalan ketika ada kesalahan.

Prasyarat

Sebelum melanjutkan dengan tutorial ini, pastikan Anda masuk sebagai pengguna dengan hak istimewa sudo.

Install OpenJDK

Tomcat 8.5 membutuhkan Java SE 7 atau lebih baru. Dalam tutorial ini kita akan menginstal OpenJDK 8, implementasi open source Platform Java yang merupakan pengembangan dan runtime Java default di CentOS 7.

Instalasi paket OpenJDK cukup mudah:

sudo yum install java-1.8.0-openjdk-devel

Buat user Tomcat

Kami akan membuat pengguna sistem baru dan grup dengan direktori home /opt/tomcat yang akan menjalankan layanan Tomcat:

sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

Unduh Tomcat

Unduh versi terbaru Tomcat 8.5.x dari halaman download Tomcat. Pada saat penulisan ini, versi terbaru adalah 8.5.37. Sebelum melanjutkan dengan langkah selanjutnya, sebaiknya Anda memeriksa halaman unduhan untuk melihat apakah ada versi terbaru.

Ubah ke direktori /tmp dan download file zip dengan perintah wget berikut:

cd /tmp

wget http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.37/bin/apache-tomcat-8.5.37.zip

Setelah unduhan selesai, unzip file dan pindahkan ke direktori /opt/tomcat:

unzip apache-tomcat-*.zip
sudo mkdir -p /opt/tomcat
sudo mv apache-tomcat-8.5.37 /opt/tomcat/

Untuk memiliki kontrol lebih besar atas versi dan pembaruan, kami akan membuat symbolic link yang akan menunjuk ke direktori instalasi Tomcat:

sudo ln -s /opt/tomcat/apache-tomcat-8.5.37 /opt/tomcat/latest

Nanti jika Anda ingin memutakhirkan instalasi Tomcat, Anda cukup mengekstrak versi yang lebih baru dan mengubah symlink untuk mengarah ke versi terbaru.

Pengguna tomcat yang sebelumnya kita atur, perlu memiliki akses ke direktori tomcat, jadi kita akan mengubah kepemilikan direktori menjadi milik user dan grup tomcat :

sudo chown -R tomcat: /opt/tomcat

Jadikan skrip di dalam direktori bin agar dapat dieksekusi:

sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

Buat file unit systemd

Untuk menjalankan Tomcat sebagai layanan, kami akan membuat file unit tomcat.service baru di direktori  /etc/systemd/system/ dengan isi berikut:

/etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 8.5 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Beri tahu systemd bahwa kita membuat file unit baru dan memulai layanan Tomcat dengan menjalankan:

sudo systemctl daemon-reload
sudo systemctl start tomcat

Anda dapat memeriksa status layanan dengan perintah berikut:

sudo systemctl status tomcat
● tomcat.service - Tomcat 8.5 servlet container
   Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-05-05 11:04:40 UTC; 5s ago
  Process: 13478 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 13499 (java)
    Tasks: 45 (limit: 507)
   CGroup: /system.slice/tomcat.service
           └─13499 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/opt/tomcat/latest/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.security.

dan jika tidak ada kesalahan, Anda dapat mengaktifkan layanan Tomcat untuk mulai secara otomatis saat boot:

sudo systemctl enable tomcat

Sesuaikan Pengaturan Firewall

Jika server Anda dilindungi oleh firewall dan Anda ingin mengakses antarmuka tomcat dari luar jaringan lokal Anda, Anda harus membuka port 8080.

Untuk mengizinkan lalu lintas di port 8080 ketik perintah berikut:

sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

Ketika menjalankan aplikasi Tomcat di lingkungan produksi kemungkinan besar Anda akan memiliki load balancer atau reverse proxy dan itu adalah praktik terbaik untuk membatasi akses ke port 8080 hanya ke jaringan internal Anda.

Konfigurasikan Antarmuka Manajemen Web Tomcat

Sekarang Anda telah menginstal Tomcat di server Ubuntu, langkah selanjutnya adalah membuat pengguna yang akan mengakses antarmuka manajemen web.

Pengguna Tomcat dan perannya ditentukan dalam file tomcat-users.xml.

Jika Anda membuka file, Anda akan melihat bahwa file tersebut diisi dengan komentar dan contoh yang menjelaskan cara mengkonfigurasi file.

sudo nano /opt/tomcat/latest/conf/tomcat-users.xml

Untuk menambahkan pengguna baru yang dapat mengakses antarmuka web tomcat (manager-gui dan admin-gui) kita perlu mendefinisikan pengguna dalam file tomcat-users.xml seperti yang ditunjukkan di bawah ini. Pastikan Anda mengubah nama pengguna dan kata sandi yang lebih kuat agar lebih aman:

<tomcat-users>
<!--
    Comments
-->
   <role rolename="admin-gui"/>
   <role rolename="manager-gui"/>
   <user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>

Secara default antarmuka  manajemen web Tomcat dikonfigurasikan untuk memungkinkan akses hanya dari localhost. Jika Anda ingin dapat mengakses antarmuka web dari IP jarak jauh atau dari mana saja yang tidak direkomendasikan, karena ini merupakan risiko keamanan Anda dapat membuka file-file berikut dan lakukan perubahan berikut.

Jika Anda perlu mengakses antarmuka web dari mana saja, buka file berikut dan beri komentar atau hapus garis yang disorot dengan warna kuning:

sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
<!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0000:1" />
-->
</Context>
sudo nano /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
<!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0000:1" />
-->
</Context>

Jika Anda hanya perlu mengakses antarmuka web dari IP tertentu, alih-alih memberi comment pada block IP, tambahkan IP publik Anda ke daftar. Katakanlah IP publik Anda adalah 32.32.32.32 dan Anda hanya ingin mengizinkan akses dari IP itu:

sudo nano /opt/tomcat/latest/webapps/manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0000:1|32.32.32.32" />
</Context>
sudo nano /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0000:1|32.32.32.32" />
</Context>

Daftar alamat IP yang diizinkan adalah daftar yang dipisahkan dengan bilah vertikal |. Anda dapat menambahkan satu alamat IP atau menggunakan ekspresi reguler.

Mulai ulang layanan Tomcat agar perubahan diterapkan:

sudo systemctl restart tomcat

Uji Instalasi

Untuk menguji apakah Tomcat sudah terpasang dengan benar, Buka browser dan ketik: http://<domain_anda_atau_IP_address> 8080

Dengan asumsi instalasi berhasil, layar yang mirip dengan berikut ini akan muncul:

instalasi tomcat
Dashboard apache Tomcat

Dasbor pengelola aplikasi web Tomcat tersedia di http://<domain_atau_alamat_IP>:8080/manager/html. Dari sini Anda dapat deploy, undeploy, start, stop, dan reload aplikasi Anda.

tomcat manager
tomcat manager

Dasbor pengelola virtual host Tomcat tersedia di http://<domain_atau_alamat_ip>:8080/host-manager/html. Dari sini Anda dapat membuat, menghapus, dan mengelola host virtual Tomcat.

tomcat host manager
tomcat host manager

Kesimpulan

Anda telah berhasil menginstal Tomcat 8.5 pada sistem CentOS 7. Anda sekarang dapat mengunjungi Dokumentasi resmi Apache Tomcat 8 dan mempelajari lebih lanjut tentang fitur-fitur Apache Tomcat.