Cos'è Tomcat ?

Tomcat è un web server dotato di un servlet container. Ciò lo rende in grado di rendere disponibili non solo pagine web tramite il protocollo HTTP ma di eseguire Java Servlet e tutte le tecnologie web su di esse basate quindi pagine JSP ma anche importanti framework come Spring.
È importante conoscerlo perchè rappresenta un ottimo modo, opensource, per praticare la programmazione web in Java, nei casi in cui non sia indispensabile utilizzare un vero application server.
Tuttavia molti progetti molto delicati sotto ospitati su Tomcat.
Infine, da ricordare che si tratta di un progetto sviluppato dalla Apache Foundation ed è tuttora opensource e progredisce grazie alla libera collaborazione di ottimi programmatori di tutto il mondo.
Attualmente è distribuito sotto la Apache License versione 2.

Installazione

Bisogna ricordare innanzitutto che Tomcat è basato sulla tecnologia Java quindi per installarlo si dovrà procedere in due passi:

  • installazione di un ambiente di sviluppo Java sul proprio Debian, procurandosi un JDK (Java Development Kit);
  • installazione del web server Tomcat.

Installazione del JDK

Java è una creazione della Sun Microsystems e può essere reso disponibile sul proprio Debian:

  • utilizzando la versione libera openjdk;
  • facendo ricorso al pacchetto della Sun.

Percorreremo la seconda via ma, per fare ciò, sarà necessario apportare delle modifiche al file /etc/apt/sources.list. Tramite il comando:

# vi /etc/apt/sources.list

potremo apportare la necessaria modifica che consisterà nell'aggiunta delle seguenti righe:

deb http://ftp.debian.org/debian/ squeeze main contrib non-free 
deb-src http://ftp.debian.org/debian/ squeeze main contrib non-free

Subito dopo potremo procedere all'aggiornamento dei pacchetti disponibili con:

# aptitude update

Al termine dell'operazione, vedremo tra i pacchetti disponibili, l'ultima versione del JDK della Sun.
Attualmente sun-java6-jdk, il kit di sviluppo per la versione 1.6 del linguaggio Java.
Al termine dell'installazione, durante la quale sarà necessario accettare i termini di licenza, si potrà averne la prova della riuscita:

  • controllando se è disponibile la Java Virtual Machine digitando:
# java

e verificando che venga restituito la descrizione della modalità di uso del comando;

  • verificando la versione del linguaggio Java disponibile con:
# java -version

e ricevendo di risposta poche righe attestanti la versione java installata che ovviamente dovrebbe corrispondere a quella del pacchetto richiesto. Ad esempio, sun-java6-jdk installa java 1.6.

Installazione di Tomcat

Una volta ottenuto il JDK, si è pronti ad installare Tomcat.
Tramite il comando:

# aptitude search tomcat

Si possono vedere le versioni di tomcat disponibili.
Se, ad esempio, si ottiene il seguente output:

p   libtomcat6-java
p   tomcat6
p   tomcat6-admin
p   tomcat6-common
p   tomcat6-docs
p   tomcat6-examples
p   tomcat6-user 

Si potrebbe iniziare installando i pacchetti tomcat6 e tomcat6-admin per l'amministrazione.

# aptitude install tomcat6 tomcat6-admin

Una volta terminata l'installazione del server, per provarlo sarà sufficiente aprire il browser e richiedere l'indirizzo ip della macchina alla porta 8080.
Ad esempio, se l'indirizzo IP della macchina con il server Tomcat è 192.168.1.100, si dovrà testare Tomcat contattando:

http://192.168.1.100:8080

In caso di corretto funzionamento del server (che dovrebbe essere già attivato) si otterrà la classica pagina di risposta in stile Apache Foundation "It works!".

Struttura dell'installazione

La struttura dei dati di questo pacchetto è leggermente diversa da quella normale (soprattutto se pensiamo ad apache).

La home in cui sono posizionati tutti i file normalmente usati dal server è /var/lib/tomcat5 (o 4).

In particolare troviamo:

conf
contenente i file di configurazione del server, è un link a /etc/tomcat5/
logs
contiene tutti i log delle varie istanze di tomcat. È un link alla directory /var/log/tomcat5
shared
temp
webapps
directory contenente le varie webapps.
work

--turinext 21:09, 25 mar 2012 (CEST)