pagina - Tomcat se instala con CATALINA_HOME en/usr/share/tomcat6 y CATALINA_BASE en/var/lib/tomcat6
tomcat official site (6)
Creo que es una buena pregunta.
Lo encontré también confuso. Instalé Tomcat hace unos minutos (después de un tiempo) y noté que son dos lugares "webapps" diferentes.
en / usr / share / tomcat6 / webapps / default_root / at / var / lib / tomcat6 / webapps / ROOT /
El contenido de ambos es el mismo pero ninguno de ellos son enlaces simbólicos.
Cuando empecé Tomcat dice:
Citar:
Esta es la página de inicio predeterminada de Tomcat. Se puede encontrar en el sistema de archivos local en: /var/lib/tomcat6/webapps/ROOT/index.html
A los veteranos de Tomcat6 les complacerá saber que esta instancia del sistema de Tomcat se instala con CATALINA_HOME en / usr / share / tomcat6 y CATALINA_BASE en / var / lib / tomcat6 Entonces, con base en esta información, la carpeta / usr / share / ... se mantuvo por compatibilidad con versiones anteriores, ¿verdad?
Pero de acuerdo con lo que publicaste, las bibliotecas se leen desde CATALINA_HOME en lugar de CATALINA_BASE.
¿Es posible que aún mantengan esa referencia predeterminada para evitar que otros sistemas dejen de funcionar después de la actualización?
¡Buena observación!
ACTUALIZAR:
Leí esto en: /usr/share/tomcat6/bin/catalina.sh:
Citar:
# 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
(entonces...)
# Directory for per-instance configuration files and webapps
CATALINA_BASE=/var/lib/$NAME
Sin embargo, si intenta iniciar TOMCAT manualmente (como lo hice hace mucho tiempo) con: sudo /usr/share/tomcat6/bin/startup.sh
Muestra:
Citar:
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
Entonces, ¿por qué aquí CATALINA_BASE se establece como CATALINA_HOME?
/ usr / share / tomcat6 / logs / no existe, pero existe en / var / lib / tomcat6 / logs /
Veo que mis registros están escribiendo en / var / lib / ... al iniciar Tomcat desde el script init.d. Así que es mejor empezar desde allí.
CATALINA_HOME: le dice a "org.apache.catalina.startup.Bootstrap" dónde buscar / lib / bin requerido y otras, que son dependencias para ejecutar el servidor. Es básicamente su directorio de inicio de instalación de Tomcat.
CATALINA_BASE: espera una cierta estructura de directorios para escanear (una vez iniciada). Por ejemplo / conf para encontrar server.xml y web.xml que es específico de una aplicación web. Mientras tenga esa estructura de directorio y contenido, CATALINA_BASE puede ser cualquier directorio.
Lo he visto.
La forma correcta y linda 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
Así que no hay necesidad de modificar catalina.sh por ti mismo. Si setenv.sh está presente en el directorio bin, catalina.sh lo ejecutará automáticamente.
No puedo decir por qué CATALINA_HOME y CATALINA_BASE son iguales en startup.sh (resp. Catalina.sh), eso es realmente extraño.
Por supuesto, puede iniciar Tomcat a través del 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).
Por lo tanto, como solución / hackeo, puede corregir el problema agregando la siguiente línea al comienzo de /usr/share/tomcat6/bin/catalina.sh
export CATALINA_BASE=/var/lib/tomcat6
No soy un experto en Tomcat pero tuve el mismo problema y pude reiniciar el servidor con el comando: sudo /etc/init.d/tomcat6 restart
Podría hacer esto ejecutando este comando,
$ service tomcat6 start
que reinicializó mi ruta CATALINA_*
e inicia la instancia de Tomcat
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 trabajo.