Tutorial ini menunjukkan cara menginstal Tomcat 8.5 di CentOS 7. Tomcat adalah implementasi open-source dari Java Servlet, JavaServer Pages, Java Expression Language, dan teknologi Java WebSocket.
Prasyarat #
Sebelum memulai dengan tutorial ini, pastikan Anda masuk ke server Anda dengan akun pengguna dengan hak sudo atau dengan pengguna root. Ini adalah praktik terbaik untuk menjalankan perintah administratif sebagai pengguna sudo alih-alih root. Jika Anda tidak memiliki pengguna sudo di sistem Anda, buat satu dengan mengikuti petunjuk berikut.
Instal 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.
Instalasinya sederhana dan mudah:
sudo yum install java-1.8.0-openjdk-devel
Buat pengguna sistem Tomcat #
Menjalankan Tomcat sebagai pengguna root adalah risiko keamanan dan tidak disarankan. Sebagai gantinya, kami akan membuat pengguna dan grup sistem baru dengan direktori home /opt/tomcat
yang akan menjalankan layanan Tomcat:
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
Unduh Tomcat #
Kami akan mengunduh versi terbaru Tomcat 8.5.x dari halaman unduhan Tomcat. Pada saat penulisan, versi terbaru adalah 8.5.37. Sebelum melanjutkan ke langkah berikutnya, Anda harus memeriksa halaman unduhan untuk versi baru apa pun.
Ubah ke /tmp
direktori dan gunakan wgetuntuk mengunduh file zip:
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, ekstrak file zip dan pindahkan ke /opt/tomcat
direktori:
unzip apache-tomcat-*.zip
sudo mkdir -p /opt/tomcat
sudo mv apache-tomcat-8.5.37 /opt/tomcat/
Tomcat 8.5 sering diperbarui. Untuk lebih mengontrol versi dan pembaruan, kami akan membuat tautan simbolik latest
yang akan menunjuk ke direktori instalasi Tomcat:
sudo ln -s /opt/tomcat/apache-tomcat-8.5.37 /opt/tomcat/latest
Pengguna Tomcat yang sebelumnya kita siapkan harus memiliki akses ke direktori Tomcat. Ubah kepemilikan direktori menjadi pengguna dan grup Tomcat:
sudo chown -R tomcat: /opt/tomcat
Buat skrip di dalam bin
direktori yang dapat dieksekusi dengan mengeluarkan chmod
berikut ini perintah:
sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
Buat file unit systemd #
Untuk menjalankan Tomcat sebagai layanan, buat tomcat.service
file unit di /etc/systemd/system/
direktori dengan isi sebagai berikut:
[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 kami membuat file unit baru dan memulai layanan Tomcat dengan menjalankan:
sudo systemctl daemon-reload
sudo systemctl start tomcat
Periksa 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: disabled)
Active: active (running) since Sat 2018-03-31 16:30:48 UTC; 3s ago
Process: 23826 ExecStart=/opt/tomcat/latest/bin/startup.sh (code=exited, status=0/SUCCESS)
Main PID: 23833 (java)
CGroup: /system.slice/tomcat.service
└─23833 /usr/lib/jvm/jre/bin/java -Djava.util.logging.config.file=/opt/tomcat/latest/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.security.egd=fi...
Jika tidak ada kesalahan, Anda dapat mengaktifkan layanan Tomcat untuk dimulai secara otomatis saat boot:
sudo systemctl enable tomcat
Sesuaikan Firewall #
Jika server Anda dilindungi oleh firewall dan Anda ingin mengakses antarmuka Tomcat dari luar jaringan lokal, buka port 8080
.
Gunakan perintah berikut untuk membuka port yang diperlukan:
Dalam kebanyakan kasus, saat menjalankan Tomcat di lingkungan produksi, Anda akan menggunakan penyeimbang beban atau proxy terbalik. Praktik terbaik untuk mengizinkan akses ke portsudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
8080
hanya untuk jaringan internal Anda. Konfigurasi Antarmuka Manajemen Web Tomcat #
Pada titik ini Tomcat diinstal dan kita dapat mengaksesnya dengan browser web pada port 8080
, tetapi kami tidak dapat mengakses antarmuka manajemen web karena kami belum membuat pengguna.
Pengguna Tomcat dan perannya didefinisikan dalam tomcat-users.xml
berkas.
Jika Anda membuka file tersebut, Anda akan melihat bahwa file tersebut dipenuhi 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 di tomcat-users.xml
file seperti gambar di bawah ini. Pastikan Anda mengubah nama pengguna dan sandi menjadi sesuatu yang 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 dikonfigurasi untuk mengizinkan akses hanya dari localhost. Jika Anda ingin dapat mengakses antarmuka web dari IP jarak jauh atau dari mana saja yang tidak disarankan karena merupakan risiko keamanan, Anda dapat membuka file berikut dan melakukan perubahan berikut.
Jika Anda perlu mengakses antarmuka web dari mana saja, buka file berikut dan beri komentar atau hapus baris yang disorot dengan warna kuning:
/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|0:0:0:0:0:0:0:1" />
-->
</Context>
/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|0:0:0:0:0:0:0:1" />
-->
</Context>
Jika Anda perlu mengakses antarmuka web hanya dari IP tertentu, alih-alih mengomentari blok, tambahkan IP publik Anda ke daftar. Katakanlah IP publik Anda adalah 41.41.41.41
dan Anda ingin mengizinkan akses hanya dari IP itu:
<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|41.41.41.41" />
</Context>
/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|0:0:0:0:0:0:0:1|41.41.41.41" />
</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 #
Buka browser Anda dan ketik:http://<your_domain_or_IP_address>:8080
Setelah instalasi berhasil, layar yang mirip dengan berikut akan muncul:
Dasbor pengelola aplikasi web Tomcat tersedia di http://<your_domain_or_IP_address>:8080/manager/html
. Dari sini, Anda dapat menerapkan, membatalkan penerapan, memulai, menghentikan, dan memuat ulang aplikasi Anda.
Dasbor manajer host virtual Tomcat tersedia di http://<your_domain_or_IP_address>:8080/host-manager/html
. Dari sini, Anda dapat membuat, menghapus, dan mengelola host virtual Tomcat.