Apache Tomcat 9 Nedir?
Apache Tomcat, Java tabanlı web uygulamalarını barındırmak ve çalıştırmak için yaygın olarak kullanılan açık kaynaklı bir web sunucusu ve servlet konteyneridir. Java Servlet, JavaServer Pages (JSP), Java Expression Language (EL) ve Java WebSocket teknolojilerini uygular. Bir web sunucusu olarak Tomcat, genellikle Apache HTTP Server veya Nginx gibi diğer web sunucularıyla birlikte kullanılır, ancak bağımsız olarak da çalışabilir. Bu rehberde, Ubuntu 18.04 işletim sistemi üzerinde Apache Tomcat 9’un nasıl kurulacağını adım adım inceleyeceğiz.
Ön Gereksinimler ve Sistem Hazırlığı
Tomcat’i kurmaya başlamadan önce, sisteminizin güncel olduğundan ve gerekli yazılımların yüklü olduğundan emin olmalıyız. Tomcat bir Java uygulaması olduğundan, bir Java Geliştirme Kiti (JDK) kurulu olması şarttır.
Sistemi Güncelleme
İlk adım olarak, paket listelerinizi güncelleyelim ve mevcut paketleri yükseltelim:
sudo apt update
sudo apt upgrade -y
Java Geliştirme Kitini (JDK) Yükleme
Apache Tomcat 9, Java SE 8 veya daha yeni bir sürümünü gerektirir. Bu rehberde, OpenJDK 11’i yükleyeceğiz, çünkü bu sürüm uzun süreli destek (LTS) sağlar ve birçok modern uygulama için uyumludur.
sudo apt install openjdk-11-jdk -y
Kurulum tamamlandıktan sonra, Java sürümünü kontrol ederek kurulumu doğrulayabilirsiniz:
java -version
Çıktı, yüklü Java sürümünü göstermelidir, örneğin:
openjdk version "11.0.x" 2018-xx-xx
OpenJDK Runtime Environment (build 11.0.x+xx-Ubuntu-1ubuntu2.18.04.x)
OpenJDK 64-Bit Server VM (build 11.0.x+xx-Ubuntu-1ubuntu2.18.04.x, mixed mode, sharing)
Tomcat İçin Özel Bir Kullanıcı Oluşturma
Güvenlik uygulamaları gereği, Tomcat’i kök (root) kullanıcı olarak çalıştırmak yerine, ona özel, ayrıcalıksız bir kullanıcı hesabı altında çalıştırmak en iyisidir. Bu, olası güvenlik açıklarının sistemin geri kalanına yayılmasını önler.
Önce bir tomcat grubu oluşturalım:
sudo groupadd tomcat
Ardından, tomcat grubunun bir üyesi olan ve /opt/tomcat dizinini ana dizin olarak kullanan, ancak kabuk erişimi olmayan (/bin/false) bir tomcat kullanıcısı oluşturalım:
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Apache Tomcat 9’u İndirme ve Kurulum
Şimdi sıra Apache Tomcat 9’u resmi web sitesinden indirmeye geldi. En güncel sürümü edinmek için Apache Tomcat web sitesini kontrol etmeniz önerilir. Bu rehber için, 9.0.x sürümünü kullanacağız.
Tomcat Arşivini İndirme
Tomcat’i indirmek için wget komutunu kullanacağız. Güncel sürümün indirme bağlantısını Apache Tomcat 9 Downloads sayfasından alabilirsiniz. Bu örnekte, 9.0.83 sürümünü kullanıyoruz, ancak siz en güncel olanını indirmelisiniz.
cd /tmp
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.83/bin/apache-tomcat-9.0.83.tar.gz
Tomcat’i Kurulum Dizine Çıkarma
İndirdiğimiz arşivi /opt dizinine çıkaracağız. Bu, Apache Tomcat gibi üçüncü taraf yazılımlar için standart bir konumdur.
sudo mkdir /opt/tomcat
sudo tar -xf apache-tomcat-9.0.83.tar.gz -C /opt/tomcat --strip-components=1
--strip-components=1 parametresi, arşivdeki üst düzey dizini (apache-tomcat-9.0.83) atlayarak içeriği doğrudan /opt/tomcat altına çıkarmayı sağlar.
Tomcat İzinlerini Ayarlama
Oluşturduğumuz tomcat kullanıcısının Tomcat dosyalarına ve dizinlerine erişebilmesi için gerekli izinleri ayarlamamız gerekiyor.
sudo chown -R tomcat:tomcat /opt/tomcat
sudo sh -c 'chmod +x /opt/tomcat/bin/*.sh'
İlk komut, /opt/tomcat dizininin ve tüm alt dizinlerinin/dosyalarının sahipliğini tomcat kullanıcısına ve grubuna verir. İkinci komut ise, Tomcat’in çalıştırılabilir betik dosyalarına (.sh uzantılı olanlar) yürütme izni verir.
Apache Tomcat Sistem Servisi Oluşturma
Tomcat’i manuel olarak başlatmak ve durdurmak yerine, systemd kullanarak bir sistem servisi olarak yönetmek çok daha pratiktir. Bu, sunucu yeniden başlatıldığında Tomcat’in otomatik olarak başlamasını sağlar ve yönetimi kolaylaştırır.
Systemd Servis Dosyası Oluşturma
/etc/systemd/system/ dizininde tomcat.service adında bir dosya oluşturalım:
sudo nano /etc/systemd/system/tomcat.service
Aşağıdaki içeriği dosyaya yapıştırın:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/lib/jvm/java-11-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
Önemli Not: JAVA_HOME değişkeninin değeri, sisteminizdeki Java kurulum yolunu yansıtmalıdır. Yukarıdaki örnekteki yol, OpenJDK 11 için tipik bir Ubuntu yoludur. Kendi sisteminizde doğru yolu bulmak için readlink -f /usr/bin/java | sed "s:bin/java::" komutunu kullanabilirsiniz.
Tomcat Servisini Başlatma ve Etkinleştirme
Servis dosyasını kaydettikten ve kapattıktan sonra, systemd yöneticisini yeniden yüklememiz gerekir, böylece yeni servisimizi tanır:
sudo systemctl daemon-reload
Şimdi Tomcat servisini başlatabiliriz:
sudo systemctl start tomcat
Tomcat’in sistem başlangıcında otomatik olarak başlamasını sağlamak için servisi etkinleştirelim:
sudo systemctl enable tomcat
Servisin durumunu kontrol ederek çalıştığından emin olabilirsiniz:
sudo systemctl status tomcat
Çıktıda “active (running)” ifadesini görmelisiniz.
Tomcat Web Arayüzü ve Kullanıcı Yapılandırması
Tomcat Manager ve Host Manager web uygulamalarına erişebilmek için kullanıcı kimlik bilgilerini yapılandırmamız ve güvenlik duvarını ayarlamamız gerekmektedir.
Tomcat Kullanıcılarını Yapılandırma
Tomcat’in web arayüzüne (Manager ve Host Manager) erişim için kullanıcı adları ve parolaları tomcat-users.xml dosyasında tanımlanır. Bu dosyayı düzenleyelim:
sudo nano /opt/tomcat/conf/tomcat-users.xml
etiketi içine aşağıdaki örnek kullanıcıları ve rolleri ekleyin. Kullanıcı adı ve şifreleri kendi güvenli değerlerinizle değiştirmeyi unutmayın!
admin-gui rolü, hem Manager hem de Host Manager web uygulamalarına tam erişim sağlar. manager-gui rolü, Manager uygulamasına GUI üzerinden erişim sağlar. manager-script, betikler aracılığıyla erişim içindir. host-manager-gui ise Host Manager uygulamasına erişim içindir.
Manager ve Host Manager Uygulamaları İçin Uzak Erişim İzni (İsteğe Bağlı)
Varsayılan olarak, Manager ve Host Manager uygulamaları yalnızca sunucunun kendisinden (localhost) erişilebilir. Uzaktan erişime izin vermek isterseniz, ilgili context.xml dosyalarını düzenlemeniz gerekir. Bu bir güvenlik riski oluşturabilir, bu yüzden dikkatli olun ve sadece güvenli ağlarda kullanın.
Manager uygulamasını uzaktan erişime açmak için:
sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
İçindeki etiketini (veya tüm bloğunu) yorum satırı yapın veya silin:
Aynı işlemi Host Manager uygulaması için de yapın:
sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
Yine, etiketini yorum satırı yapın veya silin.
Değişikliklerin etkili olması için Tomcat servisini yeniden başlatın:
sudo systemctl restart tomcat
Güvenlik Duvarını Yapılandırma
Ubuntu’da varsayılan güvenlik duvarı olan UFW (Uncomplicated Firewall) etkinse, Tomcat’in varsayılan portu olan 8080’e gelen bağlantılara izin vermeniz gerekir:
sudo ufw allow 8080/tcp
sudo ufw enable
sudo ufw status
ufw status komutu, 8080 portunun açık olduğunu göstermelidir.
Tomcat Web Arayüzünü Test Etme
Artık bir web tarayıcısı açıp sunucunuzun IP adresini veya alan adını ve 8080 portunu kullanarak Tomcat’e erişebilirsiniz:
http://SUNUCU_IP_ADRESINIZ:8080
Apache Tomcat’in varsayılan karşılama sayfasını görmelisiniz. Buradan “Manager App” veya “Host Manager App” bağlantılarına tıklayarak, tomcat-users.xml dosyasında tanımladığınız kullanıcı adı ve şifre ile giriş yapabilirsiniz.
Sonuç ve Sıkça Sorulan Sorular (SSS)
Tebrikler! Apache Tomcat 9’u Ubuntu 18.04 sunucunuza başarıyla kurdunuz. Artık Java tabanlı web uygulamalarınızı bu sunucuya deploy edebilir ve çalıştırabilirsiniz. Uygulamalarınızı genellikle /opt/tomcat/webapps/ dizinine WAR (Web Application Archive) dosyaları olarak yerleştirmeniz gerekir.
Sıkça Sorulan Sorular (SSS)
Tomcat’in varsayılan portu nasıl değiştirilir?
Tomcat’in varsayılan portu (8080) /opt/tomcat/conf/server.xml dosyasında yapılandırılır. Bu dosyayı açın ve aşağıdaki satırı bulun:
port="8080" değerini istediğiniz başka bir port numarasıyla değiştirin (örneğin, 80 veya 443 için ek yapılandırma gerekebilir). Değişiklikleri kaydettikten sonra Tomcat servisini yeniden başlatmayı unutmayın: sudo systemctl restart tomcat.
Tomcat neden başlamıyor?
Tomcat’in başlamaması durumunda, aşağıdaki adımları kontrol edin:
- Logları Kontrol Edin:
/opt/tomcat/logs/catalina.outdosyasını veyasudo journalctl -u tomcatkomutunu kullanarak hata mesajlarını kontrol edin. - Java Kurulumu:
JAVA_HOMEortam değişkeninin/etc/systemd/system/tomcat.servicedosyasında doğru şekilde ayarlandığından ve Java’nın düzgün çalıştığından emin olun. - İzinler:
/opt/tomcatdizinindeki dosya ve dizin izinlerinintomcatkullanıcısı için doğru ayarlandığından emin olun. - Port Çakışması: Tomcat’in kullanmaya çalıştığı portun (varsayılan 8080) başka bir uygulama tarafından kullanılıp kullanılmadığını kontrol edin.
Tomcat’i HTTP yerine HTTPS üzerinden nasıl çalıştırırım?
HTTPS’yi etkinleştirmek için /opt/tomcat/conf/server.xml dosyasında SSL/TLS konektörünü yapılandırmanız gerekir. Bu genellikle bir SSL sertifikası (Let’s Encrypt veya ticari bir CA’dan) gerektirir. server.xml dosyasında genellikle yorum satırı yapılmış bir bloğu bulunur. Bu bloğu etkinleştirip sertifika ve anahtar yollarını doğru şekilde yapılandırmanız gerekir.
Tomcat’i nasıl güncellerim?
Tomcat’i güncellemek için genellikle yeni sürümü indirip mevcut kurulumunuzun üzerine kurmanız gerekir. Ancak, mevcut yapılandırma dosyalarınızı (server.xml, web.xml, tomcat-users.xml vb.) yedeklemeniz ve yeni kurulumdan sonra bunları dikkatlice taşımanız önemlidir. Önceki kurulumunuzu silmeden önce yeni sürümü ayrı bir dizine kurup test etmek, güvenli bir güncelleme stratejisidir.