tomcat - CATALINA_BASE ve CATALINA_HOME değişkenleri


100

Aynı sunucuda (Linux) çalışan birden fazla tomcat 6 örneğim var ve beklendiği gibi çalışıyor. CATALINA_HOMEVe CATALINA_BASEdeğişkenlerinin ayarlanması ile ilgili standart uygulamanın ne olduğunu bulmaya çalışıyorum .

Tomcat kurulumumda, CATALINA_HOME"ortak" bir klasöre (örneğin /tomcat6) işaret edecek şekilde kurulum yaptım ve CATALINA_BASEdeğişken, örnek adına bağlı olarak değişir (örneğin /tomcat_instance1, /tomcat_instance2)

Sorum şu:

  • Gerçekten iki değişkene ihtiyacım var mı?
  • Ya da sadece bir tane alabilir miyim CATALINA_HOMEve bunu ortadan kaldırabilir miyim CATALINA_BASE(veya tam tersi)?

3
Sorunun kendisi gerçekten bir cevaptır.
Koray Tugay

4
Bunu yapmanız gerekmesinin nedeni (içinde yaşayan $CATALINA_HOME) Tomcat yazılımının bakımını Tomcat örnek yapılandırmasının ve içeriğinin (içinde bulunan $CATALINA_BASE) bakımından ayırmaktır .
reinierpost

Yanıtlar:


108

Tek bir ana bilgisayarda birden fazla Tomcat örneği çalıştırıyorsanız , her bir örnek için uygun CATALINA_BASEolan .../tomcat_instance1veya .../tomcat_instance2dizinine CATALINA_HOMEve dosyaları iki örnek arasında paylaşılacak ortak Tomcat kurulumuna ortam değişkenine eşit olacak şekilde ayarlamalısınız.

Ana CATALINA_BASEbilgisayarda tek bir Tomcat örneği çalıştırıyorsanız ortam isteğe bağlıdır ve CATALINA_HOMEbu durumda varsayılan olarak kullanılacaktır. Birden fazla örnek çalıştırıyorsanız, bu sağlanmalıdır.

RUNNING.txtApache Tomcat dağıtımının kök dizinindeki dosyada Advanced Configuration - Multiple Tomcat Instances başlığı altında bu kurulumun oldukça iyi bir açıklaması bulunmaktadır.


1
Ubuntu'da paketlenmiş Tomcat'i kullanırken ikinci paragrafınız yanlış. Tomcat yazılımını ($ CATALINA_HOME cinsinden) Tomcat örneğinden ($ CATALINA_BASE cinsinden) doğru şekilde ayırır.
reinierpost

87

CATALINA_HOME vs CATALINA_BASE

Birden fazla örnek çalıştırıyorsanız, her iki değişkene de ihtiyacınız vardır, aksi halde yalnızca CATALINA_HOME.

Başka bir deyişle: CATALINA_HOMEzorunludur ve CATALINA_BASEisteğe bağlıdır.

CATALINA_HOME Tomcat kurulumunuzun kökünü temsil eder.

İsteğe bağlı olarak Tomcat, $CATALINA_BASEher bir örnek için tanımlanarak birden çok örnek için yapılandırılabilir . Birden fazla örnek yapılandırılmamışsa, $CATALINA_BASEile aynıdır $CATALINA_HOME.

Bakınız: Apache Tomcat 7 - Giriş

Ayrı olarak çalışır CATALINA_HOMEve CATALINA_BASEaşağıdaki gibi RUNNING.txt dosyasında belgelenmiştir:

CATALINA_HOMEVe CATALINA_BASEortam değişkenleri sırasıyla Apache Tomcat'in konumu ve aktif konfigürasyon konumunu belirtmek için kullanılır.

Komut dosyasında CATALINA_HOMEve CATALINA_BASEdeğişkenleri yapılandıramazsınız setenvçünkü o dosyayı bulmak için kullanılırlar.

Örneğin:

(4.1) Tomcat, aşağıdaki komutlardan biri çalıştırılarak başlatılabilir:

  %CATALINA_HOME%\bin\startup.bat         (Windows)

  $CATALINA_HOME/bin/startup.sh           (Unix)

veya

  %CATALINA_HOME%\bin\catalina.bat start  (Windows)

  $CATALINA_HOME/bin/catalina.sh start    (Unix)

Birden Çok Tomcat Örneği

Çoğu durumda, aynı sunucu üzerindeki birden çok kullanıcı arasında paylaşılan bir Tomcat ikili dağıtımının tek bir kopyasının olması arzu edilir. Bunu mümkün kılmak için, CATALINA_BASE ortam değişkenini 'kişisel' Tomcat örneğiniz için dosyaları içeren dizine ayarlayabilirsiniz .

Ayrı bir CATALINA_HOMEve ile çalışırken CATALINA_BASE, dosyalar ve dizinler şu şekilde bölünür:

İçinde CATALINA_BASE:

  • bin - Yalnızca: setenv.sh (* nix) veya setenv.bat (Windows), tomcat-juli.jar
  • conf - Sunucu yapılandırma dosyaları (server.xml dahil)
  • lib - Aşağıda açıklandığı gibi kitaplıklar ve sınıflar
  • logs - Günlük ve çıktı dosyaları
  • webapps - Otomatik olarak yüklenen web uygulamaları
  • work - Web uygulamaları için geçici çalışma dizinleri
  • temp - Geçici dosyalar için JVM tarafından kullanılan dizin>

İçinde CATALINA_HOME:

  • bin - Başlatma ve kapatma komut dosyaları
  • lib - Aşağıda açıklandığı gibi kitaplıklar ve sınıflar
  • endorsed- Standart "Onaylanmış Standartları" geçersiz kılan kitaplıklar. Varsayılan olarak yoktur.

Nasıl kontrol edilir

Kolay yolu nedir seninki kontrol etmek CATALINA_BASEve CATALINA_HOMEçalışan gereğidir startup.shörneğin:

$ /usr/share/tomcat7/bin/startup.sh
Using CATALINA_BASE:   /usr/share/tomcat7
Using CATALINA_HOME:   /usr/share/tomcat7

Tomcat dosyalarının nereye yüklendiğini dpkgaşağıdaki araçla da kontrol edebilirsiniz (Debian / Ubuntu):

dpkg -L tomcat7-common

8
Bu, kabul edilene göre çok daha iyi bir cevaptır. Çok iyi açıkladı.
syncdk

Lütfen farklı CATALINA_BASE ile birden çok tomcat örneğinin nasıl başlatılacağını açıklayın.
Mark

Pencereler:: set CATALINA_BASE = yol CATALINA_BASE ve CATALINA_HOME sistem değişkenler olarak ayarlanması gerekir
Mark

11

En iyi uygulamayı bildiğimi söyleyemem ama işte benim bakış açım.

Are sen bir şey için bu değişkenleri kullanarak?

Kişisel olarak, geliştirmeden üretime değişen ortamlarda ne Linux ne de Windows'ta değişiklik yapmam gerekmedi. Onlara dayanan belirli bir şey yapmadığınız sürece, onları rahat bırakma ihtimaliniz vardır.

catalina.shTomcat'in kullanıma hazır olması gereken değişkenleri ayarlar. Ayrıca CATALINA_BASEisteğe bağlı olduğunu söylüyor :

#   CATALINA_HOME   May point at your Catalina "build" directory.
#
#   CATALINA_BASE   (Optional) Base directory for resolving dynamic portions
#                   of a Catalina installation.  If not present, resolves to
#                   the same directory that CATALINA_HOME points to.

Sunucunuzu başlattığınızda kurulumunuzun çalışıp çalışmadığını öğreneceğinizden oldukça eminim.


Tomcat'in her iki örneği için dosyada catalina_homeyol ayarlayabilir misiniz \bin\catalina.sh?
Giri

8

Dan CATALINA_BASEfarklı bir dizine işaret etmek CATALINA_HOME, yapılandırma dizinini ikili dosyalar dizininden ayırmanıza olanak tanır.

Varsayılan olarak, CATALINA_BASE(yapılandırmalar) ve CATALINA_HOME(ikili dosyalar) aynı klasörü işaret eder, ancak yapılandırmaları ikili dosyalardan ayırmak, ikili dosyaları kopyalamadan birden çok Tomcat örneğini yan yana çalıştırmanıza yardımcı olabilir.

Ayrıca, Tomcat için yapılandırma dosyalarınızı değiştirmeden veya yedeklemenize / geri yüklemenize gerek kalmadan ikili dosyaları güncellemek istediğinizde de yararlıdır.

2018 Güncellemesi

Şimdi makebaseyardımcı programla CATALINA_BASE'i ayarlamanın daha kolay bir yolu var . Bu konuyu kapsayan bir öğretici http://blog.rasia.io/blog/how-to-easily-setup-lucee-in-tomcat.html adresinde ve https://youtu.be adresinde bir video eğitimi yayınladım. / nuugoG5c-7M

Orijinal cevap aşağıda devam etti

Bu özellikten yararlanmak için, basitçe yapılandırma dizinini oluşturun ve CATALINA_BASEortam değişkeni ile onu işaret edin . Bu dizine bazı dosyalar koymanız gerekecek:

  • confDizini, içeriği dahil olmak üzere orijinal Tomcat kurulum dizininden kopyalayın ve Tomcat'in onun için okuma izinlerine sahip olduğundan emin olun. Yapılandırma dosyalarını ihtiyaçlarınıza göre düzenleyin.
  • Bir oluşturma logseğer dizin conf/logging.propertiesnoktalarına ${catalina.base}/logsve Tomcat kendisine okuma / yazma izinleri olduğundan emin ol.
  • tempVarsayılanı işaret $CATALINA_TMPDIReden varsayılanı geçersiz kılmıyorsanız bir dizin oluşturun ${CATALINA_BASE}/tempve Tomcat'in ona yazma izinlerine sahip olduğundan emin olun.
  • workVarsayılan olan bir dizin oluşturun ${CATALINA_BASE}/workve Tomcat'in ona yazma izinlerine sahip olduğundan emin olun.

2

CATALINA_BASE isteğe bağlıdır.

Ancak, aşağıdaki senaryolarda, CATALINA_HOME'dan ayrı olan CATALINA_BASE'in kurulmasına yardımcı olur.

  1. Aynı ana bilgisayarda 1'den fazla tomcat örneği çalıştırıldığında

    • Bu, ayrı bağlantı noktalarında çalışan birden çok CATALINA_BASE sunucu yapılandırmasıyla yalnızca 1 çalışma zamanına sahip tomcat kurulumuna yardımcı olur.
    • Herhangi bir yama veya sürüm yükseltmesi gerekiyorsa, yalnızca 1 kurulum değişikliği veya test edilmesi / doğrulanması / imzalanması gerekir.
  2. Endişenin ayrılması (Tek sorumluluk)

    • Tomcat çalışma zamanı standarttır ve her sürüm işlemi sırasında değişmez. ie Tomcat ikili dosyaları
    • Yayın süreci, web uygulaması (webapps klasörü), ortam yapılandırması (conf dizini), günlükler / temp / iş dizini gibi daha fazla şey ekleyebilir

-5

Bu, tomcat.exe dosyasını içeren bin öğesinin üst klasörüdür:

CATALINA_HOME='C:\Program Files\Apache Software Foundation\Tomcat 6.0'

CATALINA_BASEile aynıdır CATALINA_HOME.


2
Cevabınız yanıltıcı ... doğru cevap belirtmelidir Birden fazla örnek yapılandırılmamışsa , $ CATALINA_BASE dokümantasyona
Eddie B

1
CATALINA_BASE, yalnızca kök örneğini çalıştırdığınızda CATALINA_HOME'a eşittir. Birden fazla örneğiniz olduğunda durum farklı olacaktır.
splatch

1
Yalnızca bir örneğiniz olsa bile CATALINA_BASE ve CATALINA HOME'un farklı olması gerektiğini söyleyebilirim. Bu şekilde içeriğiniz kurulumunuzdan ayrıdır. Örneğin, / usr / share / tomcat içindeki CATALINA_HOME ve / var / lib / tomcat içindeki CATALINA_BASE
user1725779

Hayır. Çoklu örnek için aynı olabilir, ancak aynı olmayabilir.
Andrey Regentov
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.