===== El servidor de aplicaciones. Apache Tomcat =====
==== Instalación ====
El servidor de aplicaciones [[http://tomcat.apache.org|Apache Tomcat]] no dispone de instalador por lo que la manera habitual de instalarlo es descargar la versión que queramos (actualmente la última versión es la 9) y descomprimirlo en la carpeta que queramos.
santi@zenbook:$ tar xvzf apache-tomcat-9.0.1.tar.gz
x apache-tomcat-9.0.1/conf/
x apache-tomcat-9.0.1/conf/catalina.policy
x apache-tomcat-9.0.1/conf/catalina.properties
x apache-tomcat-9.0.1/conf/context.xml
x apache-tomcat-9.0.1/conf/jaspic-providers.xml
x apache-tomcat-9.0.1/conf/jaspic-providers.xsd
x apache-tomcat-9.0.1/conf/logging.properties
x apache-tomcat-9.0.1/conf/server.xml
x apache-tomcat-9.0.1/conf/tomcat-users.xml
x apache-tomcat-9.0.1/conf/tomcat-users.xsd
x apache-tomcat-9.0.1/conf/web.xml
x apache-tomcat-9.0.1/bin/
. . .
. . .
==== Arranque y parada ====
Para iniciarlo, dispone de un script ''startup.sh'' que lo lanzará en segundo plano:
santi@zenbook:$ ./startup.sh
Using CATALINA_BASE: /Users/Santi/apache-tomcat-7.0.67
Using CATALINA_HOME: /Users/Santi/apache-tomcat-7.0.67
Using CATALINA_TMPDIR: /Users/Santi/apache-tomcat-7.0.67/temp
Using JRE_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
Using CLASSPATH: /Users/Santi/apache-tomcat-7.0.67/bin/bootstrap.jar:/Users/Santi/apache-tomcat-7.0.67/bin/tomcat-juli.jar
Tomcat started.
Y también de un script ''shutdown.sh'' que lo detiene:
santi@zenbook:$ ./shutdown.sh
Using CATALINA_BASE: /Users/Santi/apache-tomcat-7.0.67
Using CATALINA_HOME: /Users/Santi/apache-tomcat-7.0.67
Using CATALINA_TMPDIR: /Users/Santi/apache-tomcat-7.0.67/temp
Using JRE_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
Using CLASSPATH: /Users/Santi/apache-tomcat-7.0.67/bin/bootstrap.jar:/Users/Santi/apache-tomcat-7.0.67/bin/tomcat-juli.jar
=== Instalación en Debian utilizando apt ===
Si trabajamos con Debian existe la posibilidad de instalar Tomcat utilizando la herramienta //apt//. En el ejemplo siguiente instalamos el servidor de aplicaciones y todas herramientas y documentación (vienen como paquetes a parte en Debian):
santi@zenbook:$ sudo apt-get install tomcat8 tomcat8-*
En este caso, si queremos iniciar/detener/reiniciar el servidor, puesto que éste se encontrará ahora instalado como un servicio en nuestro sistema Linux tendremos que hacerlo como habitualmente se hace:
santi@zenbook:$ sudo service tomcat8 start
santi@zenbook:$ sudo service tomcat8 restart
santi@zenbook:$ sudo service tomcat8 stop
También tenemos que tener en cuenta que, en este caso, todos los ficheros de configuración de //Apache Tomcat// se encuentran en ''/etc/tomcat8''.
==== Configuración básica ====
En cualquier caso, al tratarse de un servidor de aplicaciones, lo habitual es que //escuche// en el puerto 8080, aunque hay que tener en cuenta que se puede cambiar en el caso de que en el equipo donde se encuentra instalado no haya un servidor web y además queramos que nuestra aplicación web quede expuesta al exterior. Nos interesará, por tanto, modificar el puerto al 80 para mayor comodidad a la hora de acceder a nuestra aplicación desde el navegador.
Para cambiar el puerto donde //Apache Tomcat// escuchará tenemos que editar el fichero ''conf/server.xml'' y cambiar el número del conector del protocolo HTTP:
. . .
. . .
Independientemente del puerto que hayamos configurado, si accedemos a la página principal del servidor de aplicaciones nos encontraremos la portada:
Desde donde podemos acceder a diferentes secciones donde podemos monitorizar/configurar algunos aspectos del servidor
Pero antes de poder acceder a las diferentes secciones del servidor desde el navegador hay que tener en cuenta que, por seguridad, dicho acceso se encuentra restringido y tendremos que registrar usuarios en ''conf/tomcat-users.xml'' con nombre de usuario, contraseña y los roles con los que accederan.
Podemos crear un usuario para cada rol o bien un usuario que tenga varios de ellos (incluso todos). Cada rol definido por //Tomcat// da acceso a una de las partes del servidor:
* **manager-status**: Da acceso a la sección donde monitorizar el estado de Tomcat
* **manager-gui**: Da acceso al listado de aplicaciones y a poder desplegarlas desde la web
* **admin-gui**: Da acceso a la parte de administración de hosts virtuales
La forma en como podemos editar el fichero y crear nuevos usuarios puede verse en el siguiente fragmento del fichero configuración extraido de una instalación limpia de //Tomcat// y modificado con un usuario ''tomcat'' y contraseña ''tomcat'' con todos los roles.
----
(c) 2023 Santiago Faci