Tomcat è un servlet container o in parole semplici è un server su cui è possibile far girare Servlet e JSP che sono alcune delle tecnologie Java (J2EE) più utilizzate nella programmazione web. Alcune cose utili da sapere prima di procedere con l’installazione:
- Tomcat è free, open source ed è scritto in Java per cui è anche multipiattaforma
- Essendo scritto in Java dovete avere Java installato. Vedere qui per come fare
- tecnologie come EJB, JMS, ecc. richiedono per l’appunto un EJB container: vale a dire non potete far girare EJB su Tomcat.
- Tomcat può anche servire normali pagine statiche HTML ma a questo scopo e per usi professionali si tende ad utilizzare Apache. In ambito aziendale Tomcat trova spesso il suo impiego “dietro” un server Apache che si occupa di servire i contenuti statici e demanda a Tomcat il compito di servire pagine dinamiche.
Su Ubuntu Tomcat è disponibile nei repository ufficiali nella versione 5.5 ed è facilmente inspallabile attraverso Synaptic (System -> Administration -> Synaptic Manager) o se preferite da terminale:
sudo apt-get install tomcat5
Tuttavia la versione nel repository non è la più aggiornata. Sul sito è disponibile la versione 6 che al di là degli ovvi bug fixing supporta una versione più aggiornata della specifiche Servlet e JSP di Sun.
Brevemente:
- Tomcat 6.0.x supporta le specifice Servlet 2.5 e le specifiche JSP 2.1
- Tomcat 5.5.x supporta le specifice Servlet 2.4 e le specifiche JSP 2.0
- Tomcat 4.1.x supporta le specifice Servlet 2.3 e le specifiche JSP 1.2
- Tomcat 3.3.x supporta le specifice Servlet 2.2 e le specifiche JSP 1.1
Ne consegue che se volete installare la versione più aggiornata o una datata, dovrete installare Tomcat a mano (il che è veramente semplice)
La seguente procedura è testata su Tomcat 6.0.14 e Ubuntu 7.04 con java settato come in uno dei miei precedenti post ma sarei veramente sorpreso se non si adattasse alle altre principali distribuzioni Linux e alle altre versioni di Tomcat. Iniziamo con lo scaricare Tomcat da qua per la versione 6 oppure scegliete un’altra versione da qua. Selezionate il file tar.gz sotto “Core” sotto “Binary Distributions” a fate il download.
Scaricato il file spostatelo sotto /opt o in un’altra directory di vostra scelta e scompattatelo. Vi ritroverete con una directory dal probabile nome di apache-tomcat-6.0.14 e potete anche rimuovere il file .tar.gz. Di fatto l’installazione è terminata. Per usare il server appena installato vi potrebbero far comodo le seguenti basilari informazioni.
- Avvio e shutdown del server: potete avviare e stoppare tomcat attraverso due script che trovate nella directory
bin. Da terminale eseguite:/opt/apache-tomcat-6.0.14/bin/startup.sh(per avviare il server)/opt/apache-tomcat-6.0.14/bin/shutdown.sh(per stoppare il server)Ora dipende dai vostri gusti ma se volete semplificarvi la vita ed evitare ogni volta di digitare tutta la stringa potete aggiungere al
$PATHanche la directory di Tomcat (vedi env_vars nel post su Java) o creare un link e metterlo in una delle directory già nel$PATH(per vederlo:echo $PATH) o creare un launcher sulla barra delle applicazioni, ecc. - Log del server: per qualsiasi problema il primo posto dove guardare è il log del sistema che si troverà in questo esempio in:
/opt/apache-tomcat-6.0.14/logs/catalina.outSe è molto lungo potete utilizzare da terminale:
tail -500 /opt/apache-tomcat-6.0.14/logs/catalina.outche stamperà a video solo le ultime 500 righe del file.
- Configurazione: non dovreste avere bisogno di cambiare niente dei settaggi di default, almeno per una configurazione standard. In ogni caso il comportamento del server è regolato attraverso una serie di file presenti sotto la cartella
/opt/apache-tomcat-6.0.14/confe principalmente il fileserver.xmldove tra le altre cose è definita la porta di default su cui il server si pone in ascolto (8080) e altre opzioni avanzate (cluster, connectors, ecc.) - Amministrazione se il server è stato avviato senza intoppi (ed è stato installato in locale come si suppone in questo esempio) potete inserire in un browser in seguente indirizzo:
http://127.0.0.1:8080/
e vi apparirà la schermata di amministrazione del server. Le finzioni sotto administration richiedono il login quindi prima dovete creare uno user. Aprite il file
/opt/apache-tomcat-6.0.14/conf/tomcat-users.xmle aggiungete le seguenti due righe:
<role rolename="manager"/>
<user username="manager" password="password" roles="manager"/>
in modo che il file finale assomigli a qualcosa di questo tipo:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
.
.
<role rolename="manager"/>
<user username="manager" password="password" roles="manager"/>
</tomcat-users>
Riavviate il server e ora dovreste essere capaci di accedere a “Tomcat Manager” con le credenziali appena create. Da questa sezione di amministrazione potrete poi controllare le java web applications attive sul sistema, deployarle, aggiungerne di nuove attraverso l’upload di un file
.ware tante altre belle cose ancora. - Monitoraggio: per monitorare il server potete sempre usare i seguenti due comandi da terminale:
ps -ef | grep tomcatper controllare se Tomcat è tra i processi attivi sul vostro pc oppure:
sudo nmap -sS 127.0.0.1per controllare le porte aperte sul vostro computer e il particolare quella su cui Tomcat è in ascolto. Tenete presente che
nmappotrebbe non essere installato sul vostro sistema.
Questi basilari comandi vi aiutano anche in un primo troubleshooting. Se per esempio il server non parte e controllando catalina log vedete qualcosa del tipo:
LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: java.net.BindException: Address already in use:8080vuol dire che la porta 8080 è già occupata da un altro processo, forse una precedente istanza di tomcat che non è stata propriamente stoppata (ve lo potrebbe dire ps -ef) oppure c’è un qualche altro programma in ascolto su quella porta (ve lo potrebbe dire nmap).




Scusa ma c’è un errore:
/opt/apache-tomcat-6.0.14/bin/startup.sh (per avviare il server)
/opt/apache-tomcat-6.0.14/bin/startup.sh (per stoppare il server)
io uso “catalina.sh start” e “catalina.sh stop” immagino che anche startup.sh necessiti di start e stop.
Un consiglio: per controllare la porta 8080 se èattiva e associata a java è sufficiente
sudo netstat -anp|grep 8080
Ciao,
Antonio
————————-
Ciao Antonio, grazie per la segnalazione. Il secondo script era “shutdown.sh”. Gia’ corretto.
Volevo segnalarti che ho linkato questo articolo da linuxpedia: http://linuxpedia.netsons.org/index.php/Tomcat cosa ne dici di “copiare” questo articolo anche lì? Se non vuoi farlo di persona basta che dai il permesso per farlo ..
Grazie. Tutti i post pubblicati su questo blog possono essere copiati con l’unica avvertenza di citare (o linkare) la fonte.
Buon giorno a tutti, mi chiamo Antonio ed ho avuto il piacere di conoscervi cercando soluzione al mio problema.
avrei bisogno di chiedervi un favore, perchè non so più come andare avanti e cosa provare.
devo far funzionare un programma datomi da un mio docente su di un mio server, con il quale poi dovrò gestire un piccolo Db.
questa programma è una servlet in java, che ovviamente necessita sia di tomacat che delle jdk
ho installato tomcato seguendo passo passo quanto qui descritto e le jdk seguendo passo passo quanto descritto sempre in questo sito nel forum Installare Java su Ubuntu
entrambi dovrebbero essere correttamente installati sul server.
sotto windows funziona perfettamente, cosi come sotto red hat a sentire il professore.
ho provato ad installare sia debian, che ubuntu su di una mia macchina, ma senza riuscire ad avere i risultati a far funzionare la servlet.
il problema è che pare non vi siano le autorizzazioni necessarie a far andare il tutto
infatti seguendo il debug del programma, tutto và perfettamente fino al momento in cui questo deve creare file o modificarne altri, parrebbe nemmeno aprire i file xml gia generati o comunque presenti.
avevo provato anche a dare a tutta la cartella ed ai file in essa contenuti tutte 7 come autorizzazioni …
ma senza avere risultati … le operazioni le ho provate a fare come root … ma nulla
non capisco , forse devo cambiare le autorizzazioni all’utente tomcat ? o cosa? e sopratutto in che modo?
sono come credo si capisca , molto agli inizi … e sono oramai 6 mesi che provo a cercare soluzioni anche sul web …
tutto ciò che ho trovato sono cose che poi alla fine non hanno funzionato.
grazie per ogni suggerimento potrete darmi, spero possiate aiutarmi
Antonio
Io ho provato adesso a fare sudo apt-get install tomcat5 e non va (ho kubuntu 7.10) per farlo funzionare devo dare sudo apt-get install tomcat5.5
anche i file di start e stop sono stati spostati; si trovano in /usr/share/tomcat/bin/
è proprio quello che cercavo! tutorial breve e chiaro.
[...] Links utili: Tomcat 6 download Installing Tomcat 6 on Ubuntu Installare Tomcat su Ubuntu e Linux in generale [...]
Grazie un tutorial molto chiaro e pratico, ho solamente un dubbio.. magari puoi chiarirmi le idee.
In ubuntu, da utente non posso scrivere in /opt e non posso scompattarci il file compresso.
La mia domanda è posso scompattare come root il file di tomcat e poi usarlo normalmente da utente generico, non root?
forse aiuterebbe quelli alle prime armi, come me, se aggiungessi i passaggi per decomprimere il tar.gz
comunque già così è molto chiaro, grazie
ok indico come sto facendo io, magari chi ha più esperienza può correggermi dove sbaglio.
Per mettere la cartella di Tomcat in /opt ho avviato nautilus come root, quindi da shell ho dato il comando: sudo nautilus (forse era più indicato un gksudo?)
quindi direttamente con interfaccia grafica ho spostato il pacchetto tomcat.tar.gz in /opt e lo ho decompresso.
per avviare e bloccare il tomcat ho creato due lanciatori, in GNOME, taso dx sul desktop->crea lanciatore
per il lanciatore che avvia tomcat ho inserito il seguente comando: gksudo /opt/tomcat/bin/startup.sh
mentre per il lanciatore che uso per spegnere tomcat ho usato: gksudo /opt/tomcat/bin/shutdown.sh
ovviamente quando uso i lanciatori devo poi inserire la password di root
ciao, grazie
Ciao, ho installato tomcat6 da synaptic. Dal browser 127.0.0.1:8080 si apre la pagina It works ! Ho un problema con tomcat6-admin, ed esattamente con
manager webapp e con
host-manager webapp.
Quando ci clicco sopra mi chiede
nome utente e
password
Ho seguito la tua guida Amministrazione ed ho inserito
nel file user.xml ma quando inserisco i i due dati e do ok non succede nulla o meglio si presenta la medesima finestra e mi chiede di nuovo la stessa cosa. Fino a che non chiudo e mi dice error 401.
Cosa c’è che non va ?
Grazie
Spettacolo, grazie mille
Diego Benna writes: See this link: http://diegobenna.blogspot.com/2011/01/install-tomcat-7-in-ubuntu-1010.html for install tomcat7 on Linux (Ubuntu 10.10 tested)
Greate blog for server configuration: Ubuntu, Tomcat, Jdk, Virtualhost, apache, jk_mod, ecc