Centos 7 Üzerine Tomcat 9 Kurulumu

Normalde bu işlemi bir SH scripti ile yapıyorum ancak yazıya dökmem gerektiğinden bilmeniz için adım adım yazacam. Tomcat ne işe yarıyor? Java scriptlerini web ortamında çalıştırmaya yarıyor diyebilirim. Yani şöyle; Java Servlet, JavaServer Pages, Java Expression Language ve Java WebSocket çalıştırmak için bu yazılımı kurmanız lazım. Centos 7 benim tercihim. Minimal kurulum yaparsanız ekstra paketlerde kurmanız gerekecektir. Buna dikkat edelim. Örneğin; wget kurmalısınız.

Hep beraber ön hazırlık yapalım. SSH girişi yapalım. Öncelikle bütün paketleri güncelleyelim.

yum -y update

Kernel güncellemesi olduysa reboot edelim. Sonrasında ilk olarak java kurulumu yapmamız gerekiyor.

java –version diyerek kontrol yapalım. Aşağıdaki gibi ekran gelmediyse kurulum yapacağız demektir.

java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

Kurulum çok zor işlemdir 🙂 Şu komutu uyguluyorsunuz.

yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64

Şimdi java kurulduğuna göre tomcat kurulumuna başlayalım. Benim bu yazıyı yazdığım tarihte tomcat versiyonumuz 9.0.12. Buna göre paketleri wget ile sunucuya çekiyorum. Sizde dosya bulunamadı hatası alırsanız https://www.apache.org/dist/tomcat/tomcat-9/ adresine gidin. Oradan versiyon kontrol ederek indirme yapabilirsiniz. Ben zip uzantısını tercih ediyorum. Siz isterseniz tar.gz olarak indirebilirsiniz. (GÜNCELLEME: .tar.gz olarak indirirseniz açma komutu farklıdır!)

wget https://www.apache.org/dist/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.zip

Aşağıdaki komutu uygulayarak indirdiğim zipli dosyayı /opt dizininde açıyoruz.

unzip apache-tomcat-9.0.12.zip -d /opt

Dosyayı açtıktan sonra opt klasörüne girelim ve klasör adını tomcat yapalım.

cd /opt
mv apache-tomcat-9.0.12/ tomcat

GÜNCELLEME: .tar.gz olarak indiren arkadaşlar için komutları güncelleyelim.

Önce paketi açıyoruz ve sonra paketi taşıyoruz.

tar -zxvf apache-tomcat-9.0.12.tar.gz
mv apache-tomcat-9.0.12/* /opt/tomcat/

Sıra geldi CATALINA_HOME ortam değişkenini ayarlamaya. Bunu yapmazsanız çalıştıramazsınız. Aşağıdaki komutları çalıştırın.

echo "export CATALINA_HOME='/opt/tomcat/'" >> ~/.bashrc
source ~/.bashrc

tomcat için kullanıcı ekleyelim;

useradd -r tomcat --shell /bin/false

tomcat klasörümüze son oluşturduğumuz kullanıcının sahipliğini atayalım. Neden mi bunu yapıyoruz? tomcat ‘in root kullanıcısı yetkileri ile çalışmasını istemiyoruz.

chown -R tomcat:tomcat /opt/tomcat/

Ve tomcat adında bir servis tanımlaması yapalım ki restart, start, stop, status gibi komutları çalıştırabilelim. Aşağıdaki komutu uygulayarak editörü açalım. Burada ben nano tercih ediyorum, siz isterseniz vi editörünü de kullanabilirsiniz.

nano /etc/systemd/system/tomcat.service

Boş bir dosya açılacak. İçerisine aşağıdaki kodları ekleyip kaydedip çıkalım.

[Unit]
Description=Apache Tomcat 9
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

Centos 7 daemonlarını yeni servis eklediğimiz için reload edelim.

systemctl daemon-reload

Evet artık start, restart, stop gibi komutları verebilecek durumdayız. Aşağıdaki komutları uygulayarak tomcat yazılımını çalıştıralım ve her reboot sonrası çalışması için bunu servislere ekleyelim.

systemctl start tomcat
systemctl enable tomcat

Tomcat çalışıyor mu bakmak için aşağıdaki komutu uygulayabilirsiniz.

systemctl status tomcat

Ayarlarda değişiklik yaptım, restart edeceğim diyorsanız komutumuzda sadece status yerine restart yazıyoruz. Yani şöyle;

systemctl restart tomcat

Artık tomcat sayfamıza erişebiliriz. Erişim için: http://IP_ADRESI:8080/ adresine gireriz. Karşımıza Apache tomcat sayfası gelecektir. Gerisi sizin Java bilginize kalıyor. Hoşçakalın.

Ekstra iletmek istedikleriniz olursa yorum olarak iletin. Elimden geldiğince cevap vermeye çalışırım.