Installare Apache Tomcat 8.5 su Centos 6

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 un account tomcat. useradd -d /opt/tomcat tomcat Effettuare il download di Tomcat dal sito https://tomcat.apache.org Ad esempio apache-tomcat-8.5.45.tar.gz e trasferirlo sotto /opt/tomcat
Creare un account tomcat.
useradd -d /opt/tomcat  tomcat

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


[root@coslab02 tomcat]# tar xzf apache-tomcat-8.5.45.tar.gz

[root@coslab02 tomcat]# ls -lrt
totale 9500
-rw-r--r--. 1 root root 9722154 13 set 16:14 apache-tomcat-8.5.45.tar.gz
drwxr-xr-x. 9 root root    4096 13 set 16:15 apache-tomcat-8.5.45

[root@coslab02 tomcat]# chown -R tomcat:tomcat apache-tomcat-8.5.45

[root@coslab02 tomcat]# ls -lrt
totale 9500
-rw-r--r--. 1 root   root   9722154 13 set 16:14 apache-tomcat-8.5.45.tar.gz
drwxr-xr-x. 9 tomcat tomcat    4096 13 set 16:15 apache-tomcat-8.5.45

Creare un link simbolico a tomcat.

[root@coslab02 fapp]# ln -s /opt/tomcat/apache-tomcat-8.5.46 /opt/tomcat

Creare un link simbolico sotto /opt/tomcat alla java home e cambiare owner. [root@coslab02 tomcat]# ln -s /usr/lib/jvm/jre-1.7.0-openjdk.x86_64 java [root@coslab02 tomcat]# chown -R tomcat:tomcat java


Diamo al gruppo di tomcat l'accesso in lettura alla directory conf e a tutti i suoi contenuti:
chmod -R g+r conf
chmod g+x conf


Rendiamo l'utente tomcat il proprietario delle directory webapps, work, temp e logs: chown -R tomcat webapps/ chown -R tomcat work/ chown -R tomcat temp/ chown -R tomcat logs/

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

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






Eseguire tomcat come servizio vi /etc/init.d/tomcat8
#!/bin/bash
#Location of JAVA_HOME (bin files)
#export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
export JAVA_HOME=/opt/tomcat/java
#Add Java binary files to PATH
export PATH=$JAVA_HOME/bin:$PATH
#CATALINA_HOME is the location of the bin files of Tomcat
export CATALINA_HOME=/opt/tomcat
#CATALINA_BASE is the location of the configuration files of this instance of Tomcat
export CATALINA_BASE=/opt/tomcat
#TOMCAT_USER is the default user of tomcat
export TOMCAT_USER=tomcat
#TOMCAT_USAGE is the message if this script is called without any options
TOMCAT_USAGE="Usage: $0 {\e[00;32mstart\e[00m|\e[00;31mstop\e[00m|\e[00;31mkill\e[00m|
\e[00;32mstatus\e[00m|\e[00;31mrestart\e
[00m}"
#SHUTDOWN_WAIT is wait time in seconds for java proccess to stop
SHUTDOWN_WAIT=20
tomcat_pid() {
        echo `ps -fe | grep $CATALINA_BASE | grep -v grep | tr -s " "|cut -d" " -f2`
}
start() {
  pid=$(tomcat_pid)
  if [ -n "$pid" ]
  then
    echo -e "\e[00;31mTomcat is already running (pid: $pid)\e[00m"
  else
    # Start tomcat
    echo -e "\e[00;32mStarting tomcat\e[00m"
    #ulimit -n 100000
    #umask 007
    #/bin/su -p -s /bin/sh $TOMCAT_USER
        if [ `user_exists $TOMCAT_USER` = "1" ]
        then
                /bin/su $TOMCAT_USER -c $CATALINA_HOME/bin/startup.sh
        else
                sh $CATALINA_HOME/bin/startup.sh
        fi
        status
  fi
  return 0
}

status(){
          pid=$(tomcat_pid)
          if [ -n "$pid" ]; then echo -e "\e[00;32mTomcat is running with pid: $pid\e[00m"
          else echo -e "\e[00;31mTomcat is not running\e[00m"
          fi
}

terminate() {
        echo -e "\e[00;31mTerminating Tomcat\e[00m"
        kill -9 $(tomcat_pid)
}

stop() {
  pid=$(tomcat_pid)
  if [ -n "$pid" ]
  then
    echo -e "\e[00;31mStoping Tomcat\e[00m"
    #/bin/su -p -s /bin/sh $TOMCAT_USER
        sh $CATALINA_HOME/bin/shutdown.sh

    let kwait=$SHUTDOWN_WAIT
    count=0;
    until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]
    do
      echo -n -e "\n\e[00;31mwaiting for processes to exit\e[00m";
      sleep 1
      let count=$count+1;
    done

    if [ $count -gt $kwait ]; then
      echo -n -e "\n\e[00;31mkilling processes didn't stop after $SHUTDOWN_WAIT seconds\e[00m"
      terminate
    fi
  else
    echo -e "\e[00;31mTomcat is not running\e[00m"
  fi

  return 0
}

user_exists(){
        if id -u $1 >/dev/null 2>&1; then
        echo "1"
        else
                echo "0"
        fi
}

case $1 in
        start)
          start
        ;;
        stop)
          stop
        ;;
        restart)
          stop
          start
        ;;
        status)
                status
        ;;
        kill)
                terminate
        ;;
        *)
                echo -e $TOMCAT_USAGE
        ;;
esac
exit 0

Dare le grant di esecuzione:
chmod +x /etc/init.d/tomcat8 service tomcat8 start Per verificare se la porta 8080 è in ascolto. netstat -naptu | grep 8080 Output: tcp 0 0 :::8080 :::* LISTEN 1526/java


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/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/tomcat/webapps/manager/META-INF/context.xml ### Host Manager ### vi /opt/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 tomcat8 restart





Cliccare su Manager App












Qui, puoi effettuare il deploy di una nuova applicazione, anche in uno specifico context, avere la lista
delle applicazioni active o inactive, start and stop the web applications.
Cliccare su HOST Manager







Log Tomcat Default tomcat location è /var/www/html/tomcat/logs. Nel nostro caso /opt/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


Testiamo Apache Tomcat con una JSP I document root di Apache web server è in general sotto /var/www/html/ ma nel nostro caso cerchiamo sotto /opt/tomcat/conf la directory webapp.
[root@coslab02 conf]# ll totale 228 drwxr-x---. 3 tomcat tomcat 4096 13 set 16:41 Catalina -rw-r-----. 1 tomcat tomcat 13548 15 ago 00:27 catalina.policy -rw-r-----. 1 tomcat tomcat 7661 15 ago 00:27 catalina.properties -rw-r-----. 1 tomcat tomcat 1338 15 ago 00:27 context.xml -rw-r-----. 1 tomcat tomcat 1149 15 ago 00:27 jaspic-providers.xml -rw-r-----. 1 tomcat tomcat 2313 15 ago 00:27 jaspic-providers.xsd -rw-r-----. 1 tomcat tomcat 3916 15 ago 00:27 logging.properties -rw-r-----. 1 tomcat tomcat 7511 15 ago 00:27 server.xml -rw-r-----. 1 tomcat tomcat 2412 23 set 18:07 tomcat-users.xml -rw-r-----. 1 tomcat tomcat 2633 15 ago 00:27 tomcat-users.xsd -rw-r-----. 1 tomcat tomcat 171482 15 ago 00:27 web.xml [root@coslab02 conf]# cat server.xml | grep webapp <Host name="localhost" appBase="webapps" Quindi la webapp folder è sotto /opt/tomcat [root@coslab02 tomcat]# ls webapps/ docs examples host-manager manager ROOT [root@coslab02 ROOT]# ls asf-logo-wide.svg bg-middle.png bg-upper.png index.jsp tomcat.css tomcat.png tomcat.svg bg-button.png bg-nav.png favicon.ico RELEASE-NOTES.txt tomcat.gif tomcat-power.gif WEB-INF Quindi la document root è /opt/tomcat/webapps/ROOT e index.jsp è la pagine web seguente

All’interno della document root /opt/tomcat/webapps/ROOT mettiamo 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://10.1aaa.bbb.ccc:8080/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

Create e Drop Pluggable Database