Apache Tomcat 9’u Debian 9 Üzerine Kurulumu: Kapsamlı Bir Rehber
Bu kapsamlı rehberde, Apache Tomcat 9 web sunucusunu Debian 9 (Stretch) işletim sistemi üzerine nasıl kuracağınızı adım adım öğreneceksiniz. Apache Tomcat, Java tabanlı web uygulamalarını çalıştırmak için kullanılan açık kaynaklı bir uygulama sunucusudur. Servlet’leri, JavaServer Pages (JSP), Java Expression Language (EL) ve WebSocket teknolojilerini destekleyen, hafif ve esnek yapısıyla Java geliştiricilerinin ve sistem yöneticilerinin tercih ettiği popüler bir çözümdür. Debian 9, kararlılığı ve güvenilirliği ile bilinen bir işletim sistemi olduğundan, Tomcat’i bu platformda kurmak, uygulamalarınız için sağlam bir temel sağlayacaktır.
Bu rehber boyunca, Apache Tomcat 9’un kurulumu için gerekli olan Java Geliştirme Kiti’nin (JDK) kurulmasından, Tomcat’in sistemde güvenli bir şekilde çalıştırılmasına, bir sistem hizmeti olarak yapılandırılmasına ve yönetici arayüzüne erişim için gerekli kullanıcı ayarlarının yapılmasına kadar tüm adımları detaylı bir şekilde ele alacağız. Amacımız, hem yeni başlayanlar hem de deneyimli kullanıcılar için anlaşılır, eksiksiz ve güvenli bir kurulum süreci sunmaktır.
Ön Gereksinimler
Apache Tomcat 9 kurulumuna başlamadan önce, aşağıdaki ön gereksinimlerin karşılandığından emin olmanız gerekmektedir:
- Debian 9 (Stretch) İşletim Sistemi: Kurulumu gerçekleştireceğiniz, güncel ve çalışan bir Debian 9 sunucusu veya sanal makine.
- Sudo Yetkileri: Root erişimi veya
sudoyetkilerine sahip bir kullanıcı hesabı. Bu rehberdeki tüm komutlarsudoöneki ile çalıştırılacaktır. - İnternet Bağlantısı: Gerekli paketleri indirmek ve Apache Tomcat dosyalarını çekmek için aktif bir internet bağlantısı.
- Temel Linux Bilgisi: Komut satırı kullanımı ve dosya sistemi navigasyonu hakkında temel bilgi.
Kuruluma başlamadan önce sisteminizin güncel olduğundan emin olmak iyi bir uygulamadır. Terminalinizi açın ve aşağıdaki komutları çalıştırın:
sudo apt update
sudo apt upgrade -y
Bu komutlar, paket listelerinizi güncelleyecek ve mevcut tüm paketleri en son sürümlerine yükseltecektir. Bu, olası uyumluluk sorunlarının önüne geçmek için önemlidir.
Java Geliştirme Kiti (JDK) Kurulumu
Apache Tomcat, Java tabanlı bir uygulama olduğundan, çalışabilmesi için bir Java Runtime Environment (JRE) veya Java Geliştirme Kiti’ne (JDK) ihtiyaç duyar. Tomcat 9 için OpenJDK 8 veya daha yeni bir sürüm önerilmektedir. Bu rehberde, Debian 9’un kararlı depolarında bulunan OpenJDK 8’i kuracağız. OpenJDK, Oracle JDK’ya açık kaynaklı bir alternatiftir ve çoğu durumda yeterli performansı sunar.
OpenJDK 8 Kurulumu
OpenJDK 8’i kurmak için aşağıdaki komutu kullanın:
sudo apt install openjdk-8-jdk -y
Bu komut, OpenJDK 8 JDK paketini ve bağımlılıklarını sisteminize yükleyecektir. Kurulum tamamlandıktan sonra, Java’nın doğru şekilde kurulduğunu ve sürümünü kontrol etmek için aşağıdaki komutları çalıştırabilirsiniz:
java -version
javac -version
Çıktı, Java’nın 1.8.0_xxx sürümünü (veya benzerini) göstermelidir. Bu, Java’nın başarıyla kurulduğunu ve Tomcat’in kullanıma hazır olduğunu gösterir.
JAVA_HOME Ortam Değişkenini Ayarlama (İsteğe Bağlı ama Önerilir)
Bazı Java uygulamaları ve scriptleri, JAVA_HOME ortam değişkeninin ayarlı olmasını bekler. Tomcat, bu değişken olmadan da çalışabilir, ancak ayarlı olması iyi bir uygulamadır. Debian’da OpenJDK kurulduğunda genellikle otomatik olarak yapılandırılır, ancak manuel olarak da kontrol edebilir veya ayarlayabilirsiniz. OpenJDK 8’in varsayılan yolu genellikle /usr/lib/jvm/java-8-openjdk-amd64 şeklindedir.
Bu değişkeni sistem genelinde ayarlamak için /etc/environment dosyasını düzenleyebilirsiniz:
sudo nano /etc/environment
Dosyanın sonuna aşağıdaki satırı ekleyin (eğer yoksa):
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
Dosyayı kaydedin ve kapatın (Ctrl+O, Enter, Ctrl+X). Değişikliklerin etkili olması için oturumu yeniden başlatmanız veya aşağıdaki komutu çalıştırmanız gerekebilir:
source /etc/environment
JAVA_HOME değişkeninin doğru ayarlandığını kontrol etmek için:
echo $JAVA_HOME
Bu komut, ayarladığınız yolu çıktıda göstermelidir.
Apache Tomcat 9 İndirme ve Yapılandırma
Java kurulumunu tamamladığımıza göre, şimdi Apache Tomcat 9’u indirip yapılandırma adımlarına geçebiliriz. Tomcat’i doğrudan Apache Yazılım Vakfı’nın resmi web sitesinden indirmeniz her zaman en güvenli yoldur.
Tomcat 9’u İndirme
Öncelikle, Tomcat’i indirmek için geçici bir dizine gidin:
cd /tmp
Ardından, Apache Tomcat 9’un en son kararlı sürümünü indirmek için wget komutunu kullanın. En güncel sürüm numarasını öğrenmek için Apache Tomcat 9 indirme sayfasına bakmanız önerilir. Bu rehber yazıldığı sırada 9.0.83 günceldi, ancak siz her zaman en güncel kararlı sürümü indirmelisiniz.
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.83/bin/apache-tomcat-9.0.83.tar.gz
İndirme işlemi tamamlandıktan sonra, sıkıştırılmış dosyayı açın:
tar -xvzf apache-tomcat-9.0.83.tar.gz
Bu komut, sıkıştırılmış dosyanın içeriğini mevcut dizine çıkaracaktır. Genellikle apache-tomcat-9.0.83 gibi bir dizin oluşur.
Tomcat Dizinini Taşıma ve İzinleri Ayarlama
Güvenlik ve yönetim kolaylığı açısından, Tomcat kurulumunu /opt dizini altına taşımak yaygın bir uygulamadır. /opt dizini, isteğe bağlı yazılım paketleri için kullanılır.
sudo mkdir /opt/tomcat
sudo mv /tmp/apache-tomcat-9.0.83/* /opt/tomcat/
Bu komutlar, Tomcat dosyalarını /opt/tomcat dizinine taşır. Artık geçici indirme dizinindeki sıkıştırılmış dosyayı ve çıkarılan dizini silebilirsiniz:
sudo rm -rf /tmp/apache-tomcat-9.0.83.tar.gz /tmp/apache-tomcat-9.0.83
Şimdi, Tomcat dizininin ve alt dizinlerinin doğru izinlere sahip olduğundan emin olmalıyız. Güvenlik nedeniyle, Tomcat’i root kullanıcısı yerine özel bir sistem kullanıcısı altında çalıştırmak en iyi uygulamadır. Bu, bir güvenlik ihlali durumunda Tomcat’in sisteminize verebileceği zararı sınırlar.
Tomcat Kullanıcısı Oluşturma
Tomcat’i çalıştıracak özel bir sistem kullanıcısı ve grubu oluşturalım. Bu kullanıcı, sisteme giriş yapma yetkisine sahip olmayacak ve ana dizini olmayacaktır. Bu, güvenlik için önemlidir.
sudo groupadd tomcat
sudo useradd -s /bin/nologin -g tomcat -d /opt/tomcat tomcat
sudo groupadd tomcat:tomcatadında yeni bir grup oluşturur.sudo useradd -s /bin/nologin -g tomcat -d /opt/tomcat tomcat:tomcatadında yeni bir kullanıcı oluşturur.-s /bin/nologin: Bu kullanıcının sisteme giriş yapamayacağını belirtir.-g tomcat: Kullanıcıyıtomcatgrubuna ekler.-d /opt/tomcat: Kullanıcının ana dizini olarak/opt/tomcat‘i ayarlar.
Şimdi, /opt/tomcat dizininin sahipliğini ve izinlerini yeni oluşturduğumuz tomcat kullanıcısına ve grubuna verelim:
sudo chown -R tomcat:tomcat /opt/tomcat
sudo chmod -R u+rwx,g+rx,o+rx /opt/tomcat
sudo chown -R tomcat:tomcat /opt/tomcat:/opt/tomcatdizininin ve tüm alt dizinlerinin sahipliğinitomcatkullanıcısına ve grubuna atar.sudo chmod -R u+rwx,g+rx,o+rx /opt/tomcat:tomcatkullanıcısına tüm okuma, yazma, çalıştırma izinlerini (u+rwx),tomcatgrubuna okuma ve çalıştırma izinlerini (g+rx) ve diğer kullanıcılara da okuma ve çalıştırma izinlerini (o+rx) verir.
Daha spesifik olarak, bazı Tomcat dizinleri için daha kısıtlı izinler ayarlamak isteyebilirsiniz. Örneğin, conf dizini genellikle sadece okunabilir olmalı, ancak tomcat kullanıcısının bu dizine erişimi olmalıdır:
sudo chmod -R g+r /opt/tomcat/conf
sudo chmod g+x /opt/tomcat/conf
Tomcat’in çalışırken dosya yazması gereken dizinler için tomcat kullanıcısına yazma izni verilmelidir:
sudo chown -R tomcat:tomcat /opt/tomcat/webapps /opt/tomcat/work /opt/tomcat/temp /opt/tomcat/logs
Tomcat Sistem Hizmeti Oluşturma
Tomcat’i manuel olarak başlatıp durdurmak yerine, bir systemd hizmeti olarak yapılandırmak, sunucu yeniden başlatıldığında otomatik olarak başlamasını sağlar ve yönetimi kolaylaştırır. Bir systemd hizmet dosyası oluşturmak için aşağıdaki adımları izleyin.
tomcat.service Dosyasını Oluşturma
Bir metin düzenleyici kullanarak /etc/systemd/system/tomcat.service adında yeni bir dosya oluşturun:
sudo nano /etc/systemd/system/tomcat.service
Dosyanın içine aşağıdaki içeriği yapıştırın:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="TOMCAT_LOGGING_CONFIG=/opt/tomcat/conf/logging.properties"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
RestartSec=10
Restart=on-failure
[Install]
WantedBy=multi-user.target
Açıklamalar:
[Unit]: Hizmetin temel bilgilerini tanımlar.Description: Hizmetin kısa açıklaması.After=network.target: Hizmetin ağ bağlantısı kurulduktan sonra başlaması gerektiğini belirtir.[Service]: Hizmetin çalışma şeklini tanımlar.Type=forking: Tomcat’in arka planda bir işlem olarak çalışacağını belirtir.User=tomcatveGroup=tomcat: Tomcat’in oluşturduğumuztomcatkullanıcısı ve grubu altında çalışmasını sağlar.Environment="JAVA_HOME=...": Java kurulum yolunu belirtir.Environment="CATALINA_HOME=..."ve"CATALINA_BASE=...": Tomcat’in ana ve temel dizinlerini belirtir.ExecStartveExecStop: Tomcat’i başlatma ve durdurma komutlarını belirtir.Restart=on-failure: Hizmetin bir hata durumunda otomatik olarak yeniden başlamasını sağlar.RestartSec=10: Yeniden başlatma denemeleri arasında 10 saniye bekler.[Install]: Hizmetin sistem önyüklemesinde nasıl etkinleştirileceğini tanımlar.WantedBy=multi-user.target: Sistem çok kullanıcılı moda geçtiğinde hizmetin başlatılmasını sağlar.
Dosyayı kaydedin ve kapatın (Ctrl+O, Enter, Ctrl+X).
Sistem Hizmetini Etkinleştirme
systemd‘nin yeni hizmet dosyasını tanıması için daemon’ları yeniden yükleyin:
sudo systemctl daemon-reload
Tomcat hizmetini sistem başlangıcında otomatik olarak başlayacak şekilde etkinleştirin:
sudo systemctl enable tomcat
Tomcat Yönetici Arayüzü İçin Kullanıcı Yapılandırma
Apache Tomcat, web tabanlı bir yönetici arayüzü (Manager App ve Host Manager App) ile birlikte gelir. Bu arayüzler, dağıtılmış uygulamaları yönetmek, sanal ana makineleri yapılandırmak ve genel sunucu durumunu izlemek için kullanılır. Bu arayüzlere erişmek için kullanıcı adı ve şifre tanımlamanız gerekir.
tomcat-users.xml Dosyasını Düzenleme
Tomcat kullanıcılarını ve rollerini tanımlayan dosya /opt/tomcat/conf/tomcat-users.xml‘dir. Bu dosyayı düzenlemek için:
sudo nano /opt/tomcat/conf/tomcat-users.xml
Dosyanın içinde, etiketinin arasına aşağıdaki gibi kullanıcı ve rol tanımlamalarını ekleyin. Kendi güvenli kullanıcı adınızı ve güçlü bir şifrenizi kullanmayı unutmayın:
Yukarıdaki örnekte, your_admin_username ve your_strong_password kısımlarını kendi seçtiğiniz değerlerle değiştirin. manager-gui rolü, Manager App’e web tarayıcısı üzerinden erişim sağlarken, admin-gui rolü Host Manager App’e erişim sağlar. Ayrıca, yorum satırı içindeki örnek kullanıcıları da kaldırabilir veya değiştirebilirsiniz.
Dosyayı kaydedin ve kapatın.
Yönetici Arayüzüne Uzaktan Erişim İzni Verme (Gerekliyse)
Varsayılan olarak, Tomcat’in Manager ve Host Manager uygulamaları yalnızca sunucunun kendisinden (localhost) erişilebilir. Eğer bu arayüzlere uzak bir makineden erişmek istiyorsanız, ilgili yapılandırma dosyalarını düzenlemeniz gerekmektedir. Ancak, bu bir güvenlik riski oluşturabilir ve dikkatli yapılmalıdır. Sadece güvenli ve bilinen IP adreslerinden erişime izin vermeniz önerilir.
Manager App için:
sudo nano /opt/tomcat/webapps/manager/META-INF/context.xml
Host Manager App için:
sudo nano /opt/tomcat/webapps/host-manager/META-INF/context.xml
Her iki dosyada da, aşağıdaki satırı bulun:
Bu satırı yorum satırı haline getirerek ( içine alarak) tüm IP adreslerinden erişime izin verebilirsiniz:
Veya belirli bir IP adresine (örneğin, 192\.168\.1\.100) veya bir IP aralığına (örneğin, 192\.168\.1\.\d+) izin vermek için allow özniteliğini düzenleyebilirsiniz. Örneğin, belirli bir IP’den erişim için:
Değişiklikleri kaydedin ve kapatın.
Tomcat Servisini Başlatma ve Durumunu Kontrol Etme
Tüm yapılandırmaları tamamladığımıza göre, artık Tomcat hizmetini başlatabilir ve durumunu kontrol edebiliriz.
Tomcat’i Başlatma
sudo systemctl start tomcat
Tomcat Durumunu Kontrol Etme
Tomcat hizmetinin çalışıp çalışmadığını kontrol etmek için:
sudo systemctl status tomcat
Çıktı, hizmetin aktif (running) olduğunu ve herhangi bir hata olup olmadığını göstermelidir. Eğer bir sorun varsa, hata mesajlarını inceleyerek sorunu gidermeye çalışın.
Daha detaylı logları görmek için aşağıdaki komutu kullanabilirsiniz:
sudo journalctl -u tomcat --since "5 minutes ago"
Bu komut, son 5 dakikadaki Tomcat hizmetiyle ilgili logları gösterecektir.
Firewall Ayarlarını Yapılandırma (UFW Kullanıyorsanız)
Eğer sunucunuzda bir güvenlik duvarı (örneğin, UFW – Uncomplicated Firewall) etkinse, Tomcat’in varsayılan portu olan 8080’e dışarıdan erişime izin vermeniz gerekir. Aksi takdirde, web tarayıcınızdan Tomcat’e erişemezsiniz.
sudo ufw allow 8080/tcp
sudo ufw reload
Bu komutlar, 8080 portuna TCP trafiğine izin verir ve güvenlik duvarı kurallarını yeniden yükler.
Web Tarayıcısından Erişim
Şimdi bir web tarayıcısı açın ve sunucunuzun IP adresini veya alan adını 8080 portuyla birlikte kullanarak Tomcat’e erişmeyi deneyin:
http://sunucu_ip_adresi_veya_alan_adi:8080
Başarılı bir kurulum durumunda, Apache Tomcat’in varsayılan karşılama sayfasını görmelisiniz. Bu sayfada “Manager App” ve “Host Manager App” bağlantılarını göreceksiniz. Bu bağlantılara tıklayarak ve tomcat-users.xml dosyasında tanımladığınız kullanıcı adı ve şifre ile giriş yaparak yönetici arayüzlerine erişebilirsiniz.
Güvenlik İpuçları ve En İyi Uygulamalar
Apache Tomcat’i bir üretim ortamında kullanırken güvenlik büyük önem taşır. İşte bazı önemli güvenlik ipuçları ve en iyi uygulamalar:
- Varsayılan Kullanıcıları ve Şifreleri Değiştirin: Kurulum sırasında kullanılan veya varsayılan olarak gelen tüm kullanıcı adı ve şifreleri güçlü ve benzersiz değerlerle değiştirin. Özellikle
tomcat-users.xmldosyasındaki kullanıcıları dikkatlice yapılandırın. - Ayrı Bir Kullanıcı Altında Çalıştırın: Tomcat’i root kullanıcısı yerine, bu rehberde yaptığımız gibi, minimum yetkilere sahip ayrı bir sistem kullanıcısı altında çalıştırmak, güvenlik açıklarının etkisini önemli ölçüde azaltır.
- Gereksiz Uygulamaları Kaldırın: Üretim ortamında, Tomcat ile birlikte gelen varsayılan örnek uygulamaları (
docs,examples,host-manager,managergibi) kaldırın veya erişimlerini kısıtlayın. Bu uygulamalar genellikle güvenlik açıkları barındırabilir ve üretimde gereksizdir. Sadece ihtiyaç duyduğunuzmanagervehost-manageruygulamalarını güvenli bir şekilde yapılandırın. server.xmlAyarlarını Gözden Geçirin:/opt/tomcat/conf/server.xmldosyası, Tomcat’in ana yapılandırma dosyasıdır. Gereksiz konektörleri kapatın, erişim günlüklerini yapılandırın ve performansı artırıcı güvenlik ayarlarını uygulayın.- Firewall Kullanımı: Sunucunuzun güvenlik duvarını (UFW, iptables vb.) doğru şekilde yapılandırın. Yalnızca Tomcat’in ihtiyaç duyduğu portlara (varsayılan olarak 8080, HTTPS için 8443) ve belirli IP adreslerinden erişime izin verin.
- SSL/TLS Yapılandırması: Hassas verileri işleyen veya kullanıcı kimlik doğrulaması gerektiren uygulamalar için Tomcat’i SSL/TLS ile yapılandırarak HTTPS üzerinden çalışmasını sağlayın. Bu, iletişimi şifreleyerek veri güvenliğini artırır. Let’s Encrypt gibi ücretsiz sertifika sağlayıcıları kullanabilirsiniz.
- Güncel Tutma: Hem Java JDK’yı hem de Apache Tomcat’i düzenli olarak en son kararlı sürümlerine güncelleyin. Güvenlik açıkları genellikle yeni sürümlerde giderilir.
- Logları İzleme: Tomcat’in log dosyalarını (
/opt/tomcat/logs/dizininde bulunur) düzenli olarak kontrol edin. Hata mesajları, uyarılar veya şüpheli etkinlikler için logları izlemek, olası sorunları erken tespit etmenizi sağlar. - Yönetici Arayüzüne Erişimi Kısıtlayın:
managervehost-manageruygulamalarına yalnızca güvenli ağlardan veya belirli IP adreslerinden erişime izin verin. Bu rehberde bahsettiğimizcontext.xmldosyalarını kullanarak bu kısıtlamayı uygulayabilirsiniz.
Sonuç
Bu kapsamlı rehberde, Apache Tomcat 9’u Debian 9 işletim sistemi üzerine kurmanın tüm adımlarını başarıyla tamamladınız. Java Geliştirme Kiti’nin kurulumundan başlayarak, Tomcat dosyalarını indirip yapılandırmaya, güvenli bir sistem kullanıcısı oluşturmaya, Tomcat’i bir systemd hizmeti olarak yapılandırmaya ve yönetici arayüzü için kullanıcı ayarlarını yapmaya kadar her adımı detaylı bir şekilde ele aldık. Ayrıca, kurulum sonrası güvenliği sağlamak için önemli ipuçları ve en iyi uygulamaları da paylaştık.
Artık Debian 9 sunucunuzda çalışan bir Apache Tomcat 9 örneğiniz var. Bu, Java tabanlı web uygulamalarınızı (örneğin, Spring Boot uygulamaları, JSP tabanlı siteler) dağıtmak ve çalıştırmak için güçlü ve güvenilir bir platform sağlar. Tomcat’in esnek yapısı ve geniş topluluk desteği sayesinde, ihtiyaçlarınıza uygun her türlü web uygulamasını barındırabilirsiniz.
Kurulum sürecinde veya sonrasında herhangi bir sorunla karşılaşırsanız, Tomcat’in log dosyalarını kontrol etmek (/opt/tomcat/logs/ dizini) ve systemctl status tomcat komutunun çıktısını incelemek, sorun giderme için ilk adımlarınız olmalıdır. Apache Tomcat’in resmi belgeleri ve çevrimiçi topluluk forumları da ek yardım ve daha ileri yapılandırma seçenekleri için değerli kaynaklardır.