2010-08-10 12 views
17

Creo que es una buena pregunta.Tomcat se instala con CATALINA_HOME en/usr/share/tomcat6 y CATALINA_BASE en/var/lib/tomcat6

Lo encontré también confuso. Instalé Tomcat hace unos minutos (después de un tiempo) y veo que son dos lugares diferentes de "webapps".

en/usr/share/tomcat6/webapps/default_root/ en/var/lib/tomcat6/webapps/ROOT/

El contenido de los dos son lo mismo, pero ninguno de ellos son enlaces simbólicos.

Cuando empecé Tomcat que dice:

Cita:

Esta es la página de inicio por defecto de Tomcat. Se puede encontrar en el sistema de archivos local en: /var/lib/tomcat6/webapps/ROOT/index.html

veteranos Tomcat6 podría ser satisfechos al saber que esta instancia de sistema de Tomcat se instala con CATALINA_HOME en/usr/share/tomcat6 y CATALINA_BASE en/var/lib/tomcat6 Por lo tanto, según esta información, la carpeta/usr/share/... se guardó para compatibilidad con versiones anteriores, ¿no?

Pero de acuerdo con lo que ha publicado, las libs se están leyendo de CATALINA_HOME en lugar de CATALINA_BASE.

¿Quizás todavía conserven esa referencia predeterminada para evitar que otros sistemas dejen de funcionar después de la actualización?

¡Buena observación!

ACTUALIZACIÓN:

leí esto en: /usr/share/tomcat6/bin/catalina.sh:

Cita:

# 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. 

Cuando leemos en:/etc /init.d/tomcat6:

(al principio)

CATALINA_HOME=/usr/share/$NAME 

(continuación ...)

# Directory for per-instance configuration files and webapps 
CATALINA_BASE=/var/lib/$NAME 

Sin embargo, si se intenta arrancar Tomcat manualmente (como lo hice hace mucho tiempo) con: sudo /usr/share/tomcat6/bin/startup.sh

muestra:

Cita:

Using CATALINA_BASE: /usr/share/tomcat6 
Using CATALINA_HOME: /usr/share/tomcat6 
Using CATALINA_TMPDIR: /usr/share/tomcat6/temp 
Using JRE_HOME: /usr 
touch: cannot touch `/usr/share/tomcat6/logs/catalina.out': No such file or directory 
/usr/share/tomcat6/bin/catalina.sh: 357: cannot create /usr/share/tomcat6/logs/catalina.out: Directory nonexistent 

Así que, ¿por qué aquí CATALINA_BASE se establece en el mismo como C ATALINA_HOME?

/usr/share/tomcat6/logs/no existe, pero existe en/var/lib/tomcat6/logs/

veo que mis registros están escribiendo en/var/lib/... cuando iniciando Tomcat desde el script init.d.Así que es mejor comenzar desde allí.

Respuesta

16

no soy un experto en Tomcat, pero yo estaba teniendo el mismo problema y yo era capaz de reiniciar el servidor con el comando: sudo /etc/init.d/tomcat6 restart

0

No puedo decir por qué CATALINA_HOME y CATALINA_BASE son los mismos en startup.sh (resp .. catalina.sh) - eso es realmente extraño.

Por supuesto, puede iniciar Tomcat mediante el script init.d. Pero a veces es posible que desee iniciarlo a través de startup.sh/catalina.sh (por ejemplo, para la depuración).

Así como una solución/truco que puede corregir el problema agregando la siguiente línea al comienzo de /usr/share/tomcat6/bin/catalina.sh

export CATALINA_BASE=/var/lib/tomcat6 
3

CATALINA_HOME - dice "org. apache.catalina.startup.Bootstrap "dónde buscar necesario/lib/bin y otro - que son dependencias para ejecutar el servidor. Básicamente es su directorio de inicio de instalación de Tomcat.

CATALINA_BASE: espera que se escanee una cierta estructura de directorios (una vez iniciada). Por ejemplo/conf para encontrar server.xml y web.xml, que es específico de una aplicación web. siempre que tenga esa estructura de directorio y contenido, CATALINA_BASE puede ser cualquier directorio.

1

Lo he visto.

La forma adecuada y bonita es crear un script "setenv.sh" en su carpeta CATALINA_HOME/bin (en su caso "/usr/share/tomcat6/bin/setenv.sh").

El contenido de su setenv.sh:

#!/bin/sh 
export CATALINA_BASE=/new/catalinabase/path 

lo que no hay necesidad de modificar catalina.sh por sí mismo. Si setenv.sh está presente en el directorio bin, catalina.sh lo ejecutará automáticamente.

-3
chmod +x startup.sh 
chmod +x shutdown.sh 
chmod +x catalina.sh 
chmod +x setclasspath.sh 
chmod +x bootstrap.jar 
chmod +x tomcat-jni.jar 

espero que sea un trabajo.

-1

que podía hacer esto mediante la ejecución de este comando,

$ service tomcat6 start

cual reinicializa mi camino CATALINA_* e inicia la instancia de Tomcat

Cuestiones relacionadas