Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 2 del 07/04/2007 18.10.43

Nascondi questo messaggio

BR

Introduzione

Apache Tomcat è un Servlet/JSP engine che non fa altro che contenere ed eseguire le applicazioni Java Servlet e Java Server Page (JSP).

Non è l'unico Application Server per Servlet/JSP in circolazione, ma di sicuro è libero ed è il contenitore di servlet utilizzato nell'implementazione ufficiale di riferimento per il Java Servlet e le tecnologie Java Server Page sviluppate dalla Sun Microsystems.

Questa guida servirà ad installare Apache Tomcat utilizzando i binari ufficiali prelevabili dal sito di Tomcat e non utilizzando i pacchetti precompilati di Ubuntu prelevabili dal [:Repository:repository] Universe.

Il tutto per un duplice motivo:

  1. i pacchetti di Ubuntu non sono sincronizzati con l'ultima release disponibile;

  2. richiedono dipendenze, spesso eccessive e non necessariamente utili, come ad esempio l'installazione delle librerie ligcj e sue dipendenze, che risulterebbero ridondanti visto già la presenza, o che comunque andremo ad installare, di Java JRE e JDK della Sun.

Tomcat 6

Procediamo con l'installazione di Tomcat.

Installazione

Attiviamo i repository Universe e Multiverse di Ubuntu. Per maggiori informazioni consultare la pagina [:Repository].

  1. Installamio per prima cosa, se già non lo avete fatto il Java jre e jdk:

    sudo apt-get install sun-java5-jre sun-java5-jdk

    se invece volete installare l'ultimissima versione di Java, la 1.6:

    sudo apt-get install sun-java6-jre sun-java6-jdk
  2. Scarichiamo dal sito http://tomcat.apache.org/ l'ultima versione di Tomcat, la 6 al momento in cui sto scrivendo:

    wget http://mirrors.publicshout.org/apache/tomcat/tomcat-6/v6.0.7/bin/apache-tomcat-6.0.7.tar.gz
  3. Estraiamo l'archivio:

    tar xzfv apache-tomcat-6.0.7.tar.gz
  4. Copiamo in /usr/local la directory estratta e poi creiamo un link simbolico /usr/local/tomcat , per un triplice motivo, praticità, manutenibilità e comodità se si desidera installare più versioni (basta cambiare il riferimento al link simbolico). Procediamo:

    sudo cp -r apache-tomcat-6.0.7 /usr/local/
    sudo ln -s /usr/local/apache-tomcat-6.0.7/ /usr/local/tomcat
  5. Creiamo uno script per init.d per far si che il demone di Tomcat venga attivato all'avvio o comunque darci la possibilità di avviarlo, arrestarlo, riavviarlo:

    1. creiamo il file /etc/init.d/tomcat con l'[:EditorDiTesto:editor di testo preferito] e copiamo quanto segue:

      #
      # Startup script for the Tomcat server
      #
      # chkconfig: - 83 53
      # description: Starts and stops the Tomcat daemon.
      # processname: tomcat
      # pidfile: /var/run/tomcat.pid
      # See how we were called.
      case $1 in
              start)
                      export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun/
                      export CLASSPATH=/usr/local/tomcat/lib/servlet-api.jar
                      export CLASSPATH=/usr/local/tomcat/lib/jsp-api.jar
                      export JRE_HOME=/usr/lib/jvm/java-1.5.0-sun/
                      echo "Tomcat is started"
                      sh /usr/local/tomcat/bin/startup.sh
              ;;
              stop)
                      export JRE_HOME=/usr/lib/jvm/java-1.5.0-sun/
                      sh /usr/local/tomcat/bin/shutdown.sh
                      echo "Tomcat is stopped"
              ;;
              restart)
                      export JRE_HOME=/usr/lib/jvm/java-1.5.0-sun/
                      sh /usr/local/tomcat/bin/shutdown.sh
                      echo "Tomcat is stopped"
                      sh /usr/local/tomcat/bin/startup.sh
                      echo "Tomcat is started"
              ;;
              *)
                      echo "Usage: /etc/init.d/tomcat start|stop|restart"
              ;;
      esac
      exit 0
    2. Diamogli i giusti permessi, rendiamolo eseguibile e registriamolo:

      sudo chmod 755 /etc/init.d/tomcat
      sudo update-rc.d tomcat defaults
  6. Avviamo Tomcat:

    sudo /etc/init.d/tomcat start
  7. A questo punto, se tutto è andato per il verso giusto, connettendoci all'indirizzo [http://localhost:8080] dovremmo vedere la pagina di benvenuto di Tomcat.

Apache e Tomcat

Tomcat è abbastanza performante per essere eseguito come Web Server di pagine statiche o dinamiche, o come Web Application Server. Tuttavia se si vogliono sfruttare anche le innumerevoli potenzialità di un vero e proprio Web Server come Apache, soprattutto se lo si usa in macchine in produzione, esiste un connector che permette di mettere in comunicazione Apache con Tomcat facendolo richiamare da Apache solo quando serve.

Installazione del jk connector

Ovviamente si presume che abbiate Apache2 già installato.

  1. Installiamo il connector:

    sudo apt-get isntall libapache2-mod-jk
  2. Creiamo il file /etc/apache2/workers.properties con l'[:EditorDiTesto:editor di testo] preferito e copiamo quanto segue:

    workers.tomcat_home=/usr/local/tomcat
    workers.java_home=/usr/lib/jvm/java-1.5.0-sun
    ps=/
    worker.list=ajp13
    worker.ajp13.host=localhost
    worker.ajp13.port=8009
    worker.ajp13.type=ajp13

    Con port=8009 si intende la porta con la quale Tomcat ascolta il connector, non http che è 8080.

  3. Modifichiamo il file /etc/apache2/mods-available/jk.load e inseriamo, dopo la riga «!LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so», quanto segue:

    JkWorkersFile   /etc/apache2/workers.properties
    JkLogFile   /etc/apache2/mod_jk.log
    JkLogLevel   debug
    #JkMount      /servlets-examples/* ajp13 #da decommentare se si usa tomcat 5.x;
    JkMount      /examples/* ajp13
  4. Riavviamo Apache:

    sudo /etc/init.d/apache2 restart

Se tutto è andato per il verso giusto, connettendoci all'indirizzo [http://localhost/examples], dovremmo vedere la pagina con i JSP e i Java Servlet d'esempio.

Osservazioni e approfondimenti

Connector: aggiungere altre directory web

In /etc/apache2/workers.properties la direttiva «JkMount» non fa altro che redirigere a Tomcat tutte le richieste http precedute da /examples/, per esempio http:/localhost/exampler/unesempio.jsb , in questo caso unesempio.jsp verrà processato da Tomcat invece che da Apache.

Dunque, se vogliamo aggiungere altre direcotory per richiamare le nostre applicazioni basta inserire altri «JkMount» in /etc/apache2/mods-available/jk.load:

.....
JkMount      /examples/* ajp13
JkMount      /<nomedirectory>/* ajp13

È importante osservare che <nomedirectory> deve essere contenuta all'interno della directory /usr/local/tomcat/webapps, questo perchè come avete potuto notare in /etc/apache2/workers.properties abbiamo settato il path della home di Tomcat in /usr/local/tomcat, dunque la direttiva JkMount effettuerà la sua ricerca a partire da li.

Se invece vogliamo che le nostre applicazioni siano salvate e sviluppate in una directory nella nostra home, oppure nella root del nostro Web Server, basta creare un collegamento simbolico che dalla directory dichiarata in «JkMount» punti a una directory o nella nostra home o nella root del Web Server o in qualsiasi posto noi volessimo salvare i nostri progetti Servlet/JSP.

Per esempio, se vogliamo che «JkMount /<nomedirectory>/» punti a /home/nomeutente/nostreapplicazioni/<nomedirectory>, procederemo come segue:

mkdir /home/nomeutente/nostreapplicazioni/<nomedirectory>
sudo ln -s /home/nomeutente/nostreapplicazioni/<nomedirectory>/ /usr/local/tomcat/webapps/<nomedirectorydichiaratainJkMount>
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/tomcat restart

Ora basterà inserire o creare le nostre applicazioni in /home/nomeutente/nostreapplicazioni/<nomedirectory> e puntando col nostro browser a [http://localhost/<nomedirectorydichiaratainJkMount>/applicazione.jsp] i nostri lavori verranno processati da Tomcat.

Amministrare Tomcat

Per amministrare Tomcat è necessario attivare Tomcat Manager. Per farlo basta seguire questi semplici passi:

  1. Apriamo il file /usr/share/tomcat/conf/tomcat-users.xml con l'[:EditorDiTesto:edito di testo] che preferiamo e aggiungiamo l'utente/i con i ruoli di admin e manager. Per creare i ruoli inseriamo tra i tag «<tomcat-users> ... </tomcat-users>»:

    <role rolename="manager"/>
    <role rolename="admin"/>

    mentre per creare l'utente con i ruoli di admin e manager, inseriamo:

    <user username="YOUR USERNAME " password="YOUR PASSWORD" roles="admin,manager"/>

    Se volessimo dare all'utente un unico ruolo, come admin, basta inserirne solo uno:

    <user username="YOUR USERNAME " password="YOUR PASSWORD" roles="admin"/>
  2. Connettiamoci all'indirizzo [http://localhost:8080/manager/html] e accediamo al pannello di controllo di Tomcat Manager con le credenziali appena create.

Per approfondimenti sulla creazioni di altri ruoli vi rimando alla documentazione ufficiale: [http://tomcat.apache.org/tomcat-6.0-doc/index.html].

Tomcat 5.x

La procedura di installazione di Tomcat appena descritta vale per la versione 6, ma, per le versioni precendenti, il metodo e l'approccio non cambiano, basta avere l'accortezza di adeguare alcuni path nei file di configurazione, visto che le direcotory delle versioni precedenti sono organizzate e nominate diversamente dalla versione 6.

Ecco nel dettaglio come procedere:

  1. Ridefinire il collegamento simbolico /usr/local/tomcat facendolo puntare a /usr/local/apache-tomcat-5.5.20 (o comunque alla versione scelta):

    sudo ln -s /usr/local/apache-tomcat-5.5.20 /usr/local/tomcat

    se non è una nuova installazione e avevate già definito il collegamento simbolico, prima di crearlo è necessario rimuoverlo:

    sudo rm /usr/local/tomcat
  2. Nel file /etc/init.d/tomcat modificare i CLASSPATH da:

    export CLASSPATH=/usr/local/tomcat/lib/servlet-api.jar
    export CLASSPATH=/usr/local/tomcat/lib/jsp-api.jar

    in:

    export CLASSPATH=/usr/local/tomcat/conf/lib/servlet-api.jar
    export CLASSPATH=/usr/local/tomcat/conf/lib/jsp-api.jar

    La differenza sta che lib/ nelle versioni precedenti è una sotto directory di conf/.

  3. Nel file /etc/apache2/mods-available/jk.load sostituiamo:

    JkMount      /examples/* ajp13

    con:

    JkMount      /servlets-examples/* ajp13

Questo perchè gli esempi non si trovano in examples/ come nella versione 6, ma in servlets-examples/.

Java JRE e JDK 1.6

Nel caso in cui avvessimo scelto di installare l'ultima versione della Java Virtual Machine e relativo JDK, basta sostiture in tutti i file di configurazione ogni occorrenza di:

/usr/lib/jvm/java-1.5.0-sun

con:

/usr/lib/jvm/java-1.6.0-sun

Installazione del pacchetto Ubuntu

Ad ogni modo se vogliamo installare le versioni precompilate per Ubuntu presenti nei repository Universe, indipendentemente dalle dipendenze che si tirerà dietro, basta semplicemente fare come segue:

  1. Installiamo:

    sudo apt-get install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps
  2. Avviamo Tomcat:

    sudo /etc/init.d/tomcat5 start
  3. Connettiamoci al server usando la porta 8180 e non 8080 :

    http://localhost:8180 

Per configurare connector e Apache basta seguire quanto descritto in precedenza.

Ulteriori riorse


CategoryServer CategoryDaRevisionare