Com instal·lar Apache Tomcat a Ubuntu


Si voleu executar pàgines web que incloguin codificació de pàgines del servidor Java o servlets Java, podeu utilitzar Apache Tomcat. És un servidor web de codi obert i un contenidor de servlets, publicat per Apache Software Foundation.

Tomcat es pot utilitzar com a producte autònom, amb el seu propi servidor web o es pot combinar amb altres servidors web com Apache o IIS. La versió més recent de Tomcat és la 9.0.14 i es basa en Tomcat 8 i 8.5 i implementa Servlet 4.0, JSP 2.2.

S'han fet les millores següents a la nova versió:

  • S'ha afegit compatibilitat amb HTTP/2.
  • S'ha afegit compatibilitat per utilitzar OpenSSL per a TLS amb els connectors JSSE.
  • S'ha afegit compatibilitat amb els amfitrions virtuals TLS (SNI).

En aquest tutorial us mostrarem com instal·lar Apache Tomcat 9 a Ubuntu 18.10 i versions anteriors d'Ubuntu.

Pas 1: instal·lació de Java

Per executar aplicacions web Java, Tomcat requereix que Java estigui instal·lat al servidor. Per complir amb aquest requisit, instal·larem OpenJDK tal com es mostra.

$ sudo apt update
$ sudo apt install default-jdk

Pas 2: Creació d'un usuari de Tomcat

Per raons de seguretat, Tomcat s'hauria d'executar amb un usuari sense privilegis, és a dir, no root. És per això que crearem l'usuari i el grup tomcat que executaran el servei. Comenceu creant el grup tomcat:

$ sudo groupadd tomcat

A continuació, crearem un usuari tomcat, que serà membre del grup tomcat. La ubicació d'inici d'aquest usuari serà /opt/tomcat ja que aquí és on instal·larem Tomcat. L'intèrpret d'ordres s'estableix a /bin/false:

$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat

Ara estem preparats per procedir al següent pas i descarregar Tomcat.

Pas 3: instal·lació d'Apache Tomcat

Per descarregar l'últim paquet disponible, aneu a la pàgina de descàrrega de Tomcat i agafeu la darrera versió.

En el moment d'escriure aquest tutorial, la darrera versió de Tomcat és la 9.0.14. Per descarregar aquesta versió, canvieu el vostre directori actual a una altra cosa. Per exemple, podeu utilitzar /tmp:

# cd /tmp

A continuació, utilitzeu l'ordre wget per descarregar l'arxiu Tomcat:

$ wget http://apache.cbox.biz/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz
$ wget https://www.apache.org/dist/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz.sha512

Si voleu verificar la suma sha512 del fitxer, podeu executar:

$ sha512sum apache-tomcat-9.0.14.tar.gz
$ cat apache-tomcat-9.0.14.tar.gz.sha512

El valor resultant (hash) per als dos fitxers hauria de ser el mateix.

Com s'ha esmentat anteriorment, instal·larem Tomcat a /opt/tomcat. Haurem de crear aquest directori:

$ sudo mkdir /opt/tomcat

I ara podem extreure el paquet descarregat en aquest nou directori:

$ sudo tar xzvf apache-tomcat-9.0.14.tar.gz -C /opt/tomcat --strip-components=1

Ara navegueu a /opt/tomcat des d'on actualitzarem la propietat i els permisos de la carpeta:

# cd /opt/tomcat

I establiu el propietari del grup de /opt/tomcat a tomcat:

$ sudo chgrp -R tomcat /opt/tomcat

A continuació actualitzarem l'accés de lectura del grup tomcat al directori conf i establirem els permisos d'execució al directori:

$ sudo chmod -R g+r conf
$ sudo chmod g+x conf

A continuació, farem que l'usuari de Tomcat sigui propietari dels directoris d'aplicacions web, treball, temps i registres:

$ sudo chown -R tomcat webapps/ work/ temp/ logs/

Ara s'han establert els permisos i les propietats adequats i estem preparats per crear un fitxer d'inici systemd, que ens ajudarà a gestionar el procés Tomcat.

Pas 4: creació d'un fitxer de servei SystemD per a Tomcat

Com que volem executar Tomcat com a servei, haurem de tenir un fitxer que ens ajudi a gestionar fàcilment el procés. Per a això, crearem un fitxer de servei systemd. Tomcat haurà de saber on es troba Java al vostre sistema.

Per trobar aquesta ubicació, utilitzeu l'ordre següent:

$ sudo update-java-alternatives -l

La sortida d'aquesta ordre us mostrarà la ubicació de JAVA_HOME.

Ara, utilitzant aquesta informació, estem preparats per crear el nostre fitxer de servei Tomcat.

$ sudo vim  /etc/systemd/system/tomcat.service

Enganxeu el codi següent al fitxer:

[Unit]
Description=Apache Tomcat Web Application Container
After=network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Assegureu-vos de configurar JAVA_HOME amb el del vostre sistema. Quan estigueu preparat, deseu el fitxer i tanqueu-lo. Ara, utilitzant l'ordre següent, torneu a carregar el dimoni systemd perquè pugui trobar el nostre nou fitxer de servei:

$ sudo systemctl daemon-reload

A continuació, inicieu el servei Tomcat:

$ sudo systemctl start tomcat

Podeu verificar l'estat del servei amb:

$ sudo systemctl status tomcat

Ara podeu provar Tomcat al vostre navegador utilitzant l'adreça IP del vostre sistema seguida del port predeterminat del servei 8080.

http://ip-address:8080

El resultat que hauríeu de veure és similar al que es mostra a la imatge següent:

En cas que no veieu la sortida anterior, potser haureu de permetre el port 8080 al vostre tallafoc, tal com es mostra.

$ sudo ufw allow 8080

Si voleu que Tomcat s'iniciï a l'arrencada del sistema, executeu:

$ systemctl enable tomcat

Pas 5: Configuració d'Apache Tomcat

Tomcat té una aplicació de gestor web que ve preinstal·lada. Per utilitzar-lo, haurem de configurar l'autenticació al nostre fitxer tomcat-users.xml. Obriu i editeu aquest fitxer amb el vostre editor de text preferit:

$ sudo vim /opt/tomcat/conf/tomcat-users.xml

Afegirem un usuari que podrà accedir a les interfícies de gestor i administrador. Per configurar aquest usuari, entre les etiquetes , afegiu la línia següent:

<user username="Username" password="Password" roles="manager-gui,admin-gui"/>

Assegureu-vos de canviar:

  • Nom d'usuari: amb l'usuari que voleu autenticar.
  • Contrasenya: amb la contrasenya que voleu utilitzar per a l'autenticació.

Com que per defecte l'accés al gestor i al gestor d'amfitrió està restringit, volem eliminar o modificar aquestes restriccions. Per fer aquests canvis, podeu carregar els fitxers següents:

Per a l'aplicació Gestor:

$ sudo vim /opt/tomcat/webapps/manager/META-INF/context.xml

Per a l'aplicació Gestor d'amfitrió:

$ sudo vim /opt/tomcat/webapps/host-manager/META-INF/context.xml

Dins d'aquests fitxers, podeu comentar la restricció d'IP o permetre la vostra adreça IP pública. Amb el propòsit d'aquest tutorial, he comentat la línia:

Per fer els nostres canvis en directe, torneu a carregar el servei Tomcat amb:

$ sudo systemctl restart tomcat 


Ara podeu provar l'aplicació del gestor accedint a http://ipaddress:8080/manager/. Quan se us demani el nom d'usuari i la contrasenya, utilitzeu els que hàgiu configurat anteriorment. La interfície que hauríeu de veure després és així:

Per accedir al gestor de l'amfitrió, podeu utilitzar http://adreça-ip:8080/gestor-amfitrió/.

Amb el gestor d'amfitrions virtuals, podeu crear amfitrions virtuals per a les vostres aplicacions Tomcat.

Pas 6: prova d'Apache Tomcat mitjançant la creació d'un fitxer de prova

Podeu comprovar si tot funciona correctament, creant un fitxer de prova dins del directori /opt/tomcat/webapps/ROOT/.

Creem aquest fitxer:

$ sudo vim /opt/tomcat/webapps/ROOT/tecmint.jsp

Dins d'aquest fitxer, enganxeu el codi següent:

<html>
<head>
<title>Tecmint post:TomcatServer</title>
</head>
<body>

<START OF JAVA CODES>
<%
    out.println("Hello World! I am running my first JSP Application");
    out.println("<BR>Tecmint is an Awesome online Linux Resource.");
%>
<END OF JAVA CODES>

</body>
</html>

Deseu el fitxer i configureu la propietat tal com es mostra.

$ sudo chown tomcat: /opt/tomcat/apache-tomcat-8.5.14/webapps/ROOT/tecmint.jsp

Ara carregueu aquest fitxer al vostre navegador mitjançant http://ip-address:8080/tecmint.jsp.

Això és! Heu completat la configuració del vostre servidor Apache Tomcat i heu executat el vostre primer codi Java. Esperem que el procés us hagi estat fàcil i senzill. Si teniu cap problema, compartiu els vostres problemes mitjançant el formulari de comentaris a continuació.