Articoli

Installazione di Tomcat e Cocoon

Questo articolo spiega come installare su Linux un sistema formato da Apache, Tomcat e Cocoon ed è rivolto principalmente a sviluppatori web interessati a toccare con mano le problematiche di implementazione lato server che stanno dietro alla realizzazione di un sito web che utilizza XML e XSL.

Introduzione

Questo articolo è rivolto principalmente a sviluppatori web interessati a toccare con mano le problematiche di implementazione lato server che stanno dietro alla realizzazione di un sito web che utilizza XML e XSL.

Il sistema di test che andremo ad installare su un PC Linux è basato su Apache-Tomcat ed utilizza il framework Cocoon per pubblicare sul web i file .xml.

Utilizzeremo i seguenti software:

  • Sun JDK1.3
  • Apache 1.3.14 (1.3.9 o 1.3.12 su Red Hat)
  • Tomcat 3.2.1
  • Cocoon 1.8.2

Personalmente ho testato tutte le istruzioni inserite in questo documento usando sia Linux Red Hat 6.1 (kernel 2.2.12- 20), sia Debian/GNU Linux 2.2 (kernel 2.2.17).

Ho scelto queste particolari configurazioni software in quanto giudicate stabili dal gruppo degli sviluppatori di Cocoon, come si può facilmente verificare consultando la tabella riportata su: http://cocoon.apache.org/1.x/install.html.

Essendo rivolto a sviluppatori web, più che a sistemisti (o a programmatori Java), questo articolo non terrà conto di problemi legati alla security, in quanto scritto formulando l'ipotesi che tale sistema sarà utilizzato in una piccola rete home o addirittura sulla Linux box dello sviluppatore.

Installeremo tutto in una partizione dedicata che chiameremo /web. Qualora non fosse possibile dedicare una partizione a questo sistema, consiglio di creare un utente web e installare tutto nella sua home directory /home/web.

Installazione del Sun JDK 1.3

L'installazione del Sun JDK 1.3 è molto semplice. Per Red Hat è disponibile un pacchetto rpm. Su Debian ho installato una versione binaria autoscompattante (indipendente dalla distribuzione) distribuita da Sun sotto forma di file .sh o .bin. Per procedere è sufficiente lanciare il comando: sh ./nomefile.sh oppure ./nomefile.bin e rispondere affermativamente alla domanda sul contratto di licenza. Il JDK di default si installa in una directory chiamata jdk1.3.

In ogni caso è indispensabile impostare la variabile di ambiente JAVA_HOME ed esportarla.

Inserire nel file /etc/profile le seguenti righe:

  JAVA_HOME=/web/jdk1.3
  export JAVA_HOME

e aggiungere /web/jdk1.3/bin nel PATH.

Installazione di Tomcat

La effettueremo dai binari. Scompattare il file di distribuzione in una directory che per semplicità rinomineremo tomcat. Tomcat di default resta in ascolto sulla porta 8080. Se sul vostro sistema tale porta è già in uso, aprite il file server.xml contenuto nella directory /web/tomcat/conf e cambiatela ad esempio in 10080, come illustrato sotto:

<Connector className="org.apache.tomcat.service.PoolTcpConnector">
 <Parameter name="handler"
 value="org.apache.tomcat.service.http.HttpConnectionHandler"/>
 <Parameter name="port" value="10080"/>
</Connector>

Settare in /etc/profile le relative variabili d'ambiente:

  TOMCAT_HOME=/web/tomcat
  export TOMCAT_HOME

Per avviare Tomcat è sufficiente portarsi nella directory /web/tomcat/bin e lanciare il comando: ./startup.sh.

A questo punto aprite il browser preferito e digitate: http://nomemacchina:10080/. Se il browser visualizza la pagina di default di Tomcat, l'installazione è andata a buon fine. Ora potete provare a visualizzare gli esempi di servlet e di pagine jsp forniti con Tomcat per testare ulteriormente il buon funzionamento del programma.

Installazione di Cocoon

Scompattare il file di distribuzione in una directory che rinomineremo cocoon, per semplicità. Copiare tutti i file .jar da /web/cocoon/lib a /web/tomcat/lib e copiare cocoon.jar da /web/cocoon/bin a /web/tomcat/lib.

Portarsi dentro /web/tomcat/lib, rinominare xml.jar e parser.jar rispettivamente come zxml.jar e zparser.jar. Quest'operazione, apparentemente bizzarra, è necessaria per evitare problemi con le pagine XSP.

Aprire il file /web/tomcat/conf/server.xml e digitare:

<Context path="/cocoon" docBase="webapps/cocoon" debug="0"
 reloadable="true">
</Context>

Creare le directory /web/tomcat/webapps/cocoon e /web/tomcat/webapps/cocoon/WEB-INF.

Copiare i file /web/cocoon/src/WEB-INF/web.xml e /web/cocoon/conf/cocoon.properties nella directory /web/tomcat/webapps/cocoon/WEB-INF.

Aprire il file web.xml e portarsi sulla riga:

<param-value>[path-to-cocoon]/conf/cocoon.properties</param-value>

a [path-to-cocoon]/conf/ sostituire il percorso reale verso il file cocoon.properties, che dovrà necessariamente essere relativo:

<param-value>/WEB-INF/cocoon.properties</param-value>

Attenzione: se per errore digitate il percorso assoluto /web/tomcat/webapps/cocoon/WEB-INF/, Cocoon non lavorerà.

Copiare poi la directory samples, che trovate in /web/cocoon, dentro a /web/tomcat/webapps/cocoon/samples per testare il buon funzionamento di Cocoon.

Riavviate Tomcat, oppure fatelo partire e digitate nel browser: http://nomedellamacchina:10080/cocoon/.

Se l'installazione è andata a buon fine, ora potrete richiamare direttamente sul browser i file .xml che saranno trasformati in HTML mediante l'applicazione di stylesheets xsl.

Installazione di Apache

Compileremo Apache dai sorgenti, avendo cura di includere il supporto per il caricamento dinamico dei moduli (DSO) e il programma in Perl apxs, indispensabile per compilare mod_jk, come vedremo in seguito. Quest'ultimo richiede almeno Perl 5. Installeremo Apache nella directory /web/apache.

Scompattare il file di distribuzione dei sorgenti di Apache. Portarsi nella directory dei sorgenti e compilare:

./configure --prefix=/web/apache
            --enable-module=so
            --enable-rule=SHARED_CORE=yes
make
make install

Avviate Apache portandovi in /web/apache/bin e lanciando il comando: ./apachectl start.

Digitate nel browser: http://nomedellamacchina/ ed otterrete la pagina di default di Apache.

Installazione di mod_jk

Lo compileremo dai sorgenti, utilizzando il programma in Perl apxs. I sorgenti di mod_jk sono inclusi nel pacchetto dei sorgenti di Tomcat.

Per compilare mod_jk con apxs, digitate attentamente in un'unica linea la seguente istruzione: /web/apache/bin/apxs -o mod_jk.so -I../jk -I/web/jdk1.3/include \ -I/web/jdk1.3/include/linux -c *.c ./mod_jk.c

se la compilazione non viene completata automaticamente, terminatela usando il comando: gcc -shared -o mod_jk.so *.o

Copiare il file mod_jk.so così ottenuto nella directory /web/apache/libexec.

In /web/apache/conf/httpd.conf, aggiungere la riga:

Include /home/web/tomcat/conf/mod_jk.conf-auto

e il seguente blocco di istruzioni:

Alias /cocoon /web/tomcat/webapps/cocoon
<Directory "/web/tomcat/webapps/cocoon">
  Options Indexes FollowSymLinks
</Directory>
JkMount /cocoon/*.xml ajp13
AddType text/xml .xml
<Location /cocoon/WEB-INF/>
  AllowOverride None
  deny from all
</Location>

in /web/tomcat/conf/server.xml inserire le seguenti righe:

<Connector className="org.apache.tomcat.service.PoolTcpConnector">
<Parameter name="handler"
value="org.apache.tomcat.service.connector.Ajp13ConnectionHandler"/>
<Parameter name="port" value="8009"/>
</Connector>

appena sotto al blocco:

<Connector className="org.apache.tomcat.service.PoolTcpConnector">
  <Parameter name="handler"
  value="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"/>
  <Parameter name="port" value="8007"/>
</Connector>

Attenzione: non cancellate il blocco relativo al connettore Ajp12. Potreste incorrere in problemi durante l'arresto di Tomcat!

Siamo finalmente pronti per testare il funzionamento del sistema.

Importante: ricordatevi di avviare sempre prima Tomcat e poi Apache.

Ora è possibile richiamare Cocoon direttamente da Apache digitando semplicemente: http://nomedellamacchina/cocoon/ senza dover più passare dalla porta 10080 (o 8080).

Nota dell'autore

Mentre scrivevo questo articolo, Tomcat 4 e Cocoon 2 erano ancora in beta. Al momento della pubblicazione sono diventati release, tuttavia sulle mailing list passano ancora molte richieste di aiuto relativamente alle versioni precedenti ed il progetto Jakarta mantiene ancora lo sviluppo della serie 3.x di Tomcat, parallelamente a quello della serie 4.

Licenza

This document is released under GNU Free Documentation License

di Marina Sturino - Dicembre 2001