Apache Tomcat 7’yi Ubuntu 14.04’e Apt-Get ile Kurulum Kılavuzu
Apache Tomcat, Java tabanlı web uygulamalarını çalıştırmak için kullanılan açık kaynaklı bir web sunucusu ve servlet konteyneridir. Java Servlet, JavaServer Pages (JSP), Java Expression Language ve Java WebSocket teknolojilerini uygular ve bu sayede geliştiricilerin dinamik web içerikleri oluşturmasını sağlar. Özellikle Java ekosisteminde kurumsal düzeyde uygulamaların dağıtımı için yaygın olarak tercih edilen bir platformdur. Bu kapsamlı kılavuzda, Apache Tomcat 7’yi Ubuntu 14.04 işletim sistemine apt-get paket yöneticisi aracılığıyla nasıl kuracağınızı adım adım anlatacağız. Her ne kadar hem Ubuntu 14.04 hem de Apache Tomcat 7 artık uzun süredir desteklenmeyen (End-of-Life – EOL) yazılımlar olsa da, belirli eski sistemlerin bakımı veya öğrenme amaçlı kurulumlar için bu bilgi hala değerli olabilir. Kurulum sürecini basitleştirmek ve standartlaştırmak için apt-get kullanımı, bağımlılıkların otomatik olarak çözülmesini ve sistemle entegrasyonu kolaylaştırır.
Giriş ve Ön Gereksinimler
Apache Tomcat, Java Sanal Makinesi (JVM) üzerinde çalıştığı için, sisteminizde bir Java Geliştirme Kiti (JDK) veya Java Çalışma Zamanı Ortamı (JRE) yüklü olması zorunludur. Ubuntu 14.04 için Apache Tomcat 7’yi kurarken, genellikle OpenJDK 7 veya Oracle JDK 7 tercih edilir. apt-get ile kurulum yapacağımız için, OpenJDK 7’nin paket deposunda bulunması en kolay ve önerilen yoldur.
Kuruluma başlamadan önce, sisteminizin güncel olduğundan emin olmanız önemlidir. Bu, olası güvenlik açıklarını kapatır ve en yeni paket bilgilerine sahip olmanızı sağlar. Terminali açın (Ctrl+Alt+T) ve aşağıdaki komutları çalıştırın:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get update komutu, yerel paket indeksini günceller ve mevcut tüm paketlerin en son sürümleri hakkında bilgi edinir. sudo apt-get upgrade komutu ise, yüklü paketlerinizi bu yeni bilgilere göre yükseltir.
Java Kurulumu
Apache Tomcat’in düzgün çalışabilmesi için bir Java ortamına ihtiyacı vardır. Ubuntu 14.04’te OpenJDK 7’yi kurmak için aşağıdaki komutları kullanabilirsiniz:
sudo apt-get install openjdk-7-jdk
Bu komut, OpenJDK 7 Geliştirme Kitini ve bağımlılıklarını sisteminize yükleyecektir. Kurulum tamamlandıktan sonra, Java’nın doğru bir şekilde yüklendiğini ve sisteminiz tarafından tanındığını doğrulamak için aşağıdaki komutları çalıştırın:
java -version
javac -version
Bu komutlar, yüklü Java sürümünü ve Java derleyicisinin sürümünü göstermelidir. Örneğin, java -version çıktısı şuna benzer olabilir:
java version "1.7.0_XX"
OpenJDK Runtime Environment (IcedTea 2.6.10) (7u111-2.6.10-0ubuntu0.14.04.4)
OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode)
Eğer Java’nın doğru sürümü görünüyorsa, Tomcat kurulumuna geçmeye hazırsınız demektir. Java kurulumunda herhangi bir sorunla karşılaşırsanız, hata mesajlarını dikkatlice inceleyin ve internet üzerinde benzer sorunlar için çözümler arayın.
Apache Tomcat 7 Kurulumu
Java ortamı hazırlandıktan sonra, Apache Tomcat 7’yi apt-get kullanarak kurmak oldukça basittir. Ubuntu 14.04’ün varsayılan depolarında Tomcat 7 paketi mevcuttur.
Aşağıdaki komutu kullanarak Tomcat 7’yi kurun:
sudo apt-get install tomcat7
Bu komut, Tomcat 7 paketini ve onunla birlikte gelen tüm bağımlılıkları (örneğin, tomcat7-common, libservlet3.0-java, vb.) otomatik olarak indirip kuracaktır. apt-get ile kurulum yapıldığında, Tomcat için varsayılan bir kullanıcı ve grup oluşturulur, gerekli dizinler ayarlanır ve sistem başlangıcında otomatik olarak başlatılması için bir servis yapılandırılır. Ubuntu 14.04, Upstart init sistemini kullandığından, Tomcat hizmeti Upstart betikleri aracılığıyla yönetilecektir.
Kurulum tamamlandığında, Tomcat hizmeti genellikle otomatik olarak başlatılır. Hizmetin durumunu kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
sudo service tomcat7 status
Eğer hizmet çalışıyorsa, çıktıda “tomcat7 is running” veya benzeri bir mesaj görmelisiniz. Eğer çalışmıyorsa, aşağıdaki komutla manuel olarak başlatabilirsiniz:
sudo service tomcat7 start
Tomcat’in varsayılan HTTP portu 8080’dir. Bir web tarayıcısı açın ve sunucunuzun IP adresini veya alan adını kullanarak 8080 portundan erişmeye çalışın:
http://your_server_ip:8080
Eğer her şey doğru yapılandırıldıysa, “It works!” yazan Apache Tomcat 7 karşılama sayfasını görmelisiniz. Bu sayfa, Tomcat’in başarıyla kurulduğunu ve çalıştığını gösterir.
Apache Tomcat 7 Konfigürasyonu
apt-get ile kurulan Tomcat, varsayılan bir konfigürasyonla gelir. Ancak, çoğu durumda bu konfigürasyonu kendi ihtiyaçlarınıza göre özelleştirmeniz gerekecektir. Tomcat’in önemli konfigürasyon dosyaları /etc/tomcat7 dizini altında bulunur. Uygulama dağıtımı ve yönetimi için kullanılan web uygulamaları (Manager ve Host Manager) ise /var/lib/tomcat7/webapps dizininde yer alır.
Tomcat Kullanıcı Yönetimi (Manager ve Host Manager Uygulamaları)
Tomcat Manager ve Host Manager uygulamaları, web arayüzü üzerinden Tomcat sunucunuzu yönetmenizi sağlar. Ancak bu uygulamalara varsayılan olarak erişim kısıtlıdır ve kullanıcı tanımlamanız gerekir. Kullanıcılar ve rolleri /etc/tomcat7/tomcat-users.xml dosyasında tanımlanır.
Bu dosyayı düzenlemek için bir metin düzenleyici kullanın:
sudo nano /etc/tomcat7/tomcat-users.xml
Dosyanın içinde, etiketleri arasına aşağıdaki örnek kullanıcıları ve rolleri ekleyebilirsiniz. Güvenlik nedeniyle, username ve password değerlerini güçlü ve tahmin edilemez değerlerle değiştirmeyi unutmayın.
* manager-gui: Manager uygulamasının web arayüzüne tam erişim sağlar.
* admin-gui: Host Manager uygulamasının web arayüzüne tam erişim sağlar (genellikle manager-gui ile birlikte kullanılır).
* manager-script: Manager uygulamasının komut satırı veya programatik arayüzüne erişim sağlar.
Değişiklikleri kaydettikten sonra (Nano’da Ctrl+O, Enter, Ctrl+X), Tomcat hizmetini yeniden başlatmanız gerekir ki değişiklikler etkili olsun:
sudo service tomcat7 restart
Manager ve Host Manager Uygulamalarına Uzaktan Erişim
Varsayılan olarak, Manager ve Host Manager uygulamalarına yalnızca yerel makineden (localhost) erişilebilir. Bu bir güvenlik önlemidir. Ancak geliştirme veya belirli senaryolarda uzaktan erişime izin vermek isteyebilirsiniz. Bu, ilgili context.xml dosyalarını düzenleyerek yapılır.
UYARI: Üretim ortamlarında bu uygulamalara uzaktan erişime izin vermek ciddi güvenlik riskleri oluşturabilir. Eğer uzaktan erişim sağlamanız gerekiyorsa, bunu bir güvenlik duvarı (firewall) veya ters proxy (reverse proxy) arkasında ve IP kısıtlamalarıyla yapmanız şiddetle tavsiye edilir.
Manager uygulamasının context.xml dosyasını düzenleyin:
sudo nano /var/lib/tomcat7/webapps/manager/META-INF/context.xml
Bu dosyanın içinde, etiketi altında, Allow kuralını içeren bir etiketi bulacaksınız. Bu kural, varsayılan olarak yalnızca localhost’tan gelen bağlantılara izin verir. Tüm IP adreslerinden erişime izin vermek için bu satırı yorum satırı haline getirebilir veya silebilirsiniz:
Aynı işlemi Host Manager uygulaması için de yapın:
sudo nano /var/lib/tomcat7/webapps/host-manager/META-INF/context.xml
Yine, etiketi altındaki Allow kuralını yorum satırı yapın veya silin:
Her iki dosyayı da kaydettikten sonra, Tomcat hizmetini tekrar yeniden başlatın:
sudo service tomcat7 restart
Artık web tarayıcınızdan aşağıdaki adreslere giderek Manager ve Host Manager uygulamalarına erişebilirsiniz:
* Manager App: http://your_server_ip:8080/manager/html
* Host Manager App: http://your_server_ip:8080/host-manager/html
Tanımladığınız kullanıcı adları ve şifrelerle giriş yapabilirsiniz.
Tomcat Port Konfigürasyonu
Tomcat’in kullandığı portlar /etc/tomcat7/server.xml dosyasında yapılandırılır. Varsayılan olarak, Tomcat 8080 portunu HTTP bağlantıları için, 8009 portunu AJP (Apache JServ Protocol) bağlantıları için ve 8005 portunu sunucuyu kapatmak için kullanır.
server.xml dosyasını düzenlemek için:
sudo nano /etc/tomcat7/server.xml
Bu dosya içinde, bloğunun altında aşağıdaki Connector elementlerini bulacaksınız:
Eğer 8080 portu başka bir uygulama tarafından kullanılıyorsa veya standart HTTP portu (80) üzerinden erişim sağlamak istiyorsanız, port="8080" değerini değiştirebilirsiniz. Ancak 80 gibi düşük numaralı portlar için root yetkisi gerekir ve Tomcat’i root olarak çalıştırmak güvenlik açısından önerilmez. Bu tür durumlarda, bir ters proxy (Nginx veya Apache HTTPD) kullanmak daha iyi bir yaklaşımdır.
Sunucuyu kapatma portu da bu dosyada yer alır:
Bu portu da ihtiyaçlarınıza göre değiştirebilirsiniz. Herhangi bir port değişikliği yaptıktan sonra, Tomcat’i yeniden başlatmayı unutmayın.
JVM Bellek Ayarları
Java uygulamalarının performansı, JVM’ye ayrılan bellekle doğrudan ilişkilidir. Tomcat’in kullandığı JVM’ye ayrılan başlangıç ve maksimum bellek miktarını ayarlamak, uygulamanızın performansını artırabilir veya bellek yetersizliği sorunlarını çözebilir. Bu ayarlar genellikle JAVA_OPTS ortam değişkeni aracılığıyla yapılır.
apt-get ile kurulan Tomcat 7 için, bu ayarları /etc/default/tomcat7 dosyasında veya /etc/tomcat7/conf/tomcat7.conf (Ubuntu 14.04’te /etc/default/tomcat7 daha yaygındır) dosyasında yapabilirsiniz.
sudo nano /etc/default/tomcat7
Bu dosya içinde, JAVA_OPTS satırını arayın veya yoksa ekleyin. Aşağıdaki örnek, başlangıç belleğini 256MB, maksimum belleği 512MB ve maksimum kalıcı nesil alanını 256MB olarak ayarlar:
JAVA_OPTS="-Djava.awt.headless=true -Xmx512m -Xms256m -XX:MaxPermSize=256m"
* -Xmx512m: JVM’nin kullanabileceği maksimum heap bellek miktarını 512 megabayt olarak ayarlar.
* -Xms256m: JVM’nin başlangıçta ayıracağı heap bellek miktarını 256 megabayt olarak ayarlar.
* -XX:MaxPermSize=256m: Java 7’de kullanılan “PermGen” alanı için maksimum boyutu 256 megabayt olarak ayarlar. (Java 8 ve sonrası için bu parametre kaldırılmıştır.)
* -Djava.awt.headless=true: Grafiksel bir arayüze sahip olmayan sunucu ortamlarında AWT (Abstract Window Toolkit) ile ilgili hataları önler.
Bu değerleri uygulamanızın ihtiyaçlarına ve sunucunuzun kullanılabilir RAM miktarına göre ayarlamanız önemlidir. Değişiklikleri kaydettikten sonra, Tomcat’i yeniden başlatın:
sudo service tomcat7 restart
Tomcat Servisini Yönetme
Ubuntu 14.04’te Tomcat hizmetini yönetmek için Upstart komutlarını kullanırız. Temel yönetim komutları şunlardır:
* Başlatma:
sudo service tomcat7 start
* Durdurma:
sudo service tomcat7 stop
* Yeniden Başlatma:
sudo service tomcat7 restart
* Durum Kontrolü:
sudo service tomcat7 status
Tomcat hizmetinin sistem başlangıcında otomatik olarak başlatıldığından emin olmak için (ki apt-get kurulumu bunu genellikle yapar), aşağıdaki komutu kullanabilirsiniz:
sudo update-rc.d tomcat7 defaults
Bu komut, Tomcat hizmetinin sistem açılışında otomatik olarak çalışmasını sağlayacak sembolik bağlantıları oluşturur.
Web Uygulaması Dağıtımı
Tomcat’e web uygulamaları (WAR dosyaları) dağıtmanın birkaç yolu vardır:
1. Manager Uygulaması Aracılığıyla: En kolay ve önerilen yöntemdir. Manager uygulamasının web arayüzüne (http://your_server_ip:8080/manager/html) giriş yaparak, “WAR file to deploy” bölümünden WAR dosyanızı yükleyebilir ve dağıtabilirsiniz.
2. Manuel Kopyalama: WAR dosyasını doğrudan Tomcat’in webapps dizinine kopyalayabilirsiniz. Tomcat, bu dizine kopyalanan WAR dosyalarını otomatik olarak algılar, açar ve dağıtır.
sudo cp /path/to/your/application.war /var/lib/tomcat7/webapps/
Birkaç saniye içinde, Tomcat WAR dosyasını otomatik olarak açacak ve application adında yeni bir dizin oluşturacaktır. Uygulamanıza http://your_server_ip:8080/application adresinden erişebilirsiniz.
3. Host Manager Aracılığıyla: Birden fazla sanal ana bilgisayar (virtual host) kurduysanız, Host Manager uygulaması üzerinden de dağıtım yapabilirsiniz.
Sorun Giderme
Tomcat ile ilgili sorunlarla karşılaştığınızda, genellikle log dosyalarına bakmak sorunun kökenini anlamanıza yardımcı olur.
Tomcat’in log dosyaları /var/log/tomcat7 dizininde bulunur:
* catalina.out: Tomcat’in konsol çıktısını ve genel uygulama loglarını içerir.
* localhost_access_log.YYYY-MM-DD.txt: HTTP erişim loglarını içerir.
* catalina.YYYY-MM-DD.log: Tomcat iç loglarını ve hata mesajlarını içerir.
* manager.log, host-manager.log: Manager ve Host Manager uygulamalarına özel loglar.
Log dosyalarını görüntülemek için tail komutunu kullanabilirsiniz:
tail -f /var/log/tomcat7/catalina.out
Bu komut, catalina.out dosyasının sonunu sürekli olarak izler ve yeni log girişlerini anında gösterir.
Sık Karşılaşılan Sorunlar ve Çözümleri:
* Erişim Reddedildi (Permission Denied): Tomcat’in çalıştığı kullanıcı (genellikle tomcat7 kullanıcısı), belirli dosyalara veya dizinlere erişim iznine sahip olmayabilir. Dosya veya dizin izinlerini chown ve chmod komutlarıyla düzeltin.
* Port Çakışması: Tomcat’in kullanmaya çalıştığı port (varsayılan 8080) başka bir uygulama tarafından kullanılıyor olabilir. netstat -tulnp | grep 8080 komutuyla hangi uygulamanın portu kullandığını kontrol edin ve Tomcat’in portunu server.xml dosyasında değiştirin veya çakışan uygulamayı durdurun.
* Java Bellek Yetersizliği (OutOfMemoryError): Uygulamanız yeterli belleğe sahip değilse bu hatayı alırsınız. /etc/default/tomcat7 dosyasındaki JAVA_OPTS ayarlarında -Xmx değerini artırın.
* Firewall Engellemesi: Sunucunuzda bir güvenlik duvarı (örn. UFW) etkinse, 8080 portuna gelen bağlantıları engelliyor olabilir. İlgili portu güvenlik duvarından açmanız gerekebilir:
sudo ufw allow 8080/tcp
sudo ufw reload
* 404 Hataları (Uygulama Bulunamadı): Web uygulamanız doğru bir şekilde dağıtılmamış veya bağlam yolu (context path) yanlış olabilir. Manager uygulamasını kontrol ederek uygulamanızın dağıtıldığından ve çalıştığından emin olun.
Güvenlik En İyi Uygulamaları
Tomcat 7 ve Ubuntu 14.04 EOL olduğu için güvenlik güncellemeleri artık sağlanmamaktadır. Bu nedenle, bu kombinasyonu üretim ortamlarında kullanmak ciddi güvenlik riskleri taşır. Ancak yine de genel güvenlik prensiplerini uygulamak önemlidir:
* Varsayılan Portları Değiştirin: 8080 gibi bilinen portları kullanmaktan kaçının.
* Manager ve Host Manager Erişimini Kısıtlayın: Bu uygulamalara erişimi sadece güvenli IP adresleriyle sınırlayın veya mümkünse yalnızca yerel makineden erişime izin verin. Üretim ortamlarında bu uygulamaları tamamen devre dışı bırakmayı düşünebilirsiniz.
* Güçlü Şifreler Kullanın: tomcat-users.xml dosyasında tanımladığınız kullanıcılar için güçlü ve karmaşık şifreler kullanın.
* En Az Yetki Prensibi: Tomcat’i çalıştırmak için mümkün olan en az yetkiye sahip bir kullanıcı kullanın (apt-get kurulumu bunu otomatik olarak tomcat7 kullanıcısıyla yapar). Tomcat dizinlerinin ve dosyalarının sahiplik ve izinlerini dikkatlice yönetin.
* Güvenlik Duvarı: Sadece gerekli portları açarak sunucuya gelen trafiği kısıtlayın.
* Ters Proxy (Reverse Proxy) Kullanın: Apache HTTPD veya Nginx gibi bir ters proxy sunucusu kullanarak, Tomcat’i doğrudan internete açmak yerine proxy üzerinden erişim sağlayın. Bu, ek bir güvenlik katmanı sağlar, SSL/TLS sonlandırmasını yönetir ve performansı artırabilir.
Sonuç
Bu kapsamlı kılavuzda, Apache Tomcat 7’yi Ubuntu 14.04 işletim sistemine apt-get paket yöneticisi aracılığıyla nasıl kuracağınızı ve temel konfigürasyonlarını nasıl yapacağınızı detaylı bir şekilde anlattık. Java ortamının hazırlanmasından başlayarak, Tomcat’in kurulumu, kullanıcı yönetimi, port ayarları, bellek konfigürasyonu, hizmet yönetimi ve web uygulaması dağıtımına kadar tüm adımları ele aldık. Ayrıca, olası sorun giderme yöntemleri ve güvenlik en iyi uygulamaları hakkında da bilgi verdik.
Her ne kadar Ubuntu 14.04 ve Apache Tomcat 7 eski ve desteklenmeyen platformlar olsa da, bu kılavuz, bu spesifik ortamda kurulum ve yönetim süreçlerini anlamanıza yardımcı olacaktır. Modern uygulamalar ve üretim ortamları için her zaman güncel işletim sistemlerini ve Tomcat’in en son sürümlerini kullanmanız şiddetle tavsiye edilir. Ancak belirli bir senaryoda bu eski teknolojilere ihtiyaç duyuluyorsa, bu kılavuz size yol gösterecektir. Başarılı bir kurulum ve konfigürasyon ile Java tabanlı web uygulamalarınızı bu platform üzerinde güvenle çalıştırabilirsiniz. Unutmayın ki sunucu yönetimi sürekli bir öğrenme ve dikkat gerektiren bir süreçtir, bu nedenle her zaman dokümantasyonu okuyun ve sisteminizi güvende tutmak için en iyi uygulamaları takip edin.