|
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://xml.apache.org/cocoon/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
|