Installare Apache Tomcat 8.5 su Centos 6 per una determinata applicazione

Seguirà l'installazione di Tomcat8.5 su Centos 6.10 associata ad un utente/servizio web che chiameremo "fapp".


Apache Tomcat (o semplicemente Tomcat) è un software open source che permette di implementare Web Application Server scritti in Java. Esso implementa Java Servlet (oggetti scritti in linguaggio Java) e JavaServer Pages (JSP).


Prerequisito installare JAVA 
Per verificare se java è installato,
eseguire il comando
[root@coslab02 conf.d]# java -version
java version "1.7.0_191" OpenJDK Runtime Environment (rhel-2.6.15.4.el6_10-x86_64 u191-b01) OpenJDK 64-Bit Server VM (build 24.191-b01, mixed mode)

Per trovare la directory di installazione di java:
[root@coslab02 ~]# which java
/usr/bin/java
[root@coslab02 ~]# ll /usr/bin/java
lrwxrwxrwx. 1 root root 22  6 set  2018 /usr/bin/java -> /etc/alternatives/java
[root@coslab02 ~]# ll /etc/alternatives/java
lrwxrwxrwx. 1 root root 46  6 set  2018 /etc/alternatives/java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java

La JAVA_HOME è /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/


Creare l'utenze fapp
[root@coslab02 ~]# useradd fapp

Controllo
[root@coslab02 ~]# cat /etc/passwd
fapp:x:502:10000::/home/fapp:/bin/bash

Creare sotto /opt la directory fapp
[root@coslab02 opt]# mkdir /opt/fapp


Cambiamo il proprietario
[root@coslab02 opt]# chown fapp:fapp fapp
[root@coslab02 opt]# ls -lrt
drwxr-xr-x. 2 fapp fapp 4096  2 ott 12:47 fapp

Effettuare il download di Tomcat dal sito https://tomcat.apache.org
Ad esempio apache-tomcat-8.5.45.tar.gz e trasferirlo sotto /opt/fapp

Installare tomcat
[root@coslab02 fapp]# tar xzf apache-tomcat-8.5.46.tar.gz
[root@coslab02 fapp]# ls -lrt
totale 11356
-rw-r--r--. 1 root root 11623939  2 ott 12:58 apache-tomcat-8.5.46.tar.gz
drwxr-xr-x. 9 root root     4096  2 ott 13:00 apache-tomcat-8.5.46

Creare un link simbolico a Tomcat
[root@coslab02 fapp]# ln -s /opt/fapp/apache-tomcat-8.5.46 /opt/fapp/tomcat
[root@coslab02 fapp]# ls -lrt
totale 11356
-rw-r--r--. 1 root root 11623939  2 ott 12:58 apache-tomcat-8.5.46.tar.gz
drwxr-xr-x. 9 root root     4096  2 ott 13:00 apache-tomcat-8.5.46
lrwxrwxrwx. 1 root root       30  2 ott 13:01 tomcat -> /opt/fapp/apache-tomcat-8.5.46
[root@coslab02 fapp]#

Creare un link simbolico a Java
[root@coslab02 fapp]# ln -s /usr/lib/jvm/jre-1.7.0-openjdk.x86_64 /opt/fapp/java
[root@coslab02 fapp]# ls -lrt
totale 4
drwxr-xr-x. 9 root root 4096  2 ott 13:00 apache-tomcat-8.5.46
lrwxrwxrwx. 1 root root   30  2 ott 13:01 tomcat -> /opt/fapp/apache-tomcat-8.5.46
lrwxrwxrwx. 1 root root   37  2 ott 13:14 java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64

Cambiamo il proprietario
[root@coslab02 fapp]# chown -R fapp:fapp *
[root@coslab02 fapp]# ls -lrt
totale 4
drwxr-xr-x. 9 fapp fapp 4096  2 ott 13:00 apache-tomcat-8.5.46
lrwxrwxrwx. 1 fapp fapp   30  2 ott 13:01 tomcat -> /opt/fapp/apache-tomcat-8.5.46
lrwxrwxrwx. 1 fapp fapp   37  2 ott 13:14 java -> /usr/lib/jvm/jre-1.7.0-openjdk.x86_64

Avviare Tomcat
[root@coslab02 bin]# .startup.sh
-bash: .startup.sh: command not found
[root@coslab02 bin]# .startup.sh
-bash: .startup.sh: command not found
[root@coslab02 bin]# ./startup.sh
Using CATALINA_BASE:   /opt/fapp/tomcat
Using CATALINA_HOME:   /opt/fapp/tomcat
Using CATALINA_TMPDIR: /opt/fapp/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/fapp/tomcat/bin/bootstrap.jar:/opt/fapp/tomcat/bin/tomcat-juli.jar
Tomcat started.

Catalina è il contenitore di servlet di Tomcat.

Verifica se installato:
http://<indirizzo ip dell'host>:8080


Cambio porta
Il protocollo http risponde sulla porta di default è 8080. Se si vuole cambiare modificare il file
/opt/fapp/tomcat/conf/server.xml
<Connector port="7180" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

Verifica:
http://<indirizzo ip dell'host>:7180


Eseguire tomcat come servizio
Se vogliamo eseguire fapp come servizio, configuriamo il file di servizio sotto initi.d.

 vi /etc/init.d/fapp

#!/bin/bash
#
# Init file for Tomcat server
#
# chkconfig: 345 55 25
# description: Tomcat server
#
# Source function library.
. /etc/init.d/functions
RUN_AS_USER=fapp
#CATALINA_HOME is the location of the bin files of Tomcat
export CATALINA_HOME=/opt/fapp/tomcat
#Location of JAVA_HOME (bin files)
export JAVA_HOME=/opt/fapp/java
export JAVA_TOOL_OPTIONS="-Xmx1024m -Xms128m"
start() {
        echo "Starting Tomcat: "
        if [ "x$USER" != "x$RUN_AS_USER" ]; then
          su - $RUN_AS_USER -c "$CATALINA_HOME/bin/startup.sh"
        else
          $CATALINA_HOME/bin/startup.sh
        fi
        # touch /var/lock/subsys/fapp
        /opt/admin/bin/stouch fapp
        echo "done."
}
stop() {
        echo "Shutting down Tomcat: "
        if [ "x$USER" != "x$RUN_AS_USER" ]; then
          su - $RUN_AS_USER -c "$CATALINA_HOME/bin/shutdown.sh"
        else
          $CATALINA_HOME/bin/shutdown.sh
        fi
        # rm /var/lock/subsys/fapp 1>/dev/null 2>&1
        /opt/admin/bin/srm fapp 1>/dev/null 2>&1
        echo "done."
}
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  *)
        echo "Usage: $0 {start|stop}"
esac
exit 0

Cambiare i permessi ma lasciare sempre come root.
[root@coslab02 init.d]# ls -lrt fapp
-rw-r--r-x. 1 root root  1175  2 ott 13:32 fapp

[root@coslab02 init.d]# chmod u=rwx,g=rx,o=rx fapp
[root@coslab02 init.d]# ls -lrt fapp
-rwxr-xr-x. 1 root root 1175  2 ott 13:32 fapp

Per avviare tomcat e quindi il servizio fapp
[root@coslab02 bin]# service fapp start
Starting Tomcat:
Using CATALINA_BASE:   /opt/fapp/tomcat
Using CATALINA_HOME:   /opt/fapp/tomcat
Using CATALINA_TMPDIR: /opt/fapp/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /opt/fapp/tomcat/bin/bootstrap.jar:/opt/fapp/tomcat/bin/tomcat-juli.jar
Tomcat started.


Aggiungere nel DNS l'alias all'applicazione creata.
coslab02        IN      A       <indirizzo ip dell'host>
fapp            IN      CNAME   coslab02


Verifica
http://fapp:7180



Configurare l’autenticazione. Tomcat può essere gestito attraverso web application manger e host-manager ma entrambi hanno l’accesso protetto da password che occorre configurare. Per accedere a Manager App e Host Manager modificare i seguenti file. vi /opt/fapp/tomcat/conf/tomcat-users.xml Aggiungere le seguenti righe <role rolename="admin-gui"/> <role rolename="manager-script"/> <role rolename="manager-gui"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="tomcat" password="s3cret" roles="manager-gui,manager-status,admin-gui"/> </tomcat-users> manager-gui: l’utente con questo ruolo può accedere alla pagina status (http://localhost:8080/manager/status) e alla web console (http://localhost:8080/manager/html); Poi modificare i seguenti file ### Web Manager ### vi /opt/fapp/tomcat/webapps/manager/META-INF/context.xml ### Host Manager ### vi /opt/fapp/tomcat/webapps/host-manager/META-INF/context.xml aggiornando gli indirizzi ip che possono accedere a web e host manager oltre a local host allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|.*" /> oppure se si vuole autorizzare solo un indirizzo IP allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.1.*" /> Riavviare tomcat service fapp restart


Log Tomcat
Default tomcat location è /var/www/html/tomcat/logs. Nel nostro caso /opt/fapp/tomcat/logs [root@coslab02 logs]# ls -lrt totale 468 -rw-r-----. 1 tomcat tomcat 0 26 set 17:04 manager.2019-09-26.log -rw-r-----. 1 tomcat tomcat 0 26 set 17:04 host-manager.2019-09-26.log -rw-r-----. 1 tomcat tomcat 735 26 set 17:05 localhost.2019-09-26.log -rw-r-----. 1 tomcat tomcat 407523 26 set 17:05 catalina.out -rw-r-----. 1 tomcat tomcat 7618 26 set 17:05 catalina.2019-09-26.log -rw-r-----. 1 tomcat tomcat 8759 26 set 17:05 localhost_access_log.2019-09-26.txt view localhost_access_log.2019-09-26.txt 10.10a.bbb.ccc - - [26/Sep/2019:16:39:08 +0200] "GET /pagina_test.jsp HTTP/1.1" 200 184 Dice che la macchina con ip 10.10a.bbb.ccc ha fatto in quella data una get request della pagina “pagina_test.jsp” In catalina.out scrive invece System.out e System.err


Context Tomcat

In Tomcat ogni contesto rappresenta una web application e un server Tomcat può avere in esecuzioni
più applicazioni contemporaneamente ma solo un contesto è definito come di deafult.
Nel context viene pubblicata (deploy) una applicazione.

Un context può essere definito in modo esplicito:

- aggiungendo un file xml sotto /opt/fapp/tomcat/conf/Catalina/localhost
Ad esempio creando il fapp.xml la url diventa così
http://<indirizzo ip>:8080/fapp/...

- aggiungendo un elemento "context" nel file /opt/tomcat/conf/server.xml all'interno dell'elemento "Host"

<Host name="localhost" appBase="webapp" autoDeploy="true"> <Context path="/fapp" docBase="/path/to/web/app/fapp" reloadable="true" /> </Host>

Un context può essere definito in modo implicito copiando il file war sotto la cartella webapps di Tomcat
/opt/fapp/tomcat/webapps


Testiamo Apache Tomcat con una JSP

I document root di Apache web server è in general sotto /var/www/html/.

Come si cerca?
cercare la directory webapp di Tomcat
sotto /opt/fapp/tomcat/conf cercare nel file server.xml la directory webapp.

cat /opt/tomcat/conf/server.xml | grep webapp
<Host name="localhost" appBase="webapps"

La document root é:
/opt/fapp/tomcat/webapps/ROOT
index.jsp è la pagine web di defualt.

All’interno della document root creiamo una pagina jsp di prova. vi pagina_test.jsp <html> <head><title>JSP prova</title></head> <body> <% double num = Math.random(); if (num > 0.95) { %> <h2>Oggi è una buona giornata!</h2><p>(<%= num %>)</p> <% } else { %> <h2>La vita va avanti</h2><p>(<%= num %>)</p> <% } %> <a href="<%= request.getRequestURI() %>"><h3>Riprova</h3></a> </body> </html> Nell’url del borwser aggiungiamo la pagina jsp creata. http://fapp:7180/pagina_test.jsp compare la seguente schermata




Post popolari in questo blog

ORA-12154: TNS: il listener non è attualmente a conoscenza del servizio richiesto nel descrittore di connessione

Funzione TO_DATE

CREATE DATABASE LINK